Skip to main content

Linux Kernel EUVDEUVD-2026-80573

| CVE-2026-89973 HIGH
2026-09-16 Linux GHSA-9393-xpw8-3983
8.2
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
vuln.today AI
7.5 HIGH

Rogue controller triggers at will over the network (AV:N/AC:L/PR:N/UI:N); no data copied so C:N/I:N; A:H reflects panic_on_warn kernel panic (A:L for the default controller-reset case).

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
High

Lifecycle Timeline

7
Metadata Corrected
Sep 16, 2026 - 16:40 vuln.today
tag: Denial Of Service added
Metadata Corrected
Sep 16, 2026 - 16:40 vuln.today
tag: Buffer Overflow removed
Analysis Generated
Sep 16, 2026 - 16:14 vuln.today
CVSS changed
Sep 16, 2026 - 15:22 NVD
8.2 (HIGH)
Patch available
Sep 16, 2026 - 11:03 EUVD
CVE Published
Sep 16, 2026 - 10:32 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 16, 2026 - 10:32 cve.org
HIGH 8.2

DescriptionCVE.org

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

nvme-tcp: check the data direction of a C2HData PDU

nvme_tcp_handle_c2h_data() finds the request by command id and checks that it has a payload, but it does not check that the command asked for data to be read. A controller that answers a write command with C2HData therefore reaches nvme_tcp_recv_data(), where _copy_to_iter() hits WARN_ON_ONCE(i->data_source) and returns 0. The receive path turns that into -EFAULT and resets the controller.

No data is copied, so this is not memory corruption. What a controller gets is a kernel warning it can raise at will, which is fatal on a host booted with panic_on_warn.

The send path already knows the direction - it consults rq_data_dir() when it builds a command - and nvme_tcp_handle_r2t() checks the length and the offset of the request it names. The C2HData path does not check the direction at all.

Reject a C2HData PDU whose command is not a read. Rejecting it fails the command and resets the controller, as the neighbouring check in this function does; what goes away is the warning.

[ 6.885580] ------------[ cut here ]------------ [ 6.886457] WARNING: lib/iov_iter.c:193 at _copy_to_iter+0x289/0x1330, CPU#0: kworker/0:1H/71 [ 6.888137] CPU: 0 UID: 0 PID: 71 Comm: kworker/0:1H Not tainted 7.2.0-rc5-NVMETCP-gf5098b6bae76 #1 PREEMPT(lazy) [ 6.891165] Workqueue: nvme_tcp_wq nvme_tcp_io_work [ 6.891875] RIP: 0010:_copy_to_iter+0x289/0x1330 [ 6.903739] Call Trace: [ 6.904085] <TASK> [ 6.909254] __skb_datagram_iter+0x433/0x820 [ 6.911026] skb_copy_datagram_iter+0x37/0x120 [ 6.911622] nvme_tcp_recv_skb+0xa07/0x4320 [ 6.913378] __tcp_read_sock+0x1ab/0x810 [ 6.915788] nvme_tcp_try_recv+0x152/0x1e0 [ 6.918222] nvme_tcp_io_work+0x1e4/0x6c0 [ 6.926906] </TASK> [ 6.927226] ---[ end trace 0000000000000000 ]--- [ 6.927878] nvme nvme0: queue 1 failed to copy request 0x71 data [ 6.928709] nvme nvme0: receive failed: -14

AnalysisAI

Denial of service in the Linux kernel's NVMe-over-TCP (nvme-tcp) host driver, where nvme_tcp_handle_c2h_data() accepts a controller-to-host data PDU for a command that did not request a read; the receive path then hits WARN_ON_ONCE(i->data_source) inside _copy_to_iter(), returns -EFAULT, and resets the controller. The impacted component is the initiator side of the NVMe-oF TCP transport, so hosts are only at risk when they attach to a malicious or compromised NVMe-oF TCP target that can dictate PDU sequencing; there is no public exploit identified at time of analysis, and the practical severity is modest because the trigger requires control of the storage controller the host talks to (inverted trust model). …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Persist
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation Requires a Linux host using the nvme-tcp (NVMe-over-TCP) transport that connects/attaches to a malicious or compromised NVMe-oF TCP controller; the host issues a write command and the controller responds with a C2HData PDU naming that command, which the host fails to reject due to the missing data-direction check. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment This is a genuine but modest-severity denial-of-service issue in the Linux kernel NVMe-over-TCP HOST (initiator) driver, not the target. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Vendor-released patch: update to Linux 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.51, 7.2.5, or 7.3-rc2 (or apply the matching stable backport commit, e.g. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, inventory all Linux hosts using the NVMe-over-TCP initiator (nvme-tcp) and identify any booted with panic_on_warn, then apply the vendor-released patch for CVE-2026-89973 (confirm the exact fixed kernel version in your distribution vendor's advisory) or, if immediate patching is not possible, isolate those hosts from untrusted NVMe-oF TCP targets and consider disabling the nvme-tcp module where it is not required; within 7 days, apply the vendor patch to all remaining affected hosts, verify the running kernel build against the vendor advisory, and restrict NVMe-oF TCP target access to trusted storage arrays; within 30 days, validate patch compliance across the fleet, review whether panic_on_warn is still operationally required, and add monitoring for nvme controller resets and kernel panics to detect any recurrence.

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

EUVD-2026-80573 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy