net: phylink: add lock for serializing concurrent pl->phydev writes with resolver
Description
In the Linux kernel, the following vulnerability has been resolved:
net: phylink: add lock for serializing concurrent pl->phydev writes with resolver
Currently phylink_resolve() protects itself against concurrent phylink_bringup_phy() or phylink_disconnect_phy() calls which modify pl->phydev by relying on pl->state_mutex.
The problem is that in phylink_resolve(), pl->state_mutex is in a lock inversion state with pl->phydev->lock. So pl->phydev->lock needs to be acquired prior to pl->state_mutex. But that requires dereferencing pl->phydev in the first place, and without pl->state_mutex, that is racy.
Hence the reason for the extra lock. Currently it is redundant, but it will serve a functional purpose once mutex_lock(&phy->lock) will be moved outside of the mutex_lock(&pl->state_mutex) section.
Another alternative considered would have been to let phylink_resolve() acquire the rtnl_mutex, which is also held when phylink_bringup_phy() and phylink_disconnect_phy() are called. But since phylink_disconnect_phy() runs under rtnl_lock(), it would deadlock with phylink_resolve() when calling flush_work(&pl->resolve). Additionally, it would have been undesirable because it would have unnecessarily blocked many other call paths as well in the entire kernel, so the smaller-scoped lock was preferred.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
82- osv-coords80 versionspkg:apk/chainguard/linux-aws-6.12pkg:apk/chainguard/linux-azure-6.12pkg:apk/chainguard/linux-gcp-6.12pkg:apk/chainguard/linux-qemu-6.12pkg:apk/chainguard/linux-vmware-6.12pkg:rpm/almalinux/kernelpkg:rpm/almalinux/kernel-64kpkg:rpm/almalinux/kernel-64k-corepkg:rpm/almalinux/kernel-64k-debugpkg:rpm/almalinux/kernel-64k-debug-corepkg:rpm/almalinux/kernel-64k-debug-develpkg:rpm/almalinux/kernel-64k-debug-devel-matchedpkg:rpm/almalinux/kernel-64k-debug-modulespkg:rpm/almalinux/kernel-64k-debug-modules-corepkg:rpm/almalinux/kernel-64k-debug-modules-extrapkg:rpm/almalinux/kernel-64k-develpkg:rpm/almalinux/kernel-64k-devel-matchedpkg:rpm/almalinux/kernel-64k-modulespkg:rpm/almalinux/kernel-64k-modules-corepkg:rpm/almalinux/kernel-64k-modules-extrapkg:rpm/almalinux/kernel-abi-stablelistspkg:rpm/almalinux/kernel-corepkg:rpm/almalinux/kernel-cross-headerspkg:rpm/almalinux/kernel-debugpkg:rpm/almalinux/kernel-debug-corepkg:rpm/almalinux/kernel-debug-develpkg:rpm/almalinux/kernel-debug-devel-matchedpkg:rpm/almalinux/kernel-debug-modulespkg:rpm/almalinux/kernel-debug-modules-corepkg:rpm/almalinux/kernel-debug-modules-extrapkg:rpm/almalinux/kernel-debug-uki-virtpkg:rpm/almalinux/kernel-develpkg:rpm/almalinux/kernel-devel-matchedpkg:rpm/almalinux/kernel-docpkg:rpm/almalinux/kernel-headerspkg:rpm/almalinux/kernel-modulespkg:rpm/almalinux/kernel-modules-corepkg:rpm/almalinux/kernel-modules-extrapkg:rpm/almalinux/kernel-modules-extra-matchedpkg:rpm/almalinux/kernel-rtpkg:rpm/almalinux/kernel-rt-64kpkg:rpm/almalinux/kernel-rt-64k-corepkg:rpm/almalinux/kernel-rt-64k-debugpkg:rpm/almalinux/kernel-rt-64k-debug-corepkg:rpm/almalinux/kernel-rt-64k-debug-develpkg:rpm/almalinux/kernel-rt-64k-debug-modulespkg:rpm/almalinux/kernel-rt-64k-debug-modules-corepkg:rpm/almalinux/kernel-rt-64k-debug-modules-extrapkg:rpm/almalinux/kernel-rt-64k-develpkg:rpm/almalinux/kernel-rt-64k-modulespkg:rpm/almalinux/kernel-rt-64k-modules-corepkg:rpm/almalinux/kernel-rt-64k-modules-extrapkg:rpm/almalinux/kernel-rt-corepkg:rpm/almalinux/kernel-rt-debugpkg:rpm/almalinux/kernel-rt-debug-corepkg:rpm/almalinux/kernel-rt-debug-develpkg:rpm/almalinux/kernel-rt-debug-modulespkg:rpm/almalinux/kernel-rt-debug-modules-corepkg:rpm/almalinux/kernel-rt-debug-modules-extrapkg:rpm/almalinux/kernel-rt-develpkg:rpm/almalinux/kernel-rt-modulespkg:rpm/almalinux/kernel-rt-modules-corepkg:rpm/almalinux/kernel-rt-modules-extrapkg:rpm/almalinux/kernel-toolspkg:rpm/almalinux/kernel-tools-libspkg:rpm/almalinux/kernel-tools-libs-develpkg:rpm/almalinux/kernel-uki-virtpkg:rpm/almalinux/kernel-uki-virt-addonspkg:rpm/almalinux/kernel-zfcpdumppkg:rpm/almalinux/kernel-zfcpdump-corepkg:rpm/almalinux/kernel-zfcpdump-develpkg:rpm/almalinux/kernel-zfcpdump-devel-matchedpkg:rpm/almalinux/kernel-zfcpdump-modulespkg:rpm/almalinux/kernel-zfcpdump-modules-corepkg:rpm/almalinux/kernel-zfcpdump-modules-extrapkg:rpm/almalinux/libperfpkg:rpm/almalinux/perfpkg:rpm/almalinux/python3-perfpkg:rpm/almalinux/rtlapkg:rpm/almalinux/rv
< 6.12.80-r0+ 79 more
- (no CPE)range: < 6.12.80-r0
- (no CPE)range: < 6.12.80-r0
- (no CPE)range: < 6.12.80-r0
- (no CPE)range: < 6.12.80-r0
- (no CPE)range: < 6.12.80-r0
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
- (no CPE)range: < 6.12.0-124.27.1.el10_1
Patches
Vulnerability mechanics
References
2News mentions
0No linked articles in our index yet.