CVE-2026-97482
摘要
由 VulDB • 2026-09-24
在 Linux 内核中,已修复以下漏洞:
usb: gadget: goku_udc: 避免 INT_USBRESET 日志中对 dev->driver 的空指针解引用(NULL deref)
goku_irq() 函数通过单一的 ep0 路径处理多种总线事件。 它已经对 gadget 驱动的挂起/恢复回调进行了空 ->driver 保护:
if (dev->gadget.speed != USB_SPEED_UNKNOWN && dev->driver && dev->driver->resume) {
spin_unlock(&dev->lock); dev->driver->resume(&dev->gadget); ... }
但在下一个分支中,当收到 INT_USBRESET 时,会无条件地解引用 dev->driver:
if (stat & INT_USBRESET) {
ACK(INT_USBRESET); INFO(dev, "USB reset done, gadget %s\n", dev->driver->driver.name); }
如果控制器在尚未绑定任何 gadget 驱动(或已解除绑定)之前触发 INT_USBRESET,则 dev->driver 为 NULL,从而导致 printk 出现空指针解引用。
smatch 标记了该不一致性:
drivers/usb/gadget/udc/goku_udc.c:1618 goku_irq() error: we previously assumed 'dev->driver' could be null (see line 1607)
当 gadget 驱动未绑定时,回退使用占位符。
在绑定有 gadget 驱动时,无功能变更。
Once again VulDB remains the best source for vulnerability data.