CVE-2026-53176

IB/isert: Reject login PDUs shorter than ISER_HEADERS_LEN

State
Published
Severity
9.8 Critical
Published
Jun 25, 2026
Updated
Oct 19, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

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

IB/isert: Reject login PDUs shorter than ISER_HEADERS_LEN

In drivers/infiniband/ulp/isert/ib_isert.c, isert_login_recv_done() computes the login request payload length as wc->byte_len minus ISER_HEADERS_LEN with no lower bound, and login_req_len is a signed int. A remote iSER initiator can post a login Send work request carrying fewer than ISER_HEADERS_LEN (76) bytes, so the subtraction underflows and login_req_len becomes negative.

isert_rx_login_req() then reads that negative length back into a signed int, takes size = min(rx_buflen, MAX_KEY_VALUE_PAIRS), and because the min() is signed it keeps the negative value; the value is then passed as the memcpy() length and sign-extended to a multi-gigabyte size_t. The copy into the 8192-byte login->req_buf runs far out of bounds and faults, crashing the target node. The login phase precedes iSCSI authentication, so no credentials are required to reach this path.

Reject any login PDU shorter than ISER_HEADERS_LEN before the subtraction, mirroring the existing early return on a failed work completion, so login_req_len can never go negative. The upper bound was already safe: a posted login buffer cannot deliver more than ISER_RX_PAYLOAD_SIZE, so the difference stays at or below MAX_KEY_VALUE_PAIRS and the existing min() clamps it; only the missing lower bound needs to be added.

Scores

CVSSScoreVectorSource
3.19.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux
3.16.5 MediumCVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:Hredhat-SADP

Weaknesses

  • CWE-839 Numeric Range Comparison Without Minimum Check

Affected Products

ProductVersions
LinuxLinux
  • b8d26b3be8b33682cf163274ed07479a70554633 to before 75ee6e4aa096aa9e7b2dd5c8ff98356e30aceefbAffected
  • b8d26b3be8b33682cf163274ed07479a70554633 to before e8a013c0c3ca2f6708341a56612a3f6d6921620aAffected
  • b8d26b3be8b33682cf163274ed07479a70554633 to before bd22740d7f14cb1c0289444cfd2c8d2938667c1dAffected
  • b8d26b3be8b33682cf163274ed07479a70554633 to before c1234229399f4af12c553b1b0ffd978eeba65548Affected
  • b8d26b3be8b33682cf163274ed07479a70554633 to before c5584e089b5af7b3bf8bd5e8ca0560cbf32b0a47Affected
  • b8d26b3be8b33682cf163274ed07479a70554633 to before df422fd273c96c2ee5beb80fc21adc8c70c29260Affected
  • b8d26b3be8b33682cf163274ed07479a70554633 to before 1ca40b243277c9e88be5e00bd3e083f71aefb93eAffected
  • b8d26b3be8b33682cf163274ed07479a70554633 to before 29e7b925ae6df64894e82ab6419994dc25580a8aAffected
LinuxLinux
  • 3.10Affected
  • before 3.10Not affected
  • 5.10.259 through 5.10.*Not affected
  • 5.15.210 through 5.15.*Not affected
  • 6.1.176 through 6.1.*Not affected
  • 6.6.143 through 6.6.*Not affected
  • 6.12.94 through 6.12.*Not affected
  • 6.18.36 through 6.18.*Not affected
  • 7.0.13 through 7.0.*Not affected
  • 7.1 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.