Skip to main content

Linux Kernel EUVDEUVD-2026-59042

| CVE-2026-72084 CRITICAL
2026-08-15 416baaa9-dc9f-4396-8d5f-8c081fb06d67 GHSA-f335-4fhr-wm5c
9.8
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67) PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
6.5 MEDIUM

Reachable over the network but only by an initiator able to send SCSI PR OUT (PR:L); the flaw is a read-only over-read causing a kernel oops, so C:N/I:N and A:H.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Red Hat
7.0 HIGH
qualitative

Primary rating from Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67).

CVSS VectorVendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 17, 2026 - 06:42 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
9.8 (CRITICAL)
Patch available
Aug 15, 2026 - 07:20 EUVD
CVE Published
Aug 15, 2026 - 06:21 cve.org
CRITICAL 9.8
CVE Published
Aug 15, 2026 - 06:21 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

scsi: target: Bound PR-OUT TransportID parsing to the received buffer

core_scsi3_decode_spec_i_port() and core_scsi3_emulate_register_and_move() hand the raw PERSISTENT RESERVE OUT parameter buffer to target_parse_pr_out_transport_id() without telling it how many bytes are valid. For an iSCSI TransportID (FORMAT CODE 01b), iscsi_parse_pr_out_transport_id() locates the ",i,0x" ISID separator with an unbounded strstr() (and on the error path prints the name with a further unbounded "%s"). An initiator can submit a TransportID whose iSCSI name contains neither a ",i,0x" substring nor a NUL terminator, filling the parameter list to its end, so the scan runs off the end of the buffer.

When the parameter list spans more than one page the buffer is a multi-page vmap (transport_kmap_data_sg()), so the over-read walks into the trailing vmalloc guard page and oopses (KASAN: vmalloc-out-of-bounds in strstr). It is reachable by any fabric that delivers a PR OUT to a device exported through an iSCSI TPG, including a guest via vhost-scsi.

Pass the number of received bytes down to the parser and validate the iSCSI TransportID's own self-described length (ADDITIONAL LENGTH + 4) once, up front: reject it if it is below the spc4r17 minimum or larger than the received buffer, then bound the separator search, the ISID walk and the name copy by that length. This is the length check the callers already perform after the parse (core_scsi3_decode_spec_i_port() compares tid_len against tpdl, core_scsi3_emulate_register_and_move() validates it against data_length), moved ahead of the scan. Also drop the unbounded "%s" of the unterminated name.

Add per-format explicit name-length checks before copying into i_str, rather than silently truncating with min_t: for FORMAT CODE 00b reject if the descriptor body (tid_len - 4 bytes) cannot fit in i_str[TRANSPORT_IQN_LEN]; for FORMAT CODE 01b reject if the name portion (from &buf[4] up to the separator) cannot fit. Both checks make the bounds intent explicit at each format branch.

While here, also reject a FORMAT CODE 01b TransportID whose ",i,0x" separator sits at the very end of the descriptor: that leaves an empty ISID and points the returned port nexus pointer at buf + tid_len, one past the descriptor, which the registration code (__core_scsi3_locate_pr_reg(), __core_scsi3_alloc_registration()) then dereferences as the ISID string -- the same over-read of the parameter buffer for a malformed descriptor.

AnalysisAI

Kernel out-of-bounds read in the Linux SCSI target (LIO/TCM) subsystem lets a SCSI initiator crash the host by sending a malformed PERSISTENT RESERVE OUT command. The iSCSI TransportID parser (target_parse_pr_out_transport_id / iscsi_parse_pr_out_transport_id) scans for the ',i,0x' ISID separator with an unbounded strstr(), so a TransportID whose iSCSI name has no separator and no NUL terminator runs the scan off the end of a multi-page vmap buffer into the vmalloc guard page, oopsing the kernel (KASAN: vmalloc-out-of-bounds). It is reachable by any fabric delivering PR OUT to an iSCSI-exported device, including a guest via vhost-scsi. No public exploit identified at time of analysis; EPSS is low (0.21%, 12th percentile) and it is not in CISA KEV.

Technical ContextAI

The flaw lives in the kernel's target core (LIO/TCM), the in-kernel SCSI target framework used to export block devices over fabrics such as iSCSI and vhost-scsi. SCSI-3 Persistent Reservations (SPC-4) allow an initiator to register I_T nexuses via PERSISTENT RESERVE OUT with SPEC_I_PT and REGISTER AND MOVE service actions, whose parameter lists carry TransportID descriptors identifying initiator ports. For FORMAT CODE 01b (iSCSI), the name is terminated by a ',i,0x' ISID separator. core_scsi3_decode_spec_i_port() and core_scsi3_emulate_register_and_move() passed the raw parameter buffer to the parser without a length, and the parser located the separator with strstr() and printed the name with '%s' - both unbounded. Because large parameter lists are mapped as a multi-page vmap via transport_kmap_data_sg(), the over-read crosses into the trailing vmalloc guard page. Root cause is a classic out-of-bounds read (CWE-125, though the feed lists CWE as N/A) from trusting attacker-controlled length/terminator data. The fix passes the received byte count down and validates the TransportID's self-described ADDITIONAL LENGTH+4 against the spc4r17 minimum and buffer size before any scan, adds per-format name-length checks, and rejects a separator at the very end of the descriptor that would point the nexus pointer one past the buffer.

RemediationAI

Vendor-released patch: upgrade to a fixed stable release for your series - 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.40, or 7.1.5 (7.2-rc4 upstream) - or apply your distribution's backport of the corresponding git.kernel.org stable commits (d04a179085c2, 03fbc7de8d5e, 555a89846ed8, 9298078a8f7d, 6ca5de8782e6, 8422480 47ef2, 004ccd2d3b4a). Where you cannot reboot into a patched kernel immediately, reduce exposure by restricting who can send SCSI commands to the target: tighten iSCSI initiator ACLs on the TPG and require/verify CHAP authentication so only trusted initiators can issue PR OUT (trade-off: managing per-initiator credentials/ACLs), place the iSCSI portal on an isolated storage network with firewalling of the iSCSI port 3260 from untrusted hosts (trade-off: none functionally if storage traffic is already segregated), and for virtualization hosts avoid exposing vhost-scsi devices to untrusted guests or unprivileged VMs (trade-off: loss of that passthrough performance path). If the SCSI target subsystem is not needed, ensure the LIO/target modules are not loaded. These controls limit reachability but do not fix the parser, so patching remains the primary action. Advisory: https://nvd.nist.gov/vuln/detail/CVE-2026-72084.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

EUVD-2026-59042 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy