CVE-2026-89973

HIGHPre-NVD 8.28.2—
EchelonGraph scoreHIGH confidence

Score 8.2 from GitHub Security Advisory (severity: HIGH) published 2026-09-16. A secondary CVSS source baseline 8.2; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, secondary
Trending — 3 sources updated this week
8.2EG
EchelonGraph verdictPlan mitigationSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0.6%CVSS: 8.2Exploit: None knownExposed services: Not assessed

No fix is confirmed yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for the fix.

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] [ 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] [ 6.927226] ---[ end trace 0000000000000000 ]--- [ 6.927878] nvme nvme0: queue 1 failed to copy request 0x71 data [ 6.928709] nvme nvme0: receive failed: -14

CVSS v3
8.2
EG Score
8.2HIGHhigh confidence
EG Risk
42
EG Risk 42/100CISA SSVC

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity82% × 45%
Exploitation1% × 40%
Automatability30% × 15%
CISA SSVC: Track at low or medium mission impact; Track or Attend at high (mission-essential systems).
Action: No fix is confirmed yet. Restrict network exposure of the affected system or apply the vendor's mitigation within your standard update timelines at low or medium mission impact and sooner than that at high, and watch the vendor's advisory for the fix.
EPSS PROB
0.6%
EPSS %ILE
48th
KEV
Not listed

CISA SSVCTrack at low or medium mission impact; Track or Attend at high (mission-essential systems).

No fix is confirmed yet. Restrict network exposure of the affected system or apply the vendor's mitigation within your standard update timelines at low or medium mission impact and sooner than that at high, and watch the vendor's advisory for the fix.

Exploitation none (no KEV listing, exploit record or EPSS ≥ 50%) · Automatable unknown (not published for this CVE) · Technical impact partial (CVSS below 9.0). Mission impact is CISA's Mission & Well-being decision point, and only you can judge it: high means the affected system is essential to your organisation's mission, or its compromise could cause irreversible harm to people. CISA's decision table

Published

September 16, 2026

Last Modified

September 16, 2026

Advisory Details (8)

Auto-updated Sep 16, 2026
No patch confirmed yet.
generic

nvme-tcp: check the data direction of a C2HData PDU - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/f83af377c148f6ad94b41c0e8313f12adf45e1c1
generic

nvme-tcp: check the data direction of a C2HData PDU - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/a0c389b8a495bda1eb719d2503853c924b7a8355
generic

nvme-tcp: check the data direction of a C2HData PDU - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/b4af7999a998787d5eb6facb5a333e04a4f1d2d9
generic

nvme-tcp: check the data direction of a C2HData PDU - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/80d56202fbdff8906be6954b2776e5c14a4026f2
generic

nvme-tcp: check the data direction of a C2HData PDU - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/0673a2affe45ca76b60de31a83c67b1e60f81bde
generic

nvme-tcp: check the data direction of a C2HData PDU - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/5b115d932f6e769ac80783fb18edd21b0aed256e
generic

nvme-tcp: check the data direction of a C2HData PDU - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/980d990f3c0560d7dfbfbf14699651fdf02f26ee
generic

nvme-tcp: check the data direction of a C2HData PDU - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/df74950ba6008655d4a977d17df7faf4b6e52b74

Vendor Advisories for CVE-2026-89973(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Affected Packages

(4 across 3 ecosystems)
Debian:12(2)
PackageVulnerable rangeFix by version rangeDependents
linux6.1.106-1 ... 7.2~rc7-1~exp1 (360 versions)
  • every version on: no fix on record
—
linux-6.126.12.100-1~deb12u1, 6.12.101-1~deb12u1, 6.12.107-1~deb12u1
  • every version up to 6.12.111-1~deb12u1: fixed in 6.12.111-1~deb12u1
—
Debian:13(1)
PackageVulnerable rangeFix by version rangeDependents
linux6.12.100-1 ... 6.12.96-1 (35 versions)
  • every version up to 6.12.111-1: fixed in 6.12.111-1
—
Debian:14(1)
PackageVulnerable rangeFix by version rangeDependents
linux6.12.100-1 ... 7.2~rc7-1~exp1 (179 versions)
  • every version up to 7.2.6-1: fixed in 7.2.6-1
—

Data Freshness Timeline

(refreshed 25× in last 7d / 77× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-10-05 03:37 UTCEG score recompute
  2. 2026-10-05 03:37 UTCGHSA enrichment
  3. 2026-10-04 23:22 UTCEPSS rescore
  4. 2026-10-04 15:21 UTCGHSA enrichment
  5. 2026-10-04 03:01 UTCGHSA enrichment
  6. 2026-10-03 14:47 UTCEG score recompute
  7. 2026-10-03 14:47 UTCGHSA enrichment
  8. 2026-10-03 02:28 UTCEG score recompute
  9. 2026-10-03 02:28 UTCGHSA enrichment
  10. 2026-10-02 14:12 UTCGHSA enrichment
  11. 2026-10-02 01:55 UTCEG score recompute
  12. 2026-10-02 01:55 UTCGHSA enrichment
  13. 2026-10-01 19:51 UTCEPSS rescore
  14. 2026-10-01 13:40 UTCGHSA enrichment
  15. 2026-10-01 01:25 UTCEG score recompute
  16. 2026-10-01 01:25 UTCGHSA enrichment
  17. 2026-09-30 15:04 UTCEPSS rescore
  18. 2026-09-30 13:11 UTCGHSA enrichment
  19. 2026-09-30 00:54 UTCEG score recompute
  20. 2026-09-30 00:54 UTCGHSA enrichment
  21. 2026-09-29 10:25 UTCGHSA enrichment
  22. 2026-09-28 22:02 UTCEG score recompute
  23. 2026-09-28 22:02 UTCGHSA enrichment
  24. 2026-09-28 13:52 UTCEPSS rescore
  25. 2026-09-28 13:52 UTCEPSS rescore
Show 52 more
  1. 2026-09-28 09:47 UTCGHSA enrichment
  2. 2026-09-27 21:32 UTCEG score recompute
  3. 2026-09-27 21:32 UTCGHSA enrichment
  4. 2026-09-27 13:49 UTCEPSS rescore
  5. 2026-09-27 09:17 UTCGHSA enrichment
  6. 2026-09-26 21:00 UTCEG score recompute
  7. 2026-09-26 21:00 UTCGHSA enrichment
  8. 2026-09-26 15:59 UTCEPSS rescore
  9. 2026-09-26 08:44 UTCEG score recompute
  10. 2026-09-26 08:44 UTCGHSA enrichment
  11. 2026-09-25 20:29 UTCGHSA enrichment
  12. 2026-09-25 07:59 UTCGHSA enrichment
  13. 2026-09-24 19:44 UTCEG score recompute
  14. 2026-09-24 19:44 UTCGHSA enrichment
  15. 2026-09-24 14:04 UTCEPSS rescore
  16. 2026-09-24 07:29 UTCGHSA enrichment
  17. 2026-09-23 19:14 UTCEG score recompute
  18. 2026-09-23 19:13 UTCGHSA enrichment
  19. 2026-09-23 17:54 UTCEPSS rescore
  20. 2026-09-23 06:51 UTCGHSA enrichment
  21. 2026-09-22 18:36 UTCEG score recompute
  22. 2026-09-22 18:35 UTCGHSA enrichment
  23. 2026-09-22 16:01 UTCEPSS rescore
  24. 2026-09-22 06:20 UTCEG score recompute
  25. 2026-09-22 06:19 UTCGHSA enrichment
  26. 2026-09-21 21:09 UTCEPSS rescore
  27. 2026-09-21 18:04 UTCGHSA enrichment
  28. 2026-09-21 05:49 UTCEG score recompute
  29. 2026-09-21 05:49 UTCGHSA enrichment
  30. 2026-09-20 20:16 UTCEPSS rescore
  31. 2026-09-20 17:33 UTCGHSA enrichment
  32. 2026-09-20 05:08 UTCGHSA enrichment
  33. 2026-09-19 16:53 UTCEG score recompute
  34. 2026-09-19 16:53 UTCGHSA enrichment
  35. 2026-09-19 04:38 UTCEG score recompute
  36. 2026-09-19 04:38 UTCGHSA enrichment
  37. 2026-09-18 19:28 UTCEPSS rescore
  38. 2026-09-18 16:22 UTCGHSA enrichment
  39. 2026-09-18 04:07 UTCEG score recompute
  40. 2026-09-18 04:07 UTCGHSA enrichment
  41. 2026-09-17 19:32 UTCEPSS rescore
  42. 2026-09-17 15:52 UTCGHSA enrichment
  43. 2026-09-17 03:37 UTCEG score recompute
  44. 2026-09-17 03:37 UTCGHSA enrichment
  45. 2026-09-16 15:22 UTCEG score recompute
  46. 2026-09-16 15:22 UTCGHSA enrichment
  47. 2026-09-16 14:47 UTCEG score recompute▲ 8.20
  48. 2026-09-16 14:47 UTCGHSA enrichment
  49. 2026-09-16 14:45 UTCMITRE cvelistV5CVSS v3 → 8.2 · severity → HIGH
  50. 2026-09-16 11:21 UTCNVD update
  51. 2026-09-16 10:38 UTCEG score recompute
  52. 2026-09-16 10:36 UTCMITRE cvelistV5first tracked

Frequently asked(5)

What is CVE-2026-89973?
CVE-2026-89973 is a high vulnerability published on September 16, 2026. In the Linux kernel, the following vulnerability has been resolved: nvme-tcp: check the data direction of a C2HData PDU nvmetcphandlec2hdata() 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…
When was CVE-2026-89973 disclosed?
CVE-2026-89973 was first published on September 16, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-89973 actively exploited?
CVE-2026-89973 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.6% probability of exploitation in the next 30 days (48th percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2026-89973?
CVE-2026-89973 has a CVSS base score of 8.2 (a secondary CVSS source that NVD displays; NVD's own analysis pending).
How do I remediate CVE-2026-89973?
No fix for CVE-2026-89973 is confirmed yet. Until one is published, restrict network exposure of the affected system or apply the vendor's mitigation — for example, keep it off the internet or limit it to trusted networks — and watch the vendor's advisory for the fix. The vendor advisories EchelonGraph has for CVE-2026-89973 are linked in the Vendor Advisories panel on this page.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-89973

Explore →

Is Your Infrastructure Affected by CVE-2026-89973?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.