net: seeq: Fix use after free vulnerability in ether3 Driver Due to Race Condition
- 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 4.19.323, 5.4.285, 5.10.227, 5.15.168, 6.1.113, 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: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: net: seeq: Fix use after free vulnerability in ether3 Driver Due to Race Condition In the ether3_probe function, a timer is initialized with a callback function ether3_ledoff, bound to &prev(dev)->timer. Once the timer is started, there is a risk of a race condition if the module or device is removed, triggering the ether3_remove function to perform cleanup. The sequence of operations that may lead to a UAF bug is as follows: CPU0 CPU1 | ether3_ledoff ether3_remove | free_netdev(dev); | put_devic | kfree(dev); | | ether3_outw(priv(dev)->regs.config2 |= CFG2_CTRLO, REG_CONFIG2); | // use dev Fix it by ensuring that the timer is canceled before proceeding with the cleanup in ether3_remove.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 6fd9c53f71862a4797b7ed8a5de80e2c64829f56 · fixed in 25d559ed2beec9b34045886100dac46d1ad92eba; From 6fd9c53f71862a4797b7ed8a5de80e2c64829f56 · fixed in b5a84b6c772564c8359a9a0fbaeb2a2944aa1ee9; From 6fd9c53f71862a4797b7ed8a5de80e2c64829f56 · fixed in 338a0582b28e69460df03af50e938b86b4206353; From 6fd9c53f71862a4797b7ed8a5de80e2c64829f56 · fixed in 822c7bb1f6f8b0331e8d1927151faf8db3b33afd; From 6fd9c53f71862a4797b7ed8a5de80e2c64829f56 · fixed in 1c57d61a43293252ad732007c7070fdb112545fd; From 6fd9c53f71862a4797b7ed8a5de80e2c64829f56 · fixed in d2abc379071881798d20e2ac1d332ad855ae22f3; From 6fd9c53f71862a4797b7ed8a5de80e2c64829f56 · fixed in 516dbc6d16637430808c39568cbb6b841d32b55b; From 6fd9c53f71862a4797b7ed8a5de80e2c64829f56 · fixed in 77a77331cef0a219b8dd91361435eeef04cb741c; From 6fd9c53f71862a4797b7ed8a5de80e2c64829f56 · fixed in b5109b60ee4fcb2f2bb24f589575e10cc5283ad4
- Linux Linux
4.15
- KernelLinux
From 4.15.0 · fixed in 4.19.323; From 4.20.0 · fixed in 5.4.285; From 5.5.0 · fixed in 5.10.227; From 5.11.0 · fixed in 5.15.168; From 5.16.0 · fixed in 6.1.113; From 6.2.0 · fixed in 6.6.54; From 6.7.0 · fixed in 6.10.13; From 6.11.0 · fixed in 6.11.2
References 9
git.kernel.org
- stable/c/25d559ed2beec9b34045886100dac46d1ad92eba
- stable/c/b5a84b6c772564c8359a9a0fbaeb2a2944aa1ee9
- stable/c/338a0582b28e69460df03af50e938b86b4206353
- stable/c/822c7bb1f6f8b0331e8d1927151faf8db3b33afd
- stable/c/1c57d61a43293252ad732007c7070fdb112545fd
- stable/c/d2abc379071881798d20e2ac1d332ad855ae22f3
- stable/c/516dbc6d16637430808c39568cbb6b841d32b55b
- stable/c/77a77331cef0a219b8dd91361435eeef04cb741c
- stable/c/b5109b60ee4fcb2f2bb24f589575e10cc5283ad4