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

| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 7.2 | $0-$5k | 0.00 |
Summary
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.
Details
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.
Product
Type
Vendor
Name
Version
- 5.10.268
- 5.15.219
- 6.1.186
- 6.6.155
- 6.12.105
- 6.18.0
- 6.18.1
- 6.18.2
- 6.18.3
- 6.18.4
- 6.18.5
- 6.18.6
- 6.18.7
- 6.18.8
- 6.18.9
- 6.18.10
- 6.18.11
- 6.18.12
- 6.18.13
- 6.18.14
- 6.18.15
- 6.18.16
- 6.18.17
- 6.18.18
- 6.18.19
- 6.18.20
- 6.18.21
- 6.18.22
- 6.18.23
- 6.18.24
- 6.18.25
- 6.18.26
- 6.18.27
- 6.18.28
- 6.18.29
- 6.18.30
- 6.18.31
- 6.18.32
- 6.18.33
- 6.18.34
- 6.18.35
- 6.18.36
- 6.18.37
- 6.18.38
- 6.18.39
- 6.18.40
- 6.18.41
- 6.18.42
- 6.18.43
- 6.18.44
- 6.18.45
- 6.18.46
- 7.0
- 7.1
- 7.1.0
- 7.1.1
- 7.1.2
- 7.1.3
- 7.1.4
- 7.1.5
- 7.1.6
- 7.1.7
- 7.1.8
- 7.1.9
- 7.1.10
- 7.2.0
License
Website
- Vendor: https://www.kernel.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 7.5VulDB Meta Temp Score: 7.2
VulDB Base Score: 7.5
VulDB Temp Score: 7.2
VulDB Vector: 🔒
VulDB Reliability: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Allocation of resourcesCWE: 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-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
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
Timeline
08/26/2026 CVE reserved09/04/2026 Advisory disclosed
09/04/2026 VulDB entry created
09/04/2026 VulDB entry last update
Sources
Vendor: kernel.orgAdvisory: git.kernel.org
Status: Confirmed
CVE: CVE-2026-80789 (🔒)
GCVE (CVE): GCVE-0-2026-80789
GCVE (VulDB): GCVE-100-398931
Entry
Created: 09/04/2026 18:23Changes: 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.
No comments yet. Languages: en.
Please log in to comment.