---
id: CVE-2025-40292
title: |-
  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, th…
summary: |-
  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, th…
severity: high
cvss: 8.4
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
published: '2025-12-08'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T22:10:00.210'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-40292'
references:
  - url: 'https://git.kernel.org/stable/c/0c716703965ffc5ef4311b65cb5d84a703784717'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/3e9d89f2ecd3636bd4cbdfd0b2dfdaf58f9882e2'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/82f9028e83944a9eee5229cbc6fee9be1de8a62d'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/82fe78065450d2d07f36a22e2b6b44955cf5ca5b'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/946dec89c41726b94d31147ec528b96af0be1b5a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
epss: 0.0017
epssPercentile: 0.05904
ingestedAt: '2026-10-14T23:00:02.015Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
