CVE-2026-64347

Linux kernel (GCP) vulnerabilities

Beschreibung

Im Linux-Kernel wurde folgende Schwachstelle behoben:

usb: gadget: composite: Behebung des toten leeren Prüfens im USB_DT_OTG-Handler

Der OTG-Zweig von composite_setup() fällt zurück auf die erste Konfiguration, wenn keine ausgewählt ist:

if (cdev->config)
    config = cdev->config;
else
    config = list_first_entry(&cdev->configs,
                      struct usb_configuration, list);
if (!config)
    goto done;
...
memcpy(req->buf, config->descriptors[0], value);

list_first_entry() gibt niemals NULL zurück. Bei einer leeren Liste gibt es den container_of() des Listenkopfs zurück. Daher ist die Prüfung "if (!config)" tot.

Wenn cdev->configs leer ist, zeigt config auf den Kopf innerhalb von struct usb_composite_dev. config->descriptors[0] liest das, was an diesem Offset sitzt. Die memcpy kopiert bis zu w_length Bytes davon in den Antwortpuffer.

cdev->configs kann in zwei Fällen leer sein. Einer ist ein Rennen bei der Demontage des Gadgets mit einem laufenden Steuerungsübertragung. Der andere ist ein Treiber, der is_otg setzt, bevor er eine Konfiguration hinzufügt. Ein Reproduzent, der cdev->configs leer hält, löst einen KASAN-Fehler in diesem Zweig aus.

Verwende list_first_entry_or_null(), damit die bestehende Prüfung ihren Job macht.

Metriken

Severity
high
kein öffentlicher PoC bekannt
7.1
Quelle: cna-v3
0.7 %
Niedrig — CVE gehört zu den unteren 10 % der heute bewerteten CVEs.
0.1 %
Niedrig — Modell schätzt < 1 % Ausnutzungs-Wahrscheinlichkeit.
Veröffentlicht
2026-09-07 09:05 UTC

Re-Analyse & Statuswechsel

Chronologie der NVD-Audit-Events für diese CVE — Reanalyses, CVSS-Updates, CPE-Diffs.

  1. CVE Modified2026-08-17 05:17 UTC· 416baaa9-dc9f-4396-8d5f-8c081fb06d67
    • Affected: Linux, LinuxLinux, Linux
  2. New CVE Received2026-07-25 10:17 UTC· 416baaa9-dc9f-4396-8d5f-8c081fb06d67
    • Affected: Linux, Linux
    • Description: In the Linux kernel, the following vulnerability has been resolved: usb: gadget: composite: fix dead empty check in the USB_DT_OTG handler The OTG branch of composite_setup() falls back to the first configuration when none is selected: if (cdev->config) config = cdev->config; else config = list_first_entry(&cdev->configs, struct usb_configuration, list); if (!config) goto done; ... memcpy(req->buf, config->descriptors[0], value); list_first_entry() never returns NULL. On an empty list it returns container_of() of the list head. So the "if (!config)" check is dead. When cdev->configs is empty, config points at the head inside struct usb_composite_dev. config->descriptors[0] reads whatever sits at that offset. The memcpy copies up to w_length bytes of it into the response buffer. cdev->configs can be empty in two cases. One is a teardown race on gadget unbind with a control transfer in flight. The other is a driver that sets is_otg before it adds a config. A reproducer that holds cdev->configs empty triggers a KASAN fault in this branch. Use list_first_entry_or_null() so the existing check does its job.
    • Reference: https://git.kernel.org/stable/c/01feaf024f29618d5ffa7ab0fd858e0579dcbf7b
    • Reference: https://git.kernel.org/stable/c/2454264b2ab4cf0055c0bfd39e79f830452bd0db

Betroffene Betriebssysteme

  • linux

    redhat / enterprise_linux10.0

  • linux

    redhat / enterprise_linux7.0

  • linux

    redhat / enterprise_linux8.0

  • linux

    redhat / enterprise_linux9.0

  • linux

    ubuntu / linux-aws-6.8jammy

  • linux

    ubuntu / linux-azureresolute

  • linux

    ubuntu / linux-azuretrusty

  • linux

    ubuntu / linux-azurexenial

  • linux

    ubuntu / linux-azure-4.15bionic

  • linux

    ubuntu / linux-azure-5.4bionic

  • linux

    ubuntu / linux-azure-fdenoble

  • linux

    ubuntu / linux-azure-fderesolute

  • linux

    ubuntu / linux-azure-fde-6.8jammy

  • linux

    ubuntu / linux-azure-fipsbionic

  • linux

    ubuntu / linux-azure-fipsfocal

  • linux

    ubuntu / linux-azure-fipsnoble

  • linux

    ubuntu / linux-fipsjammy

  • linux

    ubuntu / linux-gcp-7.0noble

  • linux

    ubuntu / linux-gkejammy

  • linux

    ubuntu / linux-nvidia-tegranoble

  • linux

    ubuntu / linux-raspinoble

  • linux

    ubuntu / linux-raspi-realtimenoble

  • linux

    linux / linux_kernel2.6.12

  • linux

    linux / linux_kernel2.6.15

Quellen & Referenzen

Verknüpfte CVEs

1392 weitere CVEs anzeigen
IDCVE-2026-64347
Linux kernel (GCP) vulnerabilities — CVE-2026-64347 | NEOSEC Intel