Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-13212— Zephyr virtio driver calls an arbitrary function pointer from an out-of-range used-ring descriptor id

Quick assessment

Affected
zephyrproject zephyr
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Zephyr 系统中的 virtio 驱动程序未对 virtio 设备写入使用环(used ring)的描述符链头 ID 进行验证。在 函数(位于 )中,设备写入的 被直接用作 和 数组的索引,而这两个数组均仅分配了恰好 个条目。 中存储的是包含回调函数指针和不透明参数(opaque)的 回调条目,随后通过索引获取回调指针并以 的形式进行调用。 由于该 ID 被作为 16 位无符号整数直接消费且未进行边界检查,恶意或已遭控制的 virtio 后端(例如不受信任的 hypervisor,或通过 PCI 或 MMIO

CVSS 8.8 · High
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-13212

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Zephyr virtio driver calls an arbitrary function pointer from an out-of-range used-ring descriptor id
Source: CVE Program / CVE List V5
Vulnerability 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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
对数组索引的验证不恰当
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
zephyrproject zephyr 4.2.0 ~ 4.4.2 -

II. Public POCs for CVE-2026-13212

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-13212

登录查看更多情报信息。

Patches & Fixes for CVE-2026-13212 (1)

Vendor Advisories for CVE-2026-13212 (1)

Same Patch Batch · zephyrproject · 2026-08-24 · 4 CVEs total

CVE-2026-9728 6.4 MEDIUM TOCTOU race in mbox_send syscall verifier allows userspace to leak kernel memory
CVE-2026-13343 5.3 MEDIUM Uninitialised stack memory disclosure in the MIDI 2.0 UMP Stream responder
CVE-2026-13213 5.3 MEDIUM Bluetooth HAS: NULL-pointer dereference DoS when a bonded peer reconnects before bt_has_re

IV. Related Vulnerabilities

V. Comments for CVE-2026-13212

No comments yet


Leave a comment