can: j1939: make j1939_session_activate() fail if device is no longer registered
- 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.10.248, 5.15.198, 6.1.161, 6.6.121, 6.12.66, and 1 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: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: can: j1939: make j1939_session_activate() fail if device is no longer registered syzbot is still reporting unregister_netdevice: waiting for vcan0 to become free. Usage count = 2 even after commit 93a27b5891b8 ("can: j1939: add missing calls in NETDEV_UNREGISTER notification handler") was added. A debug printk() patch found that j1939_session_activate() can succeed even after j1939_cancel_active_session() from j1939_netdev_notify(NETDEV_UNREGISTER) has completed. Since j1939_cancel_active_session() is processed with the session list lock held, checking ndev->reg_state in j1939_session_activate() with the session list lock held can reliably close the race window.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 9d71dd0c70099914fcd063135da3c580865e924c · fixed in ebb0dfd718dd31c8d3600612ca4b7207ec3d923a; From 9d71dd0c70099914fcd063135da3c580865e924c · fixed in c3a4316e3c746af415c0fd6c6d489ad13f53714d; From 9d71dd0c70099914fcd063135da3c580865e924c · fixed in 46ca9dc978923c5e1247a9e9519240ba7ace413c; From 9d71dd0c70099914fcd063135da3c580865e924c · fixed in 78d87b72cebe2a993fd5b017e9f14fb6278f2eae; From 9d71dd0c70099914fcd063135da3c580865e924c · fixed in ba6f0d1832eeb5eb3a6dc5cb30e0f720b3cb3536; From 9d71dd0c70099914fcd063135da3c580865e924c · fixed in 79dd3f1d9dd310c2af89b09c71f34d93973b200f; From 9d71dd0c70099914fcd063135da3c580865e924c · fixed in 5d5602236f5db19e8b337a2cd87a90ace5ea776d
- Linux Linux
5.4
- KernelLinux
From 5.4.0 · fixed in 5.10.248; From 5.11.0 · fixed in 5.15.198; From 5.16.0 · fixed in 6.1.161; From 6.2.0 · fixed in 6.6.121; From 6.7.0 · fixed in 6.12.66; From 6.13.0 · fixed in 6.18.6
References 7
git.kernel.org
- stable/c/ebb0dfd718dd31c8d3600612ca4b7207ec3d923a
- stable/c/c3a4316e3c746af415c0fd6c6d489ad13f53714d
- stable/c/46ca9dc978923c5e1247a9e9519240ba7ace413c
- stable/c/78d87b72cebe2a993fd5b017e9f14fb6278f2eae
- stable/c/ba6f0d1832eeb5eb3a6dc5cb30e0f720b3cb3536
- stable/c/79dd3f1d9dd310c2af89b09c71f34d93973b200f
- stable/c/5d5602236f5db19e8b337a2cd87a90ace5ea776d