Description
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.
Published: 2026-10-23
Score: 2.3 Low
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via unreleased scsi_device references
Action: Update Kernel
AI Analysis

Impact

A flaw in the Linux kernel SCSI changer subsystem causes an unreleased reference to a scsi_device to persist after a drive is removed. The ch_readconfig() routine stores a scsi_device lookup result for each element reported in the READ ELEMENT STATUS command but never drops the reference. The stale reference remains in the host device list, preventing new devices from being added and blocking the driver from unloading. Repeated add/remove cycles leave more references, increasing the module’s use count until it can no longer be unloaded. The problem can be triggered by any SCSI changer that reports element IDs and requires privileged access to manipulate the changer. It results only in local denial of service; a reboot restores functionality.

Affected Systems

All Linux kernel versions that include the SCSI changer subsystem and support element status reporting are potentially affected. The issue was reproduced with an IBM 3573‑TL mhvtl virtual library, but any changer reporting drive IDs can trigger the leak. No specific version constraints are listed, so all kernels with this functionality are at risk.

Risk and Exploitability

The CVSS score is 2.3 and the EPSS score is less than 1%, indicating a low but nonzero exploitation probability. The vulnerability is not listed in the CISA KEV catalog. Attackers must have privileged access to removal and insertion of drives on the changer; once the reference leak is triggered, the system’s ability to unload the low-level driver is permanently impaired until a reboot. The impact is local, affecting only the host’s ability to manage the device, but repeated exploitation can lead to a subtle denial of service for device operations.

Generated by OpenCVE AI on October 29, 2026 at 19:45 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the kernel to a release that includes the CVE‑2026‑99019 fix, which removes the reference leak and restores normal driver unload behaviour.
  • If a kernel upgrade cannot be applied immediately, avoid frequent removal and re‑addition of drives on affected changers to limit reference accumulation.
  • Reboot the host whenever new drives cannot be added or when the driver’s use count rises; a reboot clears the leaked references and restores functionality.

Generated by OpenCVE AI on October 29, 2026 at 19:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-9018-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9018-2 Linux kernel (HWE) vulnerabilities
Ubuntu USN Ubuntu USN USN-9019-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9020-1 Linux kernel vulnerabilities
History

Fri, 30 Oct 2026 13:00:00 +0000


Thu, 29 Oct 2026 15:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-400
CWE-401

Thu, 29 Oct 2026 12:15:00 +0000

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

None

cvssV3_1

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

threat_severity

Low


Fri, 23 Oct 2026 20:30:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Fri, 23 Oct 2026 17:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-400
CWE-401

Fri, 23 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
Description 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.
Title scsi: ch: Do not keep references to data transfer element devices
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 Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-30T12:40:58.753Z

Reserved: 2026-09-25T10:25:14.386Z

Link: CVE-2026-99019

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-23T13:17:24.770

Modified: 2026-10-30T13:21:37.843

Link: CVE-2026-99019

cve-icon Redhat

Severity : Low

Publid Date: 2026-10-23T12:20:55Z

Links: CVE-2026-99019 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T20:00:29Z

Weaknesses
  • CWE-911

    Improper Update of Reference Count