CVE-2026-90414

CRITICALPre-NVD 9.19.1—
EchelonGraph scoreHIGH confidence

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

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

A fix is available — apply it.

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

IB/isert: reject PDUs declaring more data than was received

isert_recv_done() hands each received PDU to the opcode handlers without ever looking at wc->byte_len, the number of bytes the HCA actually placed in the receive descriptor. The handlers then copy that many bytes - the data-segment length the initiator declared in the BHS (ntoh24(hdr->dlength), via the derived unsol_data_len / imm_data_len) - out of the fixed-size descriptor:

isert_handle_iscsi_dataout(): sg_copy_from_buffer(sg_start, sg_nents, isert_get_data(rx_desc), unsol_data_len); isert_handle_scsi_cmd(): sg_copy_from_buffer(cmd->se_cmd.t_data_sg, sg_nents, isert_get_data(rx_desc), imm_data_len);

Because the declared length is never checked against wc->byte_len, an initiator can declare a data segment larger than the bytes it actually sent (and larger than the descriptor) and cause an out-of-bounds read of the receive buffer.

Nothing upstream of isert closes this door:

  • __iscsit_check_dataout_hdr() bounds the inbound payload against
conn_ops->MaxXmitDataSegmentLength (MXDSL) - a transmit parameter, used here for the inbound check.
  • iscsi_set_connection_parameters() sets
ops->MaxXmitDataSegmentLength = ops->TargetRecvDataSegmentLength; and TARGETRECVDATASEGMENTLENGTH is absent from the min()-clamp list in iscsi_check_acceptor_state(), so the value the initiator declares is adopted verbatim (type range 512..16777215). The initiator effectively raises its own ceiling.
  • isert never clamps the negotiated value to its own fixed receive
descriptor (ISER_RX_SIZE, 9216 bytes), so the target core's bound and the descriptor size are unrelated.

The imm_data_len == data_len path is more than an over-read: it aliases the receive descriptor via sg_set_buf() and passes it to the backend as the data source for the SCSI WRITE, so an over-declared length causes heap contents past the descriptor to be written through the backend to the backing store. The backend is the victim of the oversized scatterlist isert hands it, not the cause; no read-back of the written bytes was demonstrated.

Trigger: after login completes (full feature phase), an initiator that has declared a large TargetRecvDataSegmentLength and a FirstBurstLength that permits unsolicited/immediate data sends a PDU whose declared data-segment length exceeds what was received. With KASAN:

BUG: KASAN: slab-out-of-bounds in sg_copy_buffer+0x150/0x1c0 Read of size 4096 at addr ffff888109720800 by task kworker/1:0H/25 Workqueue: ib-comp-wq ib_cq_poll_work Call Trace: sg_copy_buffer+0x150/0x1c0 isert_recv_done+0xba6/0x2390 __ib_process_cq+0xe1/0x390 ib_cq_poll_work+0x46/0x150

isert_recv_done+0xba6 resolves to isert_handle_iscsi_dataout() (ib_isert.c:1160), inlined through isert_rx_opcode().

Validate wc->byte_len against the framing in isert_recv_done() before the PDU reaches any handler, and reinstate the connection if it is short. Because the test compares without subtracting the header length, it also rejects PDUs shorter than the iSER and iSCSI headers, which would otherwise be parsed out of stale descriptor contents. The login handler rejects PDUs shorter than ISER_HEADERS_LEN (commit 29e7b925ae6d ("IB/isert: Reject login PDUs shorter than ISER_HEADERS_LEN")) but does not bound the declared length either; that is fixed in the next patch. The data handlers had no length check at all.

isert reads the data segment from a fixed offset: isert_get_data() returns the iSER header plus ISER_HEADERS_LEN and makes no adjustment for an AHS. The bytes the handlers touch are therefore exactly [ISER_HEADERS_LEN, ISER_HEADERS_LEN + dlength), and comparing that sum against wc->byte_len bounds precisely the region that is read. An AHS term would only make the test stricter without bounding anything furth ---truncated---

CVSS v3
9.1
EG Score
9.1CRITICALhigh confidence
EG Risk
46
EG Risk 46/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
Severity91% × 45%
Exploitation1% × 40%
Automatability30% × 15%
CISA SSVC: Track at low or medium mission impact; Track* or Attend at high (mission-essential systems).
Action: A fix is available. Apply it within your standard update timelines at low or medium mission impact and sooner than that at high.
EPSS PROB
0.7%
EPSS %ILE
52nd
KEV
Not listed

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

A fix is available. Apply it within your standard update timelines at low or medium mission impact and sooner than that at high.

Exploitation none (no KEV listing, exploit record or EPSS ≥ 50%) · Automatable unknown (not published for this CVE) · Technical impact total (CVSS ≥ 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 17, 2026

Last Modified

September 18, 2026

Advisory Details (8)

Auto-updated Sep 18, 2026
Patch available.
generic

IB/isert: reject PDUs declaring more data than was received - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/957f92ea4022fb6af4618271615a2a21a7b5bef9
generic

IB/isert: reject PDUs declaring more data than was received - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/352dc85324b29f5c85876f2666f3158b645e3f18
generic

IB/isert: reject PDUs declaring more data than was received - kernel/git/stable/linux.git - Linux kernel stable tree

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

IB/isert: reject PDUs declaring more data than was received - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/39da0b7e1f530347d284cebcfc5b5afa90a173bf
generic

IB/isert: reject PDUs declaring more data than was received - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/2a6b8f88fb7ee51714a1922a039225bdcaf12855
generic

IB/isert: reject PDUs declaring more data than was received - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/274b1ad7e78338710864c4b4235bb1ce7e7107f9
generic

IB/isert: reject PDUs declaring more data than was received - kernel/git/stable/linux.git - Linux kernel stable tree

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

IB/isert: reject PDUs declaring more data than was received - kernel/git/stable/linux.git - Linux kernel stable tree

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

Vendor Advisories for CVE-2026-90414(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 49× in last 7d / 134× 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.

Showing the most recent 100 of 134 total refreshes for this CVE.

  1. 2026-10-05 13:26 UTCGHSA enrichment
  2. 2026-10-05 09:20 UTCGHSA enrichment
  3. 2026-10-05 05:13 UTCGHSA enrichment
  4. 2026-10-05 01:07 UTCGHSA enrichment
  5. 2026-10-04 21:01 UTCGHSA enrichment
  6. 2026-10-04 16:50 UTCGHSA enrichment
  7. 2026-10-04 12:43 UTCGHSA enrichment
  8. 2026-10-04 08:38 UTCGHSA enrichment
  9. 2026-10-04 04:32 UTCGHSA enrichment
  10. 2026-10-04 00:27 UTCGHSA enrichment
  11. 2026-10-03 20:22 UTCGHSA enrichment
  12. 2026-10-03 16:16 UTCEG score recompute
  13. 2026-10-03 16:16 UTCGHSA enrichment
  14. 2026-10-03 12:11 UTCGHSA enrichment
  15. 2026-10-03 08:05 UTCGHSA enrichment
  16. 2026-10-03 03:37 UTCGHSA enrichment
  17. 2026-10-02 23:31 UTCGHSA enrichment
  18. 2026-10-02 19:03 UTCEG score recompute
  19. 2026-10-02 19:03 UTCGHSA enrichment
  20. 2026-10-02 14:56 UTCGHSA enrichment
  21. 2026-10-02 10:51 UTCGHSA enrichment
  22. 2026-10-02 06:33 UTCGHSA enrichment
  23. 2026-10-02 02:25 UTCGHSA enrichment
  24. 2026-10-01 22:14 UTCEG score recompute
  25. 2026-10-01 22:13 UTCGHSA enrichment
Show 75 more
  1. 2026-10-01 19:51 UTCEPSS rescore
  2. 2026-10-01 17:49 UTCGHSA enrichment
  3. 2026-10-01 13:42 UTCGHSA enrichment
  4. 2026-10-01 09:37 UTCGHSA enrichment
  5. 2026-10-01 05:30 UTCGHSA enrichment
  6. 2026-10-01 01:24 UTCGHSA enrichment
  7. 2026-09-30 21:19 UTCGHSA enrichment
  8. 2026-09-30 17:14 UTCEG score recompute
  9. 2026-09-30 17:14 UTCGHSA enrichment
  10. 2026-09-30 15:04 UTCEPSS rescore
  11. 2026-09-30 13:09 UTCGHSA enrichment
  12. 2026-09-30 08:54 UTCGHSA enrichment
  13. 2026-09-30 04:49 UTCGHSA enrichment
  14. 2026-09-30 00:43 UTCGHSA enrichment
  15. 2026-09-29 18:22 UTCEG score recompute
  16. 2026-09-29 18:22 UTCGHSA enrichment
  17. 2026-09-29 14:00 UTCGHSA enrichment
  18. 2026-09-29 09:54 UTCGHSA enrichment
  19. 2026-09-29 05:48 UTCGHSA enrichment
  20. 2026-09-29 01:43 UTCGHSA enrichment
  21. 2026-09-28 21:38 UTCEG score recompute
  22. 2026-09-28 21:38 UTCGHSA enrichment
  23. 2026-09-28 17:33 UTCEG score recompute
  24. 2026-09-28 17:33 UTCGHSA enrichment
  25. 2026-09-28 13:52 UTCEPSS rescore
  26. 2026-09-28 13:52 UTCEPSS rescore
  27. 2026-09-28 13:14 UTCGHSA enrichment
  28. 2026-09-28 09:09 UTCGHSA enrichment
  29. 2026-09-28 05:04 UTCGHSA enrichment
  30. 2026-09-28 00:59 UTCGHSA enrichment
  31. 2026-09-27 20:53 UTCGHSA enrichment
  32. 2026-09-27 16:48 UTCEG score recompute
  33. 2026-09-27 16:48 UTCGHSA enrichment
  34. 2026-09-27 13:49 UTCEPSS rescore
  35. 2026-09-27 12:42 UTCGHSA enrichment
  36. 2026-09-27 08:37 UTCGHSA enrichment
  37. 2026-09-27 04:30 UTCGHSA enrichment
  38. 2026-09-27 00:20 UTCGHSA enrichment
  39. 2026-09-26 20:14 UTCGHSA enrichment
  40. 2026-09-26 16:09 UTCEG score recompute
  41. 2026-09-26 16:08 UTCGHSA enrichment
  42. 2026-09-26 15:59 UTCEPSS rescore
  43. 2026-09-26 11:55 UTCGHSA enrichment
  44. 2026-09-26 07:48 UTCGHSA enrichment
  45. 2026-09-26 03:43 UTCEG score recompute
  46. 2026-09-26 03:43 UTCGHSA enrichment
  47. 2026-09-25 23:37 UTCGHSA enrichment
  48. 2026-09-25 19:19 UTCGHSA enrichment
  49. 2026-09-25 14:54 UTCGHSA enrichment
  50. 2026-09-25 10:47 UTCGHSA enrichment
  51. 2026-09-25 06:34 UTCGHSA enrichment
  52. 2026-09-25 02:29 UTCGHSA enrichment
  53. 2026-09-24 22:23 UTCGHSA enrichment
  54. 2026-09-24 18:18 UTCGHSA enrichment
  55. 2026-09-24 14:12 UTCEG score recompute
  56. 2026-09-24 14:12 UTCGHSA enrichment
  57. 2026-09-24 14:04 UTCEPSS rescore
  58. 2026-09-24 09:51 UTCGHSA enrichment
  59. 2026-09-24 05:46 UTCGHSA enrichment
  60. 2026-09-24 01:40 UTCGHSA enrichment
  61. 2026-09-23 21:35 UTCEG score recompute
  62. 2026-09-23 21:35 UTCGHSA enrichment
  63. 2026-09-23 17:54 UTCEPSS rescore
  64. 2026-09-23 17:29 UTCGHSA enrichment
  65. 2026-09-23 13:24 UTCGHSA enrichment
  66. 2026-09-23 09:18 UTCGHSA enrichment
  67. 2026-09-23 05:13 UTCGHSA enrichment
  68. 2026-09-23 01:07 UTCGHSA enrichment
  69. 2026-09-22 21:01 UTCGHSA enrichment
  70. 2026-09-22 16:56 UTCEG score recompute
  71. 2026-09-22 16:56 UTCGHSA enrichment
  72. 2026-09-22 16:01 UTCEPSS rescore
  73. 2026-09-22 12:48 UTCGHSA enrichment
  74. 2026-09-22 08:41 UTCGHSA enrichment
  75. 2026-09-22 04:36 UTCGHSA enrichment

Frequently asked(5)

What is CVE-2026-90414?
CVE-2026-90414 is a critical vulnerability published on September 17, 2026. In the Linux kernel, the following vulnerability has been resolved: IB/isert: reject PDUs declaring more data than was received isertrecvdone() hands each received PDU to the opcode handlers without ever looking at wc->byte_len, the number of bytes the HCA actually placed in the receive descriptor.…
When was CVE-2026-90414 disclosed?
CVE-2026-90414 was first published on September 17, 2026, with the most recent update on September 18, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-90414 actively exploited?
CVE-2026-90414 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.7% probability of exploitation in the next 30 days (52nd percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2026-90414?
CVE-2026-90414 has a CVSS base score of 9.1 (a secondary CVSS source that NVD displays; NVD's own analysis pending).
How do I remediate CVE-2026-90414?
A fix for CVE-2026-90414 is available: update to the fixed version the vendor names in its advisory. The vendor advisories EchelonGraph has for CVE-2026-90414 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-90414

Explore →

Is Your Infrastructure Affected by CVE-2026-90414?

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