What’s Vulnerable › Vulnerabilities
CVE-2021-47439: net: dsa: microchip: Added the condition for scheduling ksz_mib_read_work
- Severity: medium (CVSS 5.5 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.2% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2024-05-22 · updated 2026-06-17
- Weakness: CWE-476
Description
In the Linux kernel, the following vulnerability has been resolved: net: dsa: microchip: Added the condition for scheduling ksz_mib_read_work When the ksz module is installed and removed using rmmod, kernel crashes with null pointer dereferrence error. During rmmod, ksz_switch_remove function tries to cancel the mib_read_workqueue using cancel_delayed_work_sync routine and unregister switch from dsa. During dsa_unregister_switch it calls ksz_mac_link_down, which in turn reschedules the workqueue since mib_interval is non-zero. Due to which queue executed after mib_interval and it tries to access dp->slave. But the slave is unregistered in the ksz_switch_remove function. Hence kernel crashes. To avoid this crash, before canceling the workqueue, resetted the mib_interval to 0. v1 -> v2: -Removed the if condition in ksz_mib_read_work
Affected products
- Linux kernel: from 5.7 before 5.10.75; from 5.11 before 5.14.14; 5.15-rc1, 5.15-rc2, 5.15-rc3, 5.15-rc4, 5.15-rc5 — fixed in 5.10.75, 5.14.14
How to fix
Upgrade to a fixed version: Linux kernel 5.10.75, 5.14.14. Check the vendor advisory for mitigations.
References
- https://git.kernel.org/stable/c/383239a33cf29ebee9ce0d4e0e5c900b77a16148
- https://git.kernel.org/stable/c/ef1100ef20f29aec4e62abeccdb5bdbebba1e378
- https://git.kernel.org/stable/c/f2e1de075018cf71bcd7d628e9f759cb8540b0c3
- https://git.kernel.org/stable/c/383239a33cf29ebee9ce0d4e0e5c900b77a16148
- https://git.kernel.org/stable/c/ef1100ef20f29aec4e62abeccdb5bdbebba1e378
- https://git.kernel.org/stable/c/f2e1de075018cf71bcd7d628e9f759cb8540b0c3
Get alerted when CVE-2021-47439 or the next vulnerability affects your stack