Zephyr Project bis 4.4.1 virtio PCI driver virtio_pci.c virtio_pci_read_cap cap_len Pufferüberlauf

CVSS Meta Temp ScoreAktueller Exploitpreis (≈)CTI Interest Score
6.2$0-$5k1.84-

Zusammenfassunginfo

Eine Schwachstelle wurde in Zephyr Project Zephyr bis 4.4.1 gefunden. Sie wurde als kritisch eingestuft. Es ist betroffen die Funktion virtio_pci_read_cap der Datei drivers/virtio/virtio_pci.c der Komponente virtio PCI driver. Die Veränderung des Parameters cap_len resultiert in Pufferüberlauf. Eine eindeutige Identifikation der Schwachstelle wird mit CVE-2026-13216 vorgenommen. Es ist möglich, den Angriff aus der Ferne durchzuführen. Es gibt keinen verfügbaren Exploit.

Detailsinfo

Es wurde eine Schwachstelle in Zephyr Project Zephyr bis 4.4.1 ausgemacht. Sie wurde als kritisch eingestuft. Dabei betrifft es die Funktion virtio_pci_read_cap der Datei drivers/virtio/virtio_pci.c der Komponente virtio PCI driver. Mit der Manipulation des Arguments cap_len mit einer unbekannten Eingabe kann eine Pufferüberlauf-Schwachstelle ausgenutzt werden. Im Rahmen von CWE wurde eine Klassifizierung als CWE-787 vorgenommen. Auswirkungen hat dies auf Integrität und Verfügbarkeit. Die Zusammenfassung von CVE lautet:

The virtio PCI driver (drivers/virtio/virtio_pci.c) parses a device's PCI capability list during driver initialization. In virtio_pci_read_cap() the device-supplied capability length byte cap_len (read from PCI config space via pcie_conf_read()) was only checked with assert(tmp.cap_len == cap_struct_size). That assert resolves to __ASSERT_NO_MSG(), gated by CONFIG_ASSERT, which defaults off in production builds, so the value reached the copy logic completely unvalidated. The length then drives a loop that copies extra capability dwords into a fixed-size stack buffer supplied by the caller. A cap_len below the 24-byte base struct virtio_pci_cap underflows the unsigned extra_data_words count to a near-SIZE_MAX value, producing an effectively unbounded stack write; a cap_len above the caller's buffer (up to 255) writes up to roughly 228 bytes of device-controlled data past the buffer. Both are out-of-bounds writes of attacker-controlled content executed in kernel mode during boot-time device probe. The input originates from the virtio device. In the common deployment where Zephyr runs as a guest under a hypervisor, the device backend is the host, which already fully outranks the guest, so the bug yields no privilege escalation. The exploitable case is a virtio device that is untrusted relative to the Zephyr kernel — an untrusted or physical/passthrough virtio PCIe device on a bare-metal system, or a confidential-computing posture where the guest must defend against the host — where a malicious device can corrupt the kernel stack and potentially achieve code execution or a crash. The fix replaces the compiled-out assert with a runtime range check rejecting cap_len outside [sizeof(struct virtio_pci_cap), cap_struct_size] before any arithmetic or copy.

Bereitgestellt wird das Advisory unter github.com. Die Identifikation der Schwachstelle wird seit dem 24.06.2026 mit CVE-2026-13216 vorgenommen. Das Ausnutzen gilt als leicht. Der Angriff kann über das Netzwerk erfolgen. Zur Ausnutzung ist keine spezifische Authentisierung erforderlich. Es sind zwar technische Details, jedoch kein verfügbarer Exploit zur Schwachstelle bekannt.

Ein Aktualisieren auf die Version 4.4.2 vermag dieses Problem zu lösen. Die Schwachstelle lässt sich auch durch das Einspielen des Patches d98dacee24ad10c972d3b7281c9009d82ed351c9 lösen.

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

Produktinfo

Typ

Hersteller

Name

Version

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍

CVSSv3info

VulDB Meta Base Score: 6.3
VulDB Meta Temp Score: 6.2

VulDB Base Score: 6.5
VulDB Temp Score: 6.2
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍

CNA Base Score: 6.1
CNA Vector (zephyr): 🔒

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: Ja
Lokal: Teilweise
Remote: Ja

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: Zephyr 4.4.2
Patch: d98dacee24ad10c972d3b7281c9009d82ed351c9

Timelineinfo

24.06.2026 CVE zugewiesen
25.08.2026 +62 Tage Advisory veröffentlicht
25.08.2026 +0 Tage VulDB Eintrag erstellt
25.08.2026 +0 Tage VulDB Eintrag letzte Aktualisierung

Quelleninfo

Advisory: github.com
Status: Bestätigt

CVE: CVE-2026-13216 (🔒)
GCVE (CVE): GCVE-0-2026-13216
GCVE (VulDB): GCVE-100-395133

Eintraginfo

Erstellt: 25.08.2026 18:45
Anpassungen: 25.08.2026 18:45 (69)
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.

Do you want to use VulDB in your project?

Use the official API to access entries easily!