In the Linux kernel, the following vulnerability has been resolved:
scsi: xen: scsiback: Free unsubmitted command instead of double-putting it
scsibackgetpendreq() obtains a command tag and returns a vscsibkpend whose embedded secmd has only been memset to 0, so its cmdkref is 0; the secmd is initialised (krefinit() via targetinitcmd()) only later, in scsibackcmdexec(), on the successful VSCSIIFACTSCSICDB path. The two error paths in scsibackdocmdfn() taken before the command is submitted -- a failed scsibackgnttabdatamap() and an unknown ringreq.act -- call transportgenericfreecmd(&pendingreq->secmd, 0), which krefput()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 paniconwarn the refcount underflow panics the host.
Add a helper that just returns the tag with targetfreetag() 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.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72085.json",
"cna_assigner": "Linux"
}