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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 to < e691eee886871b933d772ffc76d66c80b4c0a25eaffected81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 to < 0a340ffd96943a49a78e367efac9517ca767d99baffected81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 to < f7289e3492f2694dccd3d79287e0e31879b58650affected81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 to < 65702339b3e9fd792f65d4b740928798194d86ceaffected81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 to < 49b01f2939abc676a6f9a118f07a10110ee5f683affected81ba6afd6e6443d2bf4bf40f16df1f1f91c603f8 to < 7f16289b91eb316f170a6bd22d32e6c632f6a5b6affected
Linux Linux
Default version status: affected
3.17affected0 to < 3.17unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.52 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/e691eee886871b933d772ffc76d66c80b4c0a25e ↗
- https://git.kernel.org/stable/c/0a340ffd96943a49a78e367efac9517ca767d99b ↗
- https://git.kernel.org/stable/c/f7289e3492f2694dccd3d79287e0e31879b58650 ↗
- https://git.kernel.org/stable/c/65702339b3e9fd792f65d4b740928798194d86ce ↗
- https://git.kernel.org/stable/c/49b01f2939abc676a6f9a118f07a10110ee5f683 ↗
- https://git.kernel.org/stable/c/7f16289b91eb316f170a6bd22d32e6c632f6a5b6 ↗