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

scsi: target: core: Fix iSCSI ISID use-after-free in REGISTER AND MOVE

core_scsi3_emulate_pro_register_and_move() maps the PERSISTENT RESERVE OUT
parameter list with transport_kmap_data_sg() and parses the destination
TransportID with target_parse_pr_out_transport_id(). For an iSCSI
TransportID (FORMAT CODE 01b), iscsi_parse_pr_out_transport_id() returns
the ISID in iport_ptr as a raw pointer into that mapped buffer.

The function then unmaps the buffer with transport_kunmap_data_sg() before
dereferencing iport_ptr in strcmp(), __core_scsi3_locate_pr_reg() and
core_scsi3_alloc_registration(). When the parameter list spans more than
one page (PARAMETER LIST LENGTH > 4096), transport_kmap_data_sg() uses
vmap() and transport_kunmap_data_sg() does vunmap(), so the kernel virtual
address backing iport_ptr is torn down and every subsequent dereference is
a use-after-free read of the unmapped region.

Keep the parameter list mapped until iport_ptr is no longer needed: drop
the early transport_kunmap_data_sg() and unmap once on the success path,
right before returning. The error paths already unmap through the existing
"if (buf) transport_kunmap_data_sg(cmd)" at the out: label, which now runs
on every post-map error exit because buf is no longer cleared early. Only
reads of the mapping happen while spinlocks are held; the map and unmap
calls remain outside any lock. The sibling caller
core_scsi3_decode_spec_i_port() already uses the buffer before unmapping it
and is left unchanged.
Published: 2026-08-15
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises in the Linux kernel’s scsi target subsystem when it processes iSCSI Persistent Reserve OUT commands during the REGISTER AND MOVE operation. The kernel maps the parameter list into memory, extracts the ISID from the TransportID, then immediately unmaps the buffer before the ISID pointer is used in several comparisons and allocation functions. When the parameter list spans than one page, the mapping is performed via vmap() and the subsequent unmap with vunmap() destroys the virtual address referenced by the ISID pointer, resulting in a use‑after‑free read of freed memory. This can corrupt kernel memory, potentially leading to a crash, data loss, or enabling an attacker to execute arbitrary code with kernel privileges. The weakness corresponds to CWE‑825.

Affected Systems

The affected code resides in the core Linux kernel; any distribution that ships an unpatched kernel containing the scsi target implementation is vulnerable. The advisory does not disclose specific kernel versions, so the assumption is that every kernel build prior to the commit that removes the early unmap is at risk until the patch is applied. No product‑specific versions are enumerated, meaning all Linux kernels potentially contain the flaw.

Risk and Exploitability

The CVSS score of 9.8 signals critical severity. The EPSS score of < 1 % indicates a low but non‑negligible likelihood that an adversary will attempt exploitation. The flaw is not listed in the CISA KEV catalogue and no public exploits are known. A successful attack would typically require an attacker who can deliver a malicious iSCSI Persistent Reserve OUT command to the target service exposed on TCP 3260; this is a remote attack vector that does not require local privileges. Because the vulnerability causes a kernel memory corruption, exploitation could lead to a denial‑of‑service crash or privilege escalation to root, depending on the environment and defenses.

Generated by OpenCVE AI on August 18, 2026 at 04:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the commit resolving the scsi target use‑after‑free bug (see the referenced kernel commits).
  • If updating the kernel is not immediately possible, disable the iSCSI target driver or stop the target service to prevent external iSCSI commands from reaching the vulnerable code.
  • Configure firewall rules or access control lists to restrict traffic to the iSCSI port (TCP 3260) so that only trusted hosts can send commands.

Generated by OpenCVE AI on August 18, 2026 at 04:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 18 Aug 2026 03:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Tue, 18 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

threat_severity

Important


Mon, 17 Aug 2026 22:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 17 Aug 2026 19:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Sat, 15 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: scsi: target: core: Fix iSCSI ISID use-after-free in REGISTER AND MOVE core_scsi3_emulate_pro_register_and_move() maps the PERSISTENT RESERVE OUT parameter list with transport_kmap_data_sg() and parses the destination TransportID with target_parse_pr_out_transport_id(). For an iSCSI TransportID (FORMAT CODE 01b), iscsi_parse_pr_out_transport_id() returns the ISID in iport_ptr as a raw pointer into that mapped buffer. The function then unmaps the buffer with transport_kunmap_data_sg() before dereferencing iport_ptr in strcmp(), __core_scsi3_locate_pr_reg() and core_scsi3_alloc_registration(). When the parameter list spans more than one page (PARAMETER LIST LENGTH > 4096), transport_kmap_data_sg() uses vmap() and transport_kunmap_data_sg() does vunmap(), so the kernel virtual address backing iport_ptr is torn down and every subsequent dereference is a use-after-free read of the unmapped region. Keep the parameter list mapped until iport_ptr is no longer needed: drop the early transport_kunmap_data_sg() and unmap once on the success path, right before returning. The error paths already unmap through the existing "if (buf) transport_kunmap_data_sg(cmd)" at the out: label, which now runs on every post-map error exit because buf is no longer cleared early. Only reads of the mapping happen while spinlocks are held; the map and unmap calls remain outside any lock. The sibling caller core_scsi3_decode_spec_i_port() already uses the buffer before unmapping it and is left unchanged.
Title scsi: target: core: Fix iSCSI ISID use-after-free in REGISTER AND MOVE
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T05:40:05.325Z

Reserved: 2026-08-09T03:40:39.904Z

Link: CVE-2026-72083

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:21:20.167

Modified: 2026-08-17T06:18:07.043

Link: CVE-2026-72083

cve-icon Redhat

Severity : Important

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72083 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T04:30:06Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference