CVE-2026-64346 in Linux信息

摘要

由 VulDB • 2026-07-28

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

usb: gadget: udc: 修复 gadget_match_driver 中的 Use-After-Free (UAF) 问题

udc 结构体充当 gadget 的管理结构体,但它们的生命周期是解耦的。存在一个竞态条件(Race Condition),其中 usb_del_gadget() 释放了 udc 内存(例如通过 mode-switch work),而 gadget_match_driver() 并发访问已释放的 udc 内存(例如通过 configfs),导致 Use-After-Free (UAF),当被释放的内存被清零时触发空指针解引用:

[39430.908615][ T1171] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
[39430.911397][ T1171] pc : __pi_strcmp+0x20/0x140
[39430.911441][ T1171] lr : gadget_match_driver+0x34/0x60
... [39430.911890][ T1171] usb_gadget_register_driver_owner+0x50/0xf8
[39430.911910][ T1171] gadget_dev_desc_UDC_store+0xf4/0x140
[39430.931308][ T1171] configfs_write_iter+0xec/0x134

[39430.957058][ T1171] Workqueue: events_freezable __dwc3_set_mode
[39430.957287][ T1171] dwc3_gadget_exit+0x34/0x8c
[39430.957304][ T1171] __dwc3_set_mode+0xc0/0x664

通过确保 udc 结构体在 gadget 释放之前保持分配状态来修复此问题。为此,在内核核心中引入一个新的 usb_gadget_release() 例程。当添加 gadget 时,usb_add_gadget() 将 gadget 的释放例程存储在 udc 结构体中,并对 udc 引用计数加一(take a reference)。当 gadget 被释放时,usb_gadget_release() 减少对 udc 的引用计数,然后调用 gadget 的释放例程。

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

来源

Want to stay up to date on a daily basis?

Enable the mail alert feature now!