BaselineWatch
Desk

CVE-2026-99050

7.8 high Published

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.

Fix

Nothing published yet: no patch, vendor advisory or mitigation reference on NVD, no vendor advisory in the News for this CVE, not in CISA's KEV, no fixed package version. BaselineWatch does not guess at one.

Change history 6

  1. StatusReceived → PublishedNVD modified 2026-10-24 14:10
  2. StatusPublished → ReceivedNVD modified 2026-10-24 14:16
  3. CVSS7.8 (v3.1, CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)NVD modified 2026-10-24 14:16
  4. StatusReceived → PublishedNVD modified 2026-10-23 12:22
  5. StatusPublished → ReceivedNVD modified 2026-10-23 13:17
  6. First seenunscored · linuxNVD modified 2026-10-23 12:22

Affected (CPE criteria) 0

NVD has not attached CPE configurations yet.

References 3