CVE-2026-90230

nvmet: fix heap out-of-bounds read in nvmet_auth_negotiate()

State
Published
Severity
9.1 Critical
Published
Sep 17, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

nvmet: fix heap out-of-bounds read in nvmet_auth_negotiate()

nvmet_execute_auth_send() allocates the DH-HMAC-CHAP message buffer with the host-supplied transfer length (tl) and hands it to nvmet_auth_negotiate() without passing tl along. nvmet_auth_negotiate() then reads the negotiate header and, for each of the halen hash identifiers and dhlen DH group identifiers, indexes into the fixed idlist[60] array (hashes at idlist[0..halen), groups at idlist[30..]).

Neither the transfer length nor halen/dhlen is validated. A malicious or non-conformant host can report a tl smaller than the negotiate structure, or a halen/dhlen larger than the array (both are u8, up to 255), making the loops read past the end of the allocated buffer (heap out-of-bounds read). The sibling nvmet_auth_reply() already validates tl against the structure size; the negotiate path did not.

Pass tl into nvmet_auth_negotiate(), reject a tl that does not cover the negotiate data plus one full protocol descriptor, and reject halen/dhlen larger than NVME_AUTH_DHCHAP_MAX_DH_IDS.

Scores

CVSSScoreVectorSource
3.19.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • db1312dd95488b5e6ff362ff66fcf953a46b1821 to before 89ff11b72f38976f3b5aea23a5228ee05e277209Affected
  • db1312dd95488b5e6ff362ff66fcf953a46b1821 to before aaac783950b17c57df9b6f7344747cacb1a407edAffected
  • db1312dd95488b5e6ff362ff66fcf953a46b1821 to before c38a8186326799957d293d370136c128cd113916Affected
  • db1312dd95488b5e6ff362ff66fcf953a46b1821 to before 7b81e4d2230e3d2d372c826180c4ef0efc244f31Affected
  • db1312dd95488b5e6ff362ff66fcf953a46b1821 to before 5bb96cc218835769ab74ec7f3ea2bf81fbffe955Affected
LinuxLinux
  • 6.0Affected
  • before 6.0Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.