Linux: net: hsr: free learned nodes on device setup failure
What fixes it
- 0a340ffd96943a49a78e367efac9517ca767d99bLinuxCVE List
- 65702339b3e9fd792f65d4b740928798194d86ceLinuxCVE List
- 49b01f2939abc676a6f9a118f07a10110ee5f683LinuxCVE List
- 7f16289b91eb316f170a6bd22d32e6c632f6a5b6LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
net: hsr: free learned nodes on device setup failure
hsr_dev_finalize() can fail after a lower-device RX handler has already been registered (slave A is added before the failable slave B and interlink adds). RX handlers run in softirq regardless of the master's state, so frames received in that window can learn dynamic nodes into node_db, and the error unwind never releases them.
Free both owned dynamic databases in the unwind, mirroring hsr_dellink(). proxy_node_db is provably empty on every current error exit (only interlink RX feeds it, and the interlink add is the last failable step) and is freed for symmetry. The order is safe: hsr_del_port() unregisters each RX handler with synchronize_net() before hsr_del_nodes() runs, which removes remaining entries with list_del_rcu() and defers their release with call_rcu() for readers already under RCU.
Text from CVE List
Affected versions 14
- Linuxaffected: 81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 before e691eee886871b933d772ffc76d66c80b4c0a25eCVE List
- Linuxaffected: 81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 before 0a340ffd96943a49a78e367efac9517ca767d99bCVE List
- Linuxaffected: 81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 before f7289e3492f2694dccd3d79287e0e31879b58650CVE List
- Linuxaffected: 81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 before 65702339b3e9fd792f65d4b740928798194d86ceCVE List
- Linuxaffected: 81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 before 49b01f2939abc676a6f9a118f07a10110ee5f683CVE List
- Linuxaffected: 81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 before 7f16289b91eb316f170a6bd22d32e6c632f6a5b6CVE List
- Linuxaffected: 3.17CVE List
- Linuxunaffected: all versions before 3.17CVE List
- Linuxunaffected: 6.1.188 through 6.1.*CVE List
- Linuxunaffected: 6.6.157 through 6.6.*CVE List
- Linuxunaffected: 6.12.110 through 6.12.*CVE List
- Linuxunaffected: 6.18.52 through 6.18.*CVE List
- Linuxunaffected: 7.2.6 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 6
- git.kernel.org/stable/c/e691eee886871b933d772ffc76d66c80b4c0a25eReferencevia CVE List
- git.kernel.org/stable/c/0a340ffd96943a49a78e367efac9517ca767d99bReferencevia CVE List
- git.kernel.org/stable/c/f7289e3492f2694dccd3d79287e0e31879b58650Referencevia CVE List
- git.kernel.org/stable/c/65702339b3e9fd792f65d4b740928798194d86ceReferencevia CVE List
- git.kernel.org/stable/c/49b01f2939abc676a6f9a118f07a10110ee5f683Referencevia CVE List
- git.kernel.org/stable/c/7f16289b91eb316f170a6bd22d32e6c632f6a5b6Referencevia CVE List