Linux Kernel up to 7.2.0 nvmet-tcp nvmet_tcp_map_data length allocation of resources

CVSS Meta Temp Score
CVSS is a standardized scoring system to determine possibilities of attacks. The Temp Score considers temporal factors like disclosure, exploit and countermeasures. The unique Meta Score calculates the average score of different sources to provide a normalized scoring system.
Current Exploit Price (≈)
Our analysts are monitoring exploit markets and are in contact with vulnerability brokers. The range indicates the observed or calculated exploit price to be seen on exploit markets. A good indicator to understand the monetary effort required for and the popularity of an attack.
CTI Interest Score
Our Cyber Threat Intelligence team is monitoring different web sites, mailing lists, exploit markets and social media networks. The CTI Interest Score identifies the interest of attackers and the security community for this specific vulnerability in real-time. A high score indicates an elevated risk to be targeted for this vulnerability.
7.2$0-$5k0.00

Summaryinfo

A vulnerability, which was classified as critical, has been found in Linux Kernel up to 7.2.0. Impacted is the function nvmet_tcp_map_data of the component nvmet-tcp. Performing a manipulation of the argument length results in allocation of resources. This vulnerability is identified as CVE-2026-80789. The attack can be initiated remotely. There is not any exploit available.

Detailsinfo

A vulnerability was found in Linux Kernel up to 7.2.0. It has been classified as critical. This affects the function nvmet_tcp_map_data of the component nvmet-tcp. The manipulation of the argument length with an unknown input leads to a allocation of resources vulnerability. CWE is classifying the issue as CWE-770. The product allocates a reusable resource or group of resources on behalf of an actor without imposing any restrictions on the size or number of resources that can be allocated, in violation of the intended security policy for that actor. This is going to have an impact on availability. The summary by CVE is:

In the Linux kernel, the following vulnerability has been resolved: nvmet-tcp: bound SGL data length before allocating command buffers nvmet_tcp_map_data() reads the host-controlled 32-bit sgl->length and, for the in-capsule offset descriptor (type 0x01), checks it against port->inline_data_size before use. Any other SGL descriptor type -- including the non-inline transport SGL data-block descriptor (type (NVME_TRANSPORT_SGL_DATA_DESC << 4) | NVME_SGL_FMT_TRANSPORT_A, the type a real host uses for out-of-capsule writes) skips that check entirely and falls straight through to: cmd->req.sg = sgl_alloc(len, GFP_KERNEL, &cmd->req.sg_cnt); with len taken directly from the wire, unbounded up to 4 GiB. nvmet_req_init() only parses the command and never inspects sgl->length, and nvmet_check_transfer_len() -- the only other place transfer_len is validated -- runs later, from req->execute(), after the allocation has already happened. For a write command the target responds with an R2T and parks the command waiting for the host to send the data; if the host (or an unauthenticated peer that simply never follows up) never does, the sgl_alloc() buffer stays resident for the life of the command. NVMe/TCP has no mandatory authentication in the default configuration, so any peer able to reach the target portal and complete a Fabrics connect can drive this with a single crafted command, repeatable across queues and connections for amplification. This is unbounded kernel memory allocation triggered by a remote, effectively unauthenticated peer. Validate len against the same NVMET_TCP_MAXH2CDATA ceiling this file already uses to bound per-PDU H2C data, for every SGL descriptor type, before doing any allocation. This closes the gap for the non-inline descriptor while leaving the existing, tighter inline_data_size check in place for the in-capsule case. Runtime-verified on a v6.19 KASAN stand: with this bound in place, a crafted write command carrying an oversized non-inline SGL length is rejected before sgl_alloc() runs, where the same request previously drove an unbounded ~256 MiB kernel allocation (up to 4 GiB) that stayed resident pending an R2T the host never satisfies.

It is possible to read the advisory at git.kernel.org. This vulnerability is uniquely identified as CVE-2026-80789 since 08/26/2026. The exploitability is told to be easy. It is possible to initiate the attack remotely. No form of authentication is needed for exploitation. Technical details of the vulnerability are known, but there is no available exploit. The pricing for an exploit might be around USD $0-$5k at the moment (estimation calculated on 09/04/2026). The attack technique deployed by this issue is T1499 according to MITRE ATT&CK.

Upgrading to version 5.10.269, 5.15.220, 6.1.187, 6.6.156, 6.12.106, 6.18.47, 7.1.11, 7.2.1 or 7.3-rc1 eliminates this vulnerability. Applying the patch f6e51b09cbaa5f6f6e6a3a9dafa666f76c37aab5/f63e89a0310264264923f84406dea05fe752de62/0952541b153e258b99d39cdb03ea6919fdeb41d0/25ad03d5c0e858c4b63f1e4b6d461d2af1b30b22/d2acc96c528d589f5827cfb90e8e9229dd9d8cb4/6d27199ebe8cb223022150f74be13f154a964474/14dbe37681a6a7e346fc147bb363ec7cca3180a0/d895e66628f939edbb98608f6e033d3d39e6e546/4a3f00262a044e8e15064b1a6860968bf0500bf4 is able to eliminate this problem.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Productinfo

Type

Vendor

Name

Version

License

Website

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔒
VulDB Reliability: 🔍

CVSSv3info

VulDB Meta Base Score: 7.5
VulDB Meta Temp Score: 7.2

VulDB Base Score: 7.5
VulDB Temp Score: 7.2
VulDB Vector: 🔒
VulDB Reliability: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplexityAuthenticationConfidentialityIntegrityAvailability
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock

VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍

Exploitinginfo

Class: Allocation of resources
CWE: CWE-770 / CWE-400 / CWE-404
CAPEC: 🔒
ATT&CK: 🔒

Physical: No
Local: No
Remote: Yes

Availability: 🔒
Status: Not defined

EPSS Score: 🔒
EPSS Percentile: 🔒

Price Prediction: 🔍
Current Price Estimation: 🔒

0-DayUnlockUnlockUnlockUnlock
TodayUnlockUnlockUnlockUnlock

Threat Intelligenceinfo

Interest: 🔍
Active Actors: 🔍
Active APT Groups: 🔍

Countermeasuresinfo

Recommended: Upgrade
Status: 🔍

0-Day Time: 🔒

Upgrade: Kernel 5.10.269/5.15.220/6.1.187/6.6.156/6.12.106/6.18.47/7.1.11/7.2.1/7.3-rc1
Patch: f6e51b09cbaa5f6f6e6a3a9dafa666f76c37aab5/f63e89a0310264264923f84406dea05fe752de62/0952541b153e258b99d39cdb03ea6919fdeb41d0/25ad03d5c0e858c4b63f1e4b6d461d2af1b30b22/d2acc96c528d589f5827cfb90e8e9229dd9d8cb4/6d27199ebe8cb223022150f74be13f154a964474/14dbe37681a6a7e346fc147bb363ec7cca3180a0/d895e66628f939edbb98608f6e033d3d39e6e546/4a3f00262a044e8e15064b1a6860968bf0500bf4

Timelineinfo

08/26/2026 CVE reserved
09/04/2026 +9 days Advisory disclosed
09/04/2026 +0 days VulDB entry created
09/04/2026 +0 days VulDB entry last update

Sourcesinfo

Vendor: kernel.org

Advisory: git.kernel.org
Status: Confirmed

CVE: CVE-2026-80789 (🔒)
GCVE (CVE): GCVE-0-2026-80789
GCVE (VulDB): GCVE-100-398931

Entryinfo

Created: 09/04/2026 18:23
Changes: 09/04/2026 18:23 (60)
Complete: 🔍
Cache ID: 216::103

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Discussion

No comments yet. Languages: en.

Please log in to comment.

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!