GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel nvmet-tcp: unbounded kernel allocation from an unauthenticated NVMe/TCP peer

UnscoredCVE-2026-80789Kernel, userspace & hypervisorcurated

Impact

nvmet_tcp_map_data() only bounds the host-supplied 32-bit SGL length for the in-capsule inline descriptor type. For the transport data-block descriptor a real host uses for out-of-capsule writes, the length goes straight to sgl_alloc() unchecked, up to 4 GiB. For a write command the target answers with an R2T and parks the command, so a peer that simply never sends the data leaves the allocation resident for the life of the command, repeatable across queues and connections. NVMe/TCP has no mandatory authentication in the default configuration, so any peer that can reach the portal and complete a Fabrics connect can drive it. On a fleet where GPU nodes mount training data over an NVMe/TCP target, this is remote kernel memory exhaustion against the storage node - and pushing that node into OOM stalls every job reading from it.

Who can reach it

Any host that can reach the NVMe/TCP target portal on the storage network and complete a Fabrics connect. No authentication is required in the default configuration.

What to do

Take the stable kernel fix on every node running the NVMe-oF target (nvmet-tcp); it bounds the length against NVMET_TCP_MAXH2CDATA for every SGL descriptor type. This is a kernel change, so each target node needs a reboot onto the patched kernel unless you livepatch. Until then, restrict the target portal to known initiator addresses at the network layer and enable NVMe-oF in-band authentication where the initiators support it.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.