CVE-2026-72085

scsi: xen: scsiback: Free unsubmitted command instead of double-putting it

State
Published
Severity
9.3 Critical
Published
Aug 15, 2026
Updated
Oct 19, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

Description

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

scsi: xen: scsiback: Free unsubmitted command instead of double-putting it

scsiback_get_pend_req() obtains a command tag and returns a vscsibk_pend whose embedded se_cmd has only been memset to 0, so its cmd_kref is 0; the se_cmd is initialised (kref_init() via target_init_cmd()) only later, in scsiback_cmd_exec(), on the successful VSCSIIF_ACT_SCSI_CDB path. The two error paths in scsiback_do_cmd_fn() taken before the command is submitted -- a failed scsiback_gnttab_data_map() and an unknown ring_req.act -- call transport_generic_free_cmd(&pending_req->se_cmd, 0), which kref_put()s a refcount of 0. That underflows it ("refcount_t: underflow; use-after-free") and, as the release function is not run, leaks the command tag.

Impact: a pvSCSI guest can leak every command tag of a LUN's session, stopping the LUN, by submitting requests with a bad grant reference or an unknown request type; under panic_on_warn the refcount underflow panics the host.

Add a helper that just returns the tag with target_free_tag() and sends the error response. It frees the tag while the v2p reference still pins the session, and snapshots the response fields beforehand because freeing the tag can let another ring reuse the pending_req slot.

Scores

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

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 2dbcdf33dbf61f44b29adb52338282c3d7840d0e to before 9c0f6894982b1f13bda220707497b25ac9c95bdbAffected
  • 2dbcdf33dbf61f44b29adb52338282c3d7840d0e to before a13b789497a7fdd27d4d63f5c69d23db706ef0feAffected
  • 2dbcdf33dbf61f44b29adb52338282c3d7840d0e to before fa588f28401102652068c4cc75e135507f4b5106Affected
  • 2dbcdf33dbf61f44b29adb52338282c3d7840d0e to before fcd64d4d97af5d9736f31040f8ed8cd4c17e4c45Affected
  • 2dbcdf33dbf61f44b29adb52338282c3d7840d0e to before f1516c56ac540da1769f264c3cfefe4499548a5dAffected
  • 2dbcdf33dbf61f44b29adb52338282c3d7840d0e to before 1e97c404e44991fb087c38ccd7414f2d326f9b74Affected
  • 2dbcdf33dbf61f44b29adb52338282c3d7840d0e to before ca978f8a93d4d36841839bf2847d29b88c2591d6Affected
LinuxLinux
  • 4.6Affected
  • before 4.6Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 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.