CVE-2026-64233 in Linux信息

摘要

由 VulDB • 2026-07-24

在 Linux 内核中,已修复以下漏洞:

usb: gadget: uvc: 在 uvc_function_bind 遍历 XU(扩展单元)时持有 opts->lock

uvc_function_bind() 在未持有 opts->lock 的情况下两次遍历 &opts->extension_units:

- 直接地,用于 iExtension 字符串描述符修复循环; - 间接地,通过 uvc_copy_descriptors() 四次(每种速度一次),其中辅助函数迭代 uvc->desc.extension_units(它是 &opts->extension_units 的别名)以计算大小并生成 XU 描述符。

configfs 端(drivers/usb/gadget/function/uvc_configfs.c 中的 uvcg_extension_make / uvcg_extension_drop)在 list_add_tail / list_del 操作周围获取 opts->lock。一个拥有特权的用户空间进程如果保持 configfs 子树打开,并在并发 rmdir() 扩展子目录的同时写入 gadget UDC 名称以绑定功能,则可能与 bind-time 列表遍历竞争 uvcg_extension_drop(),并解引用已释放的 struct uvcg_extension。

从 XU 字符串描述符修复开始到最后一次调用 uvc_copy_descriptors(),一直持有 opts->lock;在描述符错误路径上通过新的 error_unlock 标签释放锁,该标签在下落到现有 error 标签之前先释放锁。这与 configfs 回调的锁定策略相匹配,并消除了绑定期间 XU 列表的唯一剩余未同步读取器。

可达性:只有能够挂载 configfs 并向 gadget UDC 文件写入的特权进程才能触发此竞争条件,因此这是一个正确性修复而非安全边界问题。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

来源

Do you need the next level of professionalism?

Upgrade your account now!