net/packet: fix a race in packet_set_ring() and packet_notifier()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.4.297, 5.10.241, 5.15.190, 6.1.148, 6.6.102, and 3 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: net/packet: fix a race in packet_set_ring() and packet_notifier() When packet_set_ring() releases po->bind_lock, another thread can run packet_notifier() and process an NETDEV_UP event. This race and the fix are both similar to that of commit 15fe076edea7 ("net/packet: fix a race in packet_bind() and packet_notifier()"). There too the packet_notifier NETDEV_UP event managed to run while a po->bind_lock critical section had to be temporarily released. And the fix was similarly to temporarily set po->num to zero to keep the socket unhooked until the lock is retaken. The po->bind_lock in packet_set_ring and packet_notifier precede the introduction of git history.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 18f13f2a83eb81be349a9757ba2141ff1da9ad73; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 7da733f117533e9b2ebbd530a22ae4028713955c; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in ba2257034755ae773722f15f4c3ad1dcdad15ca9; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 7de07705007c7e34995a5599aaab1d23e762d7ca; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 88caf46db8239e6471413d28aabaa6b8bd552805; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in f2e8fcfd2b1bc754920108b7f2cd75082c5a18df; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in e50ccfaca9e3c671cae917dcb994831a859cf588; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in f1791fd7b845bea0ce9674fcf2febee7bc87a893; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 01d3c8417b9c1b884a8a981a3b886da556512f36
- Linux Linux
2.6.12
- KernelLinux
From 2.6.12 · fixed in 5.4.297; From 5.5.0 · fixed in 5.10.241; From 5.11.0 · fixed in 5.15.190; From 5.16.0 · fixed in 6.1.148; From 6.2.0 · fixed in 6.6.102; From 6.7.0 · fixed in 6.12.42; From 6.13.0 · fixed in 6.15.10; From 6.16.0 · fixed in 6.16.1
References 11
git.kernel.org
- stable/c/18f13f2a83eb81be349a9757ba2141ff1da9ad73
- stable/c/7da733f117533e9b2ebbd530a22ae4028713955c
- stable/c/ba2257034755ae773722f15f4c3ad1dcdad15ca9
- stable/c/7de07705007c7e34995a5599aaab1d23e762d7ca
- stable/c/88caf46db8239e6471413d28aabaa6b8bd552805
- stable/c/f2e8fcfd2b1bc754920108b7f2cd75082c5a18df
- stable/c/e50ccfaca9e3c671cae917dcb994831a859cf588
- stable/c/f1791fd7b845bea0ce9674fcf2febee7bc87a893
- stable/c/01d3c8417b9c1b884a8a981a3b886da556512f36