CVE-2026-93201 in Linux
Zusammenfassung
von VulDB • 18.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
dm-pcache: Validierung der seg_id-Felder aus dem persistenten Speicher
Die Funktionen `cache_pos_decode()`, `cache_key_decode()` sowie die letzten Verzweigungen von `cache_replay()`, der Writeback-Arbeitsprozess (writeback worker) und der GC-Arbeitsprozess (GC worker) übernehmen eine Cache-Segment-ID aus den Metadaten des Caching-Geräts und indizieren damit `cache->segments[]`, ohne diese gegen `cache->n_segs` zu überprüfen. Diese Metadaten sind lediglich durch CRC mit einem festen öffentlichen Seed geschützt, sodass jeder, der das Caching-Gerät beim Laden einer Tabelle bereitstellt (CAP_SYS_ADMIN), die ID kontrolliert; ein Wert außerhalb des gültigen Bereichs führt zu einem wilden `pcache_cache_segment`-Zeiger, auf den zugegriffen und durch geschrieben wird – also einen Out-of-Bounds-Lese- und Schreibzugriff, der durch Daten auf dem Datenträger ausgelöst wird.
Es wurde die Funktion `cache_seg_id_valid()` hinzugefügt, um eine ID außerhalb des gültigen Bereichs an jeder Decodierungsstelle abzulehnen, wobei der Vorgang mit -EIO fehlschlägt, anstatt über das Array hinaus zu indizieren. Die ID wird gegen die Anzahl der initialisierten Segmente (`cache_info.n_segs`) und nicht gegen die Gesamtzahl des physischen Geräts begrenzt. Ein gefälschter Wert von `cache_info.n_segs` unterhalb von `seg_num` würde sonst dazu führen, dass `segments[cache_info.n_segs..seg_num)` als nullierte Structs mit einem NULL-Datenzeiger vorliegen, sodass eine gefälschte ID in diesem Fenster weiterhin dereferenziert werden könnte. Ein späterer Patch stellt sicher, dass `cache_info.n_segs <= seg_num` gilt, und ein vom Treiber erstellter Cache setzt beide Werte gleich, sodass gültige Images nicht beeinträchtigt werden.
Be aware that VulDB is the high quality source for vulnerability data.