CVE-2026-53176 Details
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.
A denial-of-service vulnerability has been identified in the Linux kernel's iSCSI Extensions for RDMA (iSER) target driver) within the IB/iSER subsystem. The issue arises in the 'ib_isert.c' file, where the function 'isert_login_recv_done()' calculates the login request payload length by subtracting a fixed header length from the total byte length of the received work request. This calculation lacks a lower bound, allowing a remote iSER initiator to send a login request with fewer than 76 bytes. Such a request causes the length calculation to underflow, resulting in a negative value. This negative length is then misinterpreted as a valid size, leading to a buffer overflow by copying data far beyond the allocated buffer, which crashes the target node. Notably, this vulnerability can be exploited without any authentication, as it occurs before the iSCSI authentication phase.
The vulnerability has been addressed by adding a check to reject any login PDU shorter than the required header length before performing the length calculation. This update ensures that the length can never become negative, preventing the buffer overflow. Users should upgrade to the latest version of the Linux kernel where this fix has been applied.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
No SSVC data is available for this CVE.
References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-191 | Integer Underflow (Wrap or Wraparound) | [email protected] |
| CWE-839 | Numeric Range Comparison Without Minimum Check | redhat-SADP |
Affected Products
| Product | Versions |
|---|---|
| linux linux kernel | >= 3.10, < 5.10.259 >= 5.11, < 5.15.210 >= 5.16, < 6.1.176 >= 6.2, < 6.6.143 >= 6.7, < 6.12.94 >= 6.13, < 6.18.36 >= 6.19, < 7.0.13 7.1 rc1 7.1 rc2 7.1 rc3 7.1 rc4 7.1 rc5 7.1 rc6 7.1 rc7 |
CPE
Remediation
| |
Change History
9 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Sep 18, 2026 | CVE Modified | redhat-SADP |
| Sep 17, 2026 | CVE Modified | redhat-SADP |
| Sep 17, 2026 | CVE Modified | kernel.org |
| Jul 15, 2026 | CVE Modified | redhat-SADP |
| Jul 6, 2026 | Initial Analysis | [email protected] |
| Jul 2, 2026 | CVE Modified | redhat-SADP |
| Jun 30, 2026 | CVE Modified | redhat-SADP |
| Jun 28, 2026 | CVE Modified | kernel.org |
| Jun 25, 2026 | New CVE Received | kernel.org |