CVE-2025-40292
NoneCVSS
—
EPSS
0.2%
Published
Dec 8, 2025
CISA due date
—
Cloudanix analysis
A flaw in Linux virtual-machine networking could let a malicious host crash guest systems by sending incorrect data-size information.
- Exploitation
- Adjacent Network
- Attacker needs
- High Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability allows a malicious hypervisor to announce an oversized buffer length for big packets in virtio-net when guest GSO is off, bypassing the receive length check against vi->big_packets_num_skbfrags and causing a NULL page pointer dereference in the skb fragment allocation loop.
Why it matters to the business
In virtualized Linux environments relying on virtio networking, this can result in guest kernel crashes and denial of service triggered by a compromised host, interrupting VM availability. The low EPSS and lack of known exploitation reduce urgency, but widespread Linux kernel usage in clouds and data centers means broad patching is needed.
How an attack unfolds
An attacker with control over the host vhost_net driver alters get_rx_bufs to supply an incorrect buffer length exceeding the guest's allocated fragments; when the guest receives the packet in the virtio-net path the unadapted check fails, leading to the NULL dereference.
How to fix it
Upgrade the Linux kernel to a version containing commit 82f9028e83944a9eee5229cbc6fee9be1de8a62d or any later stable release that applies the updated length check for big packets.
How to confirm the fix worked
Confirm the running kernel source or binary includes the corrected received-length validation that references vi->big_packets_num_skbfrags; test by attempting oversized buffer announcements in a controlled virtio setup and verifying no dereference occurs.
Typical attack path
- Gain control of the hypervisor or modify the vhost_net driver on the host
- Configure virtio-net to announce a malicious buffer length larger than the guest's big_packets_num_skbfrags allocation
- Trigger big-packet reception in the guest with GSO disabled
- Induce the NULL pointer dereference and resulting kernel panic
How to detect it
Search guest kernel logs for NULL pointer dereference panics or oopses originating from the virtio_net receive path during big-packet handling; correlate with host-side anomalies in vhost_net buffer announcements.
What your security team should do
- Apply the kernel patch containing commit 82f9028e83944a9eee5229cbc6fee9be1de8a62d to all affected virtio-net guests without delay
- Audit virtualization hosts for unauthorized modifications to vhost_net or similar drivers
- Enable kernel crash logging and monitoring for virtio_net receive-path oopses as a compensating control
The record
In the Linux kernel, the following vulnerability has been resolved: virtio-net: fix received length check in big packets Since commit 4959aebba8c0 ("virtio-net: use mtu size as buffer length for big packets"), when guest gso is off, the allocated size for big packets is not MAX_SKB_FRAGS * PAGE_SIZE anymore but depends on negotiated MTU. The number of allocated frags for big packets is stored in vi->big_packets_num_skbfrags. Because the host announced buffer length can be malicious (e.g. the host vhost_net driver's get_rx_bufs is modified to announce incorrect length), we need a check in virtio_net receive path. Currently, the check is not adapted to the new change which can lead to NULL page pointer dereference in the below while loop when receiving length that is larger than the allocated one. This commit fixes the received length check corresponding to the new change.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Linux | Kernel | 6.1.0 | 6.1.159 |
| Mageia:9 | kernel | 0 | 6.6.120-1.mga9 |
| Mageia:9 | kernel-linus | 0 | 6.6.120-1.mga9 |
| Mageia:9 | kmod-virtualbox | 0 | 7.1.14-14.mga9 |
| Mageia:9 | kmod-xtables-addons | 0 | 3.24-88.mga9 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-azure | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-default | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 0 | 6.12.0-160000.9.1.160000.2.6 |
| openSUSE:Leap 16.0 | kernel-docs | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-rt | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-source | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-syms | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 0 | 6.12.0-160000.9.1 |
Related vulnerabilities
- CVE-2026-23226 In the Linux kernel, the following vulnerability has been resolved: ksmbd: add chann_lock… Also affects Kernel
- CVE-2026-23225 In the Linux kernel, the following vulnerability has been resolved: sched/mmcid: Don't… Also affects Kernel
- CVE-2026-23230 In the Linux kernel, the following vulnerability has been resolved: smb: client: split… Also affects Kernel
- CVE-2026-23224 In the Linux kernel, the following vulnerability has been resolved: erofs: fix UAF issue… Also affects Kernel
- CVE-2026-23227 In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use… Also affects Kernel
- CVE-2026-23223 In the Linux kernel, the following vulnerability has been resolved: xfs: fix UAF in… Also affects Kernel
- CVE-2026-23228 In the Linux kernel, the following vulnerability has been resolved: smb: server: fix leak… Also affects Kernel
- CVE-2026-23229 In the Linux kernel, the following vulnerability has been resolved: crypto: virtio - Add… Also affects Kernel