Description
In the Linux kernel, the following vulnerability has been resolved:

nvmet-tcp: Do not WARN on remotely-controlled oversized SGL allocations

When fuzzing the nvme target code, I tripped a kernel warning in
nvmet_tcp_map_data() because the length passed into the allocator is
controlled by the remote initiator.

A remote initiator that sends a command with an SGL claiming a huge
number, can create a scatterlist and iovec allocation of over 1 million
entries, which causes the backing kmalloc call to exceed MAX_PAGE_ORDER
and then the page allocator will trip on a WARN_ON_ONCE_GFP() message:

WARNING: mm/page_alloc.c:5280 __alloc_frozen_pages_noprof
Workqueue: nvmet_tcp_wq nvmet_tcp_io_work
...
sgl_alloc_order
nvmet_tcp_map_data
nvmet_tcp_try_recv_pdu

As it's never good to trip a kernel warning remotely due to many systems
having panic-on-warn enabled, let's silence it by just add GFP_NOWARN to
the allocation flags.
Published: 2026-09-04
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

An attacker who can control a remotely sent NVMe command can specify an enormous SGL length, causing the kernel to attempt to allocate an unrealistically large scatter‑list. The allocation request exceeds the maximum page order and triggers a WARN_ON_ONCE_GFP warning; if the system is configured to panic on warnings, this will bring the kernel down. The underlying weakness is uncontrolled resource allocation by untrusted input, identified as CWE-770.

Affected Systems

The flaw exists in the Linux kernel nvmet-tcp subsystem and affects all kernel releases prior to the inclusion of the fix; the vendor is Linux. No specific version range is listed in the CNA data, so any kernel build preceding the patch commit represents a vulnerable system.

Risk and Exploitability

The CVSS score is not disclosed, and EPSS is not available, but the vulnerability can lead to a kernel panic if panic-on-warn is enabled, representing a high‑risk denial‑of‑service scenario. The attacker requires the ability to send NVMe commands to the target, which is typically possible from a remote initiator. The vulnerability is not listed in CISA’s KEV catalogue, but its exploitability is straightforward for an attacker with remote NVMe access.

Generated by OpenCVE AI on September 4, 2026 at 17:01 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the nvmet-tcp patch that adds GFP_NOWARN to the allocation call.
  • If an immediate kernel upgrade is not feasible, consider disabling the kernel’s panic-on-warn behaviour by setting panic_on_warn=0 in /proc/sys/kernel/panic_on_warn, but note that this is a temporary workaround and can hide other critical warnings.
  • Regularly monitor system logs for recurring kernel warnings relating to nvmet_tcp or WARN_ON_ONCE_GFP to detect attempts to trigger the issue early.

Generated by OpenCVE AI on September 4, 2026 at 17:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 04 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-770

Fri, 04 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: nvmet-tcp: Do not WARN on remotely-controlled oversized SGL allocations When fuzzing the nvme target code, I tripped a kernel warning in nvmet_tcp_map_data() because the length passed into the allocator is controlled by the remote initiator. A remote initiator that sends a command with an SGL claiming a huge number, can create a scatterlist and iovec allocation of over 1 million entries, which causes the backing kmalloc call to exceed MAX_PAGE_ORDER and then the page allocator will trip on a WARN_ON_ONCE_GFP() message: WARNING: mm/page_alloc.c:5280 __alloc_frozen_pages_noprof Workqueue: nvmet_tcp_wq nvmet_tcp_io_work ... sgl_alloc_order nvmet_tcp_map_data nvmet_tcp_try_recv_pdu As it's never good to trip a kernel warning remotely due to many systems having panic-on-warn enabled, let's silence it by just add GFP_NOWARN to the allocation flags.
Title nvmet-tcp: Do not WARN on remotely-controlled oversized SGL allocations
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-04T15:12:59.912Z

Reserved: 2026-08-26T14:34:25.793Z

Link: CVE-2026-80788

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-04T16:18:04.857

Modified: 2026-09-04T16:18:04.857

Link: CVE-2026-80788

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T18:30:04Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling