CVE-2026-13212
Last modified
CVE-2026-13212 is a high-severity vulnerability rated 8.8/10 on the CVSS scale. The Zephyr virtio driver does not validate the descriptor-chain head id that the virtio device writes into the used ring. In virtio_isr() (drivers/virtio/virtio_common.c), the device-written vq->used->ring[idx].id is used directly as an index into vq->recv_cbs[] and vq->desc[], which are both allocated with exactly vq->num entries. EPSS estimates a 0.22% chance of exploitation in the next 30 days.
Description
The Zephyr virtio driver does not validate the descriptor-chain head id that the virtio device writes into the used ring. In virtio_isr() (drivers/virtio/virtio_common.c), the device-written vq->used->ring[idx].id is used directly as an index into vq->recv_cbs[] and vq->desc[], which are both allocated with exactly vq->num entries. recv_cbs[] holds {cb, opaque} callback entries, and the indexed callback pointer is then invoked as cbe.cb(cbe.opaque, used_len). Because the id is consumed as a 16-bit value with no bound check, a malicious or compromised virtio backend (an untrusted hypervisor, or an untrusted hardware/peer-processor virtio device on a PCI or MMIO transport) can supply an id far beyond vq->num. This causes an out-of-bounds read of a {function pointer, argument} pair from heap memory beyond recv_cbs[], after which the driver calls that attacker-shaped pointer in the guest's interrupt context. No guest privileges or user interaction are required; the backend triggers it by writing the shared used ring and raising the queue interrupt. The result is an arbitrary / attacker-influenced function-pointer call in the Zephyr guest, i.e. a control-flow-hijack primitive that can lead to code execution or, at minimum, a reliable crash. The fix rejects any used-ring id >= vq->num before indexing recv_cbs[]/desc[] or invoking the callback. This affects builds using CONFIG_VIRTIO with the PCI or MMIO transport.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| zephyrproject | zephyr | >= 4.2.0, < 4.4.2 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-13212?
How severe is CVE-2026-13212?
How do I fix CVE-2026-13212?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-13206Improper neutralization of special elements used in an OS co…9.8
- CVE-2026-13207FUXA versions 1.3.1 and prior contain an authentication bypa…8.7
- CVE-2026-13208A flaw was found in KubeVirt's virt-handler domain notify se…6.5
- CVE-2026-1321The Membership Plugin – Restrict Content plugin for WordPres…8.1
- CVE-2026-13210GitLab has remediated an issue in GitLab CE/EE affecting all…7.7
- CVE-2026-13211The genucenter web interface before version 8.0p11 unnecessa…4.3
- CVE-2026-13213The Hearing Access Service (HAS) GATT server in subsys/bluet…5.3
- CVE-2026-13214The OCPP 1.6 client in subsys/net/lib/ocpp/ocpp_j.c contains…9.8
- CVE-2026-13215The Zephyr ext2 filesystem driver fails to validate the s_lo…6.8
- CVE-2026-13216The virtio PCI driver (drivers/virtio/virtio_pci.c) parses a…6.1
- CVE-2026-13217The OCPP 1.6 client in subsys/net/lib/ocpp/ocpp.c reconstruc…5.9
- CVE-2026-13218A flaw was found in KubeVirt's virt-handler network cache ha…4.2
Are you affected by CVE-2026-13212?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
