Linux Kernel bis 6.12.108/6.18.49/7.2.3 cros_usbpd-charger cros_usbpd-charger.c cros_usbpd_charger_probe num_charger_ports Pufferüberlauf

CVSS Meta Temp ScoreAktueller Exploitpreis (≈)CTI Interest Score
8.4$0-$5k0.00+

Zusammenfassunginfo

Es wurde eine Schwachstelle in Linux Kernel bis 6.12.108/6.18.49/7.2.3 gefunden. Sie wurde als sehr kritisch eingestuft. Hierbei geht es um die Funktion cros_usbpd_charger_probe der Datei cros_usbpd-charger.c der Komponente cros_usbpd-charger. Durch Manipulation des Arguments num_charger_ports mit unbekannten Daten kann eine Pufferüberlauf-Schwachstelle ausgenutzt werden. Eine eindeutige Identifikation der Schwachstelle wird mit CVE-2026-89471 vorgenommen. Der Angriff muss lokal angegangen werden. Es gibt keinen verfügbaren Exploit. Die Aktualisierung der betroffenen Komponente wird empfohlen.

Detailsinfo

In Linux Kernel bis 6.12.108/6.18.49/7.2.3 wurde eine Schwachstelle gefunden. Sie wurde als sehr kritisch eingestuft. Dabei geht es um die Funktion cros_usbpd_charger_probe der Datei cros_usbpd-charger.c der Komponente cros_usbpd-charger. Dank der Manipulation des Arguments num_charger_ports mit einer unbekannten Eingabe kann eine Pufferüberlauf-Schwachstelle ausgenutzt werden. CWE definiert das Problem als CWE-787. Auswirkungen hat dies auf Vertraulichkeit, Integrität und Verfügbarkeit. Die Zusammenfassung von CVE lautet:

In the Linux kernel, the following vulnerability has been resolved: power: supply: cros_usbpd-charger: bound the EC-reported port count cros_usbpd_charger_probe() reads two port counts from the EC and uses one of them, num_charger_ports, as the loop bound when populating a fixed-size array: struct port_data *ports[EC_USB_PD_MAX_PORTS]; /* 8 entries */ ... for (i = 0; i < charger->num_charger_ports; i++) charger->ports[charger->num_registered_psy++] = port; Both num_usbpd_ports (from EC_CMD_USB_PD_PORTS) and num_charger_ports (from EC_CMD_CHARGE_PORT_COUNT) are u8 values reported by the EC. The only validation is a sanity check that compares the two EC-reported values against each other: if (num_charger_ports < num_usbpd_ports || num_charger_ports > num_usbpd_ports + 1) return -EPROTO; It never checks either count against EC_USB_PD_MAX_PORTS, the size of the ports[] array. A malfunctioning, malicious or compromised EC that reports num_usbpd_ports == num_charger_ports == N for any N > 8 (for example both 255) passes this check, and the loop then writes N pointers into the 8-entry ports[] array embedded in the devm_kzalloc()'d charger_data, overflowing it by up to 255 - 8 = 247 entries (~1976 bytes): a slab out-of-bounds write. Reject a port count larger than the ports[] array can hold.

Bereitgestellt wird das Advisory unter git.kernel.org. Die Verwundbarkeit wird seit dem 11.09.2026 als CVE-2026-89471 geführt. Sie ist leicht auszunutzen. Der Angriff muss lokal angegangen werden. Technische Details sind bekannt, ein verfügbarer Exploit hingegen nicht. Ein Exploit zur Schwachstelle wird momentan etwa USD $0-$5k kosten (Preisberechnung vom 12.09.2026).

Ein Aktualisieren auf die Version 6.12.109, 6.18.50, 7.2.4 oder 7.3-rc1 vermag dieses Problem zu lösen. Die Schwachstelle lässt sich auch durch das Einspielen des Patches fd29d08ee487f3bf50f2575aaa74f78a74b09b21/78be8b7403ff7638162438b664a07d19da76059e/3d1e01443b221081258ff34ea0cdd0431e4ff62e/48355ce49359740f52e94d3623f6fc557ce341f0 lösen. Als bestmögliche Massnahme wird das Upgrade auf eine neue Version empfohlen.

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

Produktinfo

Typ

Hersteller

Name

Version

Lizenz

Webseite

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍

CVSSv3info

VulDB Meta Base Score: 8.8
VulDB Meta Temp Score: 8.4

VulDB Base Score: 8.8
VulDB Temp Score: 8.4
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VektorKomplexitätAuthentisierungVertraulichkeitIntegritätVerfügbarkeit
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten

VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Zuverlässigkeit: 🔍

Exploitinginfo

Klasse: Pufferüberlauf
CWE: CWE-787 / CWE-119
CAPEC: 🔒
ATT&CK: 🔒

Physisch: Teilweise
Lokal: Ja
Remote: Nein

Verfügbarkeit: 🔒
Status: Nicht definiert
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔒

0-Dayfreischaltenfreischaltenfreischaltenfreischalten
Heutefreischaltenfreischaltenfreischaltenfreischalten

Threat Intelligenceinfo

Interesse: 🔍
Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍

Gegenmassnahmeninfo

Empfehlung: Upgrade
Status: 🔍

0-Day Time: 🔒

Upgrade: Kernel 6.12.109/6.18.50/7.2.4/7.3-rc1
Patch: fd29d08ee487f3bf50f2575aaa74f78a74b09b21/78be8b7403ff7638162438b664a07d19da76059e/3d1e01443b221081258ff34ea0cdd0431e4ff62e/48355ce49359740f52e94d3623f6fc557ce341f0

Timelineinfo

11.09.2026 CVE zugewiesen
11.09.2026 +0 Tage VulDB Eintrag erstellt
12.09.2026 +0 Tage Advisory veröffentlicht
12.09.2026 +0 Tage VulDB Eintrag letzte Aktualisierung

Quelleninfo

Hersteller: kernel.org

Advisory: git.kernel.org
Status: Bestätigt

CVE: CVE-2026-89471 (🔒)
GCVE (CVE): GCVE-0-2026-89471
GCVE (VulDB): GCVE-100-402853

Eintraginfo

Erstellt: 12.09.2026 01:10
Anpassungen: 12.09.2026 01:10 (61)
Komplett: 🔍
Cache ID: 216::103

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

Diskussion

Bisher keine Kommentare. Sprachen: de + en.

Bitte loggen Sie sich ein, um kommentieren zu können.

Interested in the pricing of exploits?

See the underground prices here!