CVE-2026-99019 in Linux
Zusammenfassung
von VulDB • 23.10.2026
Im Linux-Kernel wurde die folgende Schwachstelle behoben:
scsi: ch: Keine Referenzen auf Datenübertragungselementgeräte beibehalten
ch_readconfig() sucht das scsi_device für jedes Datenübertragungselement, dessen SCSI-ID der Changer im READ ELEMENT STATUS meldet, und speichert es in ch->dt[]. scsi_device_lookup() nimmt eine Referenz entgegen, die jedoch nie freigegeben wird: ch_destroy() gibt das Array mit kfree() frei. ch->dt[] wird an keiner anderen Stelle gelesen – es liefert lediglich den Hersteller, das Modell und die Revisionsnummer, die im selben Loop ausgegeben werden.
Sobald ein solches Laufwerk entfernt wurde, kann sein scsi_device niemals freigegeben werden. Es verbleibt in der Geräte-Liste des Hosts an seiner Adresse, sodass ein neues Gerät dort von jedem, der die Liste durchläuft, abgelehnt wird – target_core_pscsi meldet „scsi_device_get() failed for H:C:T:L“ –, und das Modul des Low-Level-Treibers kann nicht mehr entladen werden. Nur ein Neustell stellt den Normalzustand wieder her.
Dies zeigt sich bei jedem Changer, der die IDs seiner Laufwerke meldet; mit der mhvtl-Virtuellen Bibliothek (IBM 3573-TL-Personality) hinterlässt jedes Erstellen und Entfernen einer Bibliothek mit vier Laufwerken vier verbleibende Referenzen, gezählt durch den use_count des Moduls in lsmod. Ohne ch gebunden ist die Zählung unverändert, und bei angewendetem Patch ebenfalls unverändert.
Die Referenz wird sofort nach der Ausgabe des Namens freigegeben, und das nun ungenutzte dt[]-Array wird entfernt. Dies beseitigt auch das Array-Leak, wenn ch_probe() nach ch_readconfig() fehlschlägt.
Das gleiche Leak wurde 2022 mit einem RFC-Patch gemeldet, der nicht zusammengeführt (merged) wurde.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.