CVE Catalog

CVE-2026-99019

Low risk· EPSS 7%
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.18%

7th percentile - higher than 7% of all known CVEs

Summary

In the Linux kernel, the scsi: ch driver in ch_readconfig() takes a reference to the scsi_device of each data transfer element and never drops it. After a drive is removed, its scsi_device can never be released, blocking reuse of the address and preventing module unload. The fix drops the reference right after printing the name and removes the unused dt[] array.

Risk Assessment

Can lead to SCSI device reference leaks, preventing drive reattachment and module unloading without a reboot. Affects systems using tape changers with this driver.

Recommendation

Update the Linux kernel to a version with the scsi ch driver fix. For systems with tape libraries, plan the update and reboot accordingly.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: scsi: ch: Do not keep references to data transfer element devices ch_readconfig() looks up the scsi_device of every data transfer element whose SCSI id the changer reports in READ ELEMENT STATUS, and stores it in ch->dt[]. scsi_device_lookup() takes a reference, and nothing ever drops it: ch_destroy() frees the array with kfree(). ch->dt[] is read nowhere else - it only supplies the vendor, model and revision printed in the same loop. Once such a drive is removed, its scsi_device can never be released. It stays on the host's device list at its address, so a new device there is refused by anything that walks the list - target_core_pscsi reports "scsi_device_get() failed for H:C:T:L" - and the low-level driver's module can no longer be unloaded. Only a reboot recovers. It shows with any changer that reports its drives' ids; with the mhvtl virtual library (IBM 3573-TL personality), each create and remove of a library with four drives leaves four references behind, counted by the module's use count in lsmod. With ch not bound the count is unchanged, and with this patch applied it is unchanged too. Drop the reference as soon as the name has been printed, and remove the now unused dt[] array. That also removes the array leaked when ch_probe() fails after ch_readconfig(). The same leak was reported with an RFC patch in 2022, which was not merged.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS