目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1336

100%

CVE-2026-89732— usb: gadget: f_fs: Prevent deadlock during ep0 read loop

一分钟漏洞结论

影响对象
Linux Linux
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

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 c

获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2026-89732 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
usb: gadget: f_fs: Prevent deadlock during ep0 read loop
来源: CVE Program / CVE List V5
Vulnerability Description
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: 1. The configfs teardown calls functionfs_unbind(), which queues a FUNCTIONFS_UNBIND event. 2. The daemon wakes up, consumes the event, and drops the mutex. 3. However, if the daemon loops and immediately issues another read() before exiting, it reacquires ffs->mutex and again goes into an interruptible sleep. 4. Meanwhile, functionfs_unbind() continues execution and attempts to acquire ffs->mutex to tear down ep0req. 5. The kernel deadlocks because the configfs thread is stuck in an uninterruptible sleep waiting for the mutex, while the userspace daemon is in an interruptible sleep holding the mutex forever because no more events will arrive. 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.
来源: CVE Program / CVE List V5
CVSS Information
N/A
来源: CVE Program / CVE List V5
Vulnerability Type
N/A
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
Linux Linux ddf8abd2599491cbad959c700b90ba72a5dce8d0 ~ fd20cc68bbdb5620696ac108e8f2efd180fe2c1a -
Linux Linux 2.6.35 -

二、漏洞 CVE-2026-89732 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2026-89732 的情报信息

登录查看更多情报信息。

CVE-2026-89732 其他参考 (4)

同批安全公告 · Linux · 2026-09-11 · 共 431 条

CVE-2026-89491 ocfs2: cluster: don't sleep while holding o2hb_live_lock in o2hb_region_pin()
CVE-2026-89477 Linux内核 SCTP 重配置空指针引用漏洞
CVE-2026-89478 sctp: drop a chunk if its transport was removed
CVE-2026-89479 内核SCTP模块关联删除后仍处理报文
CVE-2026-89480 nvme-tcp: reject a read that transferred too few bytes
CVE-2026-89482 nvme-tcp: do not accept C2HData based on blk_rq_payload_bytes() alone
CVE-2026-89481 NVMe/TCP 主机内存泄露漏洞
CVE-2026-89483 Linux内核 NVMe驱动 逻辑错误
CVE-2026-89484 lockd: fix NULL dereference on lockowner allocation failure
CVE-2026-89485 Linux lockd 锁释放时文件指针固定漏洞
CVE-2026-89486 IPMI 驱动 _ipmi_destroy_user 释放后使用漏洞
CVE-2026-89487 openvswitch: only skb_tx_error() a packet we are about to drop
CVE-2026-89488 openvswitch: Fix CT limit teardown use-after-free
CVE-2026-89489 OpenRISC 内核 or1k_atomic 任意内存访问漏洞
CVE-2026-89500 ring-buffer 缓冲区读取页修复
CVE-2026-89497 Orangefs 调试掩码解析空格处理缺陷
CVE-2026-89498 Orangefs 双重释放漏洞
CVE-2026-89499 ring-buffer: Stop remote reader update when page swap fails
CVE-2026-89496 ocfs2文件系统COW完成处理缺陷
CVE-2026-89501 ring-buffer 子缓冲区调整时未持锁漏洞

显示前 20 条,共 431 条。 查看全部 → →

IV. Related Vulnerabilities

V. Comments for CVE-2026-89732

暂无评论


发表评论