Cloudanix VulnDB

CVE-2025-40292

None

CVSS

—

EPSS

0.2%

Published

Dec 8, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

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

  1. Gain control of the hypervisor or modify the vhost_net driver on the host
  2. Configure virtio-net to announce a malicious buffer length larger than the guest's big_packets_num_skbfrags allocation
  3. Trigger big-packet reception in the guest with GSO disabled
  4. 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