batman-adv: Avoid double-rtnl_lock ELP metric worker
- 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.253, 5.15.203, 6.1.167, 6.6.130, 6.12.78, and 2 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
Summary
In the Linux kernel, the following vulnerability has been resolved: batman-adv: Avoid double-rtnl_lock ELP metric worker batadv_v_elp_get_throughput() might be called when the RTNL lock is already held. This could be problematic when the work queue item is cancelled via cancel_delayed_work_sync() in batadv_v_elp_iface_disable(). In this case, an rtnl_lock() would cause a deadlock. To avoid this, rtnl_trylock() was used in this function to skip the retrieval of the ethtool information in case the RTNL lock was already held. But for cfg80211 interfaces, batadv_get_real_netdev() was called - which also uses rtnl_lock(). The approach for __ethtool_get_link_ksettings() must also be used instead and the lockless version __batadv_get_real_netdev() has to be called.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5.10.235 · fixed in 5.10.253; From 5.15.179 · fixed in 5.15.203; From 6.1.129 · fixed in 6.1.167; From 6.6.79 · fixed in 6.6.130; From 6.12.16 · fixed in 6.12.78; From 5.4.291 · fixed in 5.5; From 6.13.4 · fixed in 6.14
- Linux Linux
6.14
References 8
git.kernel.org
- stable/c/4c3ae249431b4fcb315d7dfb4c3a13f9e443fd9b
- stable/c/192f40ad8a7dac58dae9199a065dbf7e6e67b75b
- stable/c/fa7b4edfbabdf9235b0ab4bea297fc12b3bec9ca
- stable/c/f3ca45673dab0514a887231de6f3243a699d5bfd
- stable/c/b7e5d8ddfdf1d6e9e0808d1adf7736a107372d77
- stable/c/2ab9f2531d37775cd79228c1f5d80e6bd08d11d3
- stable/c/77808fe7d03ad0062840b95f431869a8b3d88b24
- stable/c/cfc83a3c71517b59c1047db57da31e26a9dc2f33