Zephyr Project bis 4.4.1 virtio PCI driver virtio_pci.c virtio_pci_read_cap cap_len Pufferüberlauf
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 6.2 | $0-$5k | 1.84- |
Zusammenfassung
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.
Details
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.
Produkt
Typ
Hersteller
Name
Version
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Zuverlässigkeit: 🔍
CVSSv3
VulDB Meta Base Score: 6.3VulDB 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): 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Zuverlässigkeit: 🔍
Exploiting
Klasse: PufferüberlaufCWE: CWE-787 / CWE-119
CAPEC: 🔒
ATT&CK: 🔒
Physisch: Ja
Lokal: Teilweise
Remote: Ja
Verfügbarkeit: 🔒
Status: Nicht definiert
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔒
| 0-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: Zephyr 4.4.2
Patch: d98dacee24ad10c972d3b7281c9009d82ed351c9
Timeline
24.06.2026 CVE zugewiesen25.08.2026 Advisory veröffentlicht
25.08.2026 VulDB Eintrag erstellt
25.08.2026 VulDB Eintrag letzte Aktualisierung
Quellen
Advisory: github.comStatus: Bestätigt
CVE: CVE-2026-13216 (🔒)
GCVE (CVE): GCVE-0-2026-13216
GCVE (VulDB): GCVE-100-395133
Eintrag
Erstellt: 25.08.2026 18:45Anpassungen: 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.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.