CVE-2026-89732Medium· 5.5▾ SunlitIn the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_fs: Prevent deadlock during ep0 read loop Currently, ffs_ep0_read() holds ffs->mutex when it prepares to go to sleep waiting for an event. When no setup…
▾ Sunlit zone — Low / medium · no exploitation signal
impact 30.3 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Exploit-prediction probability, daily snapshots since Sep 12.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via CVEORG
0.2%
— → 4.1
none → medium
— → 4.1
none → medium
— → 4.1
none → medium
4.1 → 5.5
0.2% → 0.2%
Last analysed / modified upstream
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: f_fs: Prevent deadlock during ep0 read loop
Currently, ffs_ep0_read() holds ffs->mutex when it prepares to go to sleep waiting for an event. When no setup events are pending, it calls wait_event_interruptible_exclusive_locked_irq() with the mutex still held. The wait macro deliberately drops the waitqueue spinlock before sleeping but does not drop the mutex.
If a userspace daemon is polling ep0 via read() and the gadget is asynchronously torn down via configfs (e.g., echo "" > UDC), a deadlock can occur:
To fix this, we drop both the waitqueue spinlock and ffs->mutex before
going to sleep, and use wait_event_interruptible_exclusive() instead.
Upon waking up, we jump back to the retry label to safely reacquire
the mutex and re-evaluate the state machine. By not sleeping with
ffs->mutex held, we natively decouple gadget teardowns (which require
the mutex) from userspace polling.
Linux >= ddf8abd2599491cbad959c700b90ba72a5dce8d0 < fbe3db4b650c284df8eb4cb68eebcf270cf861b5Linux >= ddf8abd2599491cbad959c700b90ba72a5dce8d0 < 30430509c156e1df2bdafd5f1cadb160e53db5d6Linux >= ddf8abd2599491cbad959c700b90ba72a5dce8d0 < bafddd0f20b5228760be303aa69c58502e92309cLinux >= ddf8abd2599491cbad959c700b90ba72a5dce8d0 < b0a6bfac0c3c3edf5b2ecaee87a09234601fe78dLinux >= ddf8abd2599491cbad959c700b90ba72a5dce8d0 < fd20cc68bbdb5620696ac108e8f2efd180fe2c1aLinux >= ddf8abd2599491cbad959c700b90ba72a5dce8d0 < 34e88f53614640b59039a46717fb6142e9871022Linux >= ddf8abd2599491cbad959c700b90ba72a5dce8d0 < eac233e63f9db82ba874e3cccafaafab162999e0Linux >= ddf8abd2599491cbad959c700b90ba72a5dce8d0 < 569dd7e5dcffe1e1c6b26ca2cd3be57eb433e082Linux 2.6.35Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
Field changes observed since this record was first indexed.
Connected by shared product, vendor, weakness, or advisory.
CVE-2024-57804High· 7.3scsi: mpi3mr: Fix corrupt config pages PHY state is switched in sysfs
CVE-2024-47794High· 7.8bpf: Prevent tailcall infinite loop caused by freplace
CVE-2026-100070Medium· 5.5In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_nat_sip: rewind offset when NAT shrinks the packet sashiko says: If map_addr() changes the packet length, such as when the public NAT IP string is shor…
CVE-2026-100071Medium· 5.5In the Linux kernel, the following vulnerability has been resolved: net: hsr: free learned nodes on device setup failure hsr_dev_finalize() can fail after a lower-device RX handler has already been registered (slave A is added before t…
CVE-2025-39977High· 7.8In the Linux kernel, the following vulnerability has been resolved: futex: Prevent use-after-free during requeue-PI syzbot managed to trigger the following race: T1 T2 futex_wait_requeue_pi() fute…
CVE-2026-99100Nonewifi: p54: validate firmware record lengths