CVE-2026-80693
Critical · 9.3CVSS
9.3
EPSS
0.2%
Published
Aug 28, 2026
CISA due date
—
Cloudanix analysis
A bug in the Linux network driver can let a program on the same machine overwrite parts of the operating system's memory, potentially crashing the system or taking full control.
- Exploitation
- Local Privilege
- Attacker needs
- None
- Complexity
- Low
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds write in idpf_get_reg_intr_vecs() when a VIRTCHNL2_OP_ALLOC_VECTORS reply supplies per-chunk num_vectors summing higher than the kzalloc-sized reg_vals[] array derived from caps.num_allocated_vectors, causing KASAN slab-out-of-bounds write of struct idpf_vec_regs entries.
Why it matters to the business
Local kernel memory corruption on systems using the idpf driver can lead to privilege escalation, system crashes, or denial of service; 32 days post-disclosure with stable low exploit probability still requires prompt kernel updates to avoid exposure in virtualized or high-privilege network environments.
How an attack unfolds
An attacker with local access crafts or influences a malicious control-plane response (PF or hypervisor) returning an oversized VIRTCHNL2_OP_ALLOC_VECTORS reply; idpf_intr_reg_init() allocates based on the smaller num_allocated_vectors while the fill loop trusts the chunk sums, writing past the buffer and corrupting adjacent kernel slabs.
How to fix it
Update to a Linux kernel containing the bound-fill fix that mirrors the logic in idpf_vport_get_q_reg() and rejects undersized replies before the write; apply the vendor-supplied kernel package for the affected distribution as soon as available.
How to confirm the fix worked
Confirm the presence of the upstream patch that adds an explicit bounds check against the caller-supplied array capacity in idpf_get_reg_intr_vecs(); recompile or reinstall the kernel and verify the driver no longer trusts un-reconciled chunk counts from the virtchnl reply.
Typical attack path
- Obtain local execution on a Linux system with the vulnerable idpf driver loaded
- Trigger or emulate a VIRTCHNL2_OP_ALLOC_VECTORS reply whose per-chunk vector counts exceed the allocated total
- idpf_get_reg_intr_vecs() performs unbounded write into the undersized reg_vals[] allocation
- Kernel slab metadata or adjacent objects are corrupted, enabling further exploitation or crash
How to detect it
Review kernel logs for KASAN reports citing slab-out-of-bounds write involving idpf_vec_regs or idpf_get_reg_intr_vecs; inspect virtchnl reply handling paths and any unusual vector allocation counts returned to the idpf driver.
What your security team should do
- Prioritize kernel updates on any host exposing the idpf driver within the next patching cycle
- Monitor upstream stable and distribution security feeds for the corrected idpf.c changes
- Restrict untrusted control-plane or hypervisor components that could supply crafted virtchnl replies
- Test the updated kernel in a staging environment before broad deployment to avoid boot or networking regressions
The record
In the Linux kernel, the following vulnerability has been resolved: idpf: bound interrupt-vector register fill to the allocated array idpf_get_reg_intr_vecs() fills the caller-allocated reg_vals[] array from the VIRTCHNL2_OP_ALLOC_VECTORS reply in adapter->req_vec_chunks, bounding its inner loop only by the per-chunk num_vectors. The array is sized separately: idpf_intr_reg_init() allocates kzalloc_objs(struct idpf_vec_regs, total_vecs) from caps.num_allocated_vectors and only checks the returned count after the fill. The sum of per-chunk num_vectors is never reconciled against total_vecs, so a reply with a small num_allocated_vectors but chunks summing higher writes past the end of reg_vals[]. Impact: a control plane (a PF or hypervisor device model) that returns a VIRTCHNL2_OP_ALLOC_VECTORS reply whose per-chunk num_vectors sum exceeds num_allocated_vectors writes struct idpf_vec_regs entries past the end of the reg_vals kmalloc allocation (KASAN slab-out-of-bounds write). Bound the fill loop to the array capacity passed in by the callers, mirroring the sibling idpf_vport_get_q_reg(). The existing num_regs < num_vecs check then rejects an undersized reply without the out-of-bounds write happening first.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|