CVE-2026-99050gpio: mpsse: fix race when arming the IRQ poll worker
Updated under an hour ago ()
Does this affect you?
It affects Linux. Add what you run to find out whether that includes you.
EPSS puts the chance of exploitation in the next 30 days at 0.21%, higher than 10% of scored CVEs.
Do this next
Free account, 1 product
In the Linux kernel, the following vulnerability has been resolved: gpio: mpsse: fix race when arming the IRQ poll worker gpio_mpsse_irq_enable() arms the poll worker before publishing it: schedule_work() runs before the worker is added to priv->workers. If gpio_mpsse_disconnect() walks the list in that window it misses the worker, and once disconnect returns, the USB core frees mpsse_priv while the orphaned gpio_mpsse_poll() work keeps accessing it, causing a use-after-free. Fix this by publishing and arming the worker in one irq_spin critical section. Teardown walks the same list under irq_spin, so a worker found on the list is guaranteed to be armed, and cancel_work_sync() handles it whether it is queued or running. A worker armed after the disconnect walk would still be missed, so also set a new priv->dying flag under irq_spin before the teardown walk, and check it in the same critical section, freeing it via kfree_rcu() instead when the device is going away, since kfree() would be called with the IRQ core's raw spinlock held and may sleep on PREEMPT_RT. schedule_work() is safe to call with irq_spin held, and the next probe gets a fresh mpsse_priv, so the flag never needs to be cleared. This issue was found by an in-house static analysis tool.
- CVSS
- 7.8 HIGH (v3.1, CNA)CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weakness (CWE)
- Not given
- Known exploited
- Not in CISA's KEV catalog
- EPSS (exploitation in the next 30 days)
- 0.21% (percentile 10)
- Assigned by
- Linux
- NVD analysis
- Received
- Record last updated
- Oct 24, 2026
- First seen by InfoSec Signals
- Oct 23, 2026
Affected products
Linux Linux linux:linux (from the name) | from 472d900c8bcac301ae0e40fdca7db799bd989ff5 before 76390ac0bca7e5058b7482eb4d951c3bda5df812; from 179ef1127d7a4f09f0e741fa9f30b8a8e7886271 before c0071ee496e1228976c72b096f529503222708a0; 179ef1127d7a4f09f0e741fa9f30b8a8e7886271 builds before 7efa1a1953cd6b20b23a3524d5b4b81789c6ef25; from 6.18.6 before 6.18.57 | CNA record |
References
- https://git.kernel.org/stable/c/76390ac0bca7e5058b7482eb4d951c3bda5df812
- https://git.kernel.org/stable/c/c0071ee496e1228976c72b096f529503222708a0
- https://git.kernel.org/stable/c/7efa1a1953cd6b20b23a3524d5b4b81789c6ef25
The CVE record on cve.org NVD's entry
The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.