Description
In the Linux kernel, the following vulnerability has been resolved:

usb: gadget: goku_udc: avoid NULL deref of dev->driver in INT_USBRESET log

goku_irq() handles a number of bus events under a single ep0 path.
It already guards the gadget driver suspend/resume callbacks against a
NULL ->driver:

if (dev->gadget.speed != USB_SPEED_UNKNOWN
&& dev->driver
&& dev->driver->resume) {
spin_unlock(&dev->lock);
dev->driver->resume(&dev->gadget);
...
}

but the very next branch unconditionally dereferences dev->driver
when an INT_USBRESET arrives:

if (stat & INT_USBRESET) {
ACK(INT_USBRESET);
INFO(dev, "USB reset done, gadget %s\n",
dev->driver->driver.name);
}

If the controller raises INT_USBRESET before any gadget driver has
been bound (or after one has been unbound), dev->driver is NULL and
the printk dereferences NULL.

smatch flags the inconsistency:

drivers/usb/gadget/udc/goku_udc.c:1618 goku_irq() error:
we previously assumed 'dev->driver' could be null (see line 1607)

Fall back to a placeholder when the gadget driver is not bound.

No functional change while a gadget driver is bound.
Published: 2026-09-24
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Patch
AI Analysis

Impact

A null pointer dereference occurs in the goku_udc gadget driver when an INT_USBRESET interrupt is processed while no gadget driver is bound. The code unconditionally accesses dev->driver->driver.name, causing a kernel panic. This denial of service can bring the entire system to an unusable state, but it does not provide direct code execution or information disclosure.

Affected Systems

The flaw exists in the Linux kernel’s goku_udc driver, which supports the Goku USB Device Controller on devices that enable the gadget framework. Any Linux kernel build that includes goku_udc.c and has the gadget driver compiled could be affected; specific vulnerable versions are not listed, so consider all builds containing the original code path as potentially vulnerable.

Risk and Exploitability

Based on the description, it is inferred that an attacker who can trigger a USB reset event before a gadget driver is bound or after it has been unbound could cause a kernel panic. The CVSS score is 5.5, EPSS score is <1%, and the vulnerability is not listed in the CISA KEV catalog. Consequently, the exploitation probability is uncertain, but the impact of a kernel crash would lead to significant downtime. The vulnerability can be triggered by malicious USB devices or by exceeding kernel resources through abuse of USB class requests, as suggested in the discussion.

Generated by OpenCVE AI on October 1, 2026 at 12:15 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that contains the goku_udc NULL dereference fix released in the 2026 kernel patch series.
  • If a kernel update is not possible, ensure that a gadget driver is bound before any USB reset events occur; avoid generating reset events when no driver is attached.
  • If the goku_udc driver is not required for your device, disable or remove it from the kernel configuration to eliminate the vulnerable code path.

Generated by OpenCVE AI on October 1, 2026 at 12:15 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4817-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6528-1 linux security update
History

Sat, 03 Oct 2026 11:15:00 +0000


Wed, 30 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 25 Sep 2026 03:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476

Thu, 24 Sep 2026 16:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: usb: gadget: goku_udc: avoid NULL deref of dev->driver in INT_USBRESET log goku_irq() handles a number of bus events under a single ep0 path. It already guards the gadget driver suspend/resume callbacks against a NULL ->driver: if (dev->gadget.speed != USB_SPEED_UNKNOWN && dev->driver && dev->driver->resume) { spin_unlock(&dev->lock); dev->driver->resume(&dev->gadget); ... } but the very next branch unconditionally dereferences dev->driver when an INT_USBRESET arrives: if (stat & INT_USBRESET) { ACK(INT_USBRESET); INFO(dev, "USB reset done, gadget %s\n", dev->driver->driver.name); } If the controller raises INT_USBRESET before any gadget driver has been bound (or after one has been unbound), dev->driver is NULL and the printk dereferences NULL. smatch flags the inconsistency: drivers/usb/gadget/udc/goku_udc.c:1618 goku_irq() error: we previously assumed 'dev->driver' could be null (see line 1607) Fall back to a placeholder when the gadget driver is not bound. No functional change while a gadget driver is bound.
Title usb: gadget: goku_udc: avoid NULL deref of dev->driver in INT_USBRESET log
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-03T10:58:46.364Z

Reserved: 2026-09-24T16:01:01.149Z

Link: CVE-2026-97482

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-24T17:17:25.707

Modified: 2026-10-03T11:17:58.110

Link: CVE-2026-97482

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-24T00:00:00Z

Links: CVE-2026-97482 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T12:30:07Z

Weaknesses