Katalog CVE

CVE-2026-97482

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W sterowniku USB gadget goku_udc wystąpił przypadek dereferencji wskaźnika NULL w logu podczas obsługi przerwania INT_USBRESET. Gdy kontroler zgłosi reset USB zanim jakikolwiek sterownik gadżetu zostanie załadowany (lub po jego odwiązaniu), dev->driver jest NULL i wywołanie INFO() dereferencuje go, co powoduje awarię.

Ocena ryzyka

Podatność umożliwia awarię jądra (panikę) na urządzeniu z tym sterownikiem, jeśli zdarzy się reset USB bez aktywnego sterownika gadżetu, co może przerwać działanie systemu (DoS).

Rekomendacja

Zaktualizuj jądro do wersji zawierającej poprawkę, która dodaje warunkowe sprawdzenie dev->driver i w razie jego braku używa placeholderu w logu.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS