CVE-2026-99156 in Linuxinformazioni

Riassunto

di VulDB • 28/10/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

scsi: st: Correzione di una race condition use-after-free tra st_remove() e st_open()

st_remove() rilascia il riferimento probe su scsi_tape tramite kref_put() e solo successivamente rimuove l'indice da st_index_idr. Se questo era l'ultimo riferimento, scsi_tape_release() libera la struttura mentre essa è ancora pubblicata nell'idr.

scsi_tape_get(), chiamata da st_open(), cerca il nastro in st_index_idr ed acquisisce un riferimento sotto st_ref_mutex e st_index_lock. remove_cdevs() non attende le aperture che sono già passate attraverso chrdev_open(); pertanto, un'apertura bloccata su st_ref_mutex mentre st_remove() lo detiene può acquisire il mutex non appena st_remove() lo rilascia, trovare tpnt liberato nell'idr e chiamare kref_get() su di esso:

BUG: KASAN: slab-use-after-free in st_open Write of size 4 ... st_open (drivers/scsi/st.c:254 drivers/scsi/st.c:1291) chrdev_open ... Freed by task ...: kfree st_remove (drivers/scsi/st.c:4512)

Viene rimosso l'indice dall'idr prima di rilasciare il riferimento, tutto sotto st_ref_mutex. Una scsi_tape_get() concorrente ora o viene eseguita per prima e detiene un riferimento valido che mantiene attivo il nastro, oppure viene eseguita successivamente e non trova nulla, quindi st_open() fallisce con -ENXIO.

Questo ripristina l'ordinamento che aveva st_remove() prima della conversione a st_index_idr, in cui il nastro veniva rimosso da scsi_tapes[] prima dell'ultimo kref_put().

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsabile

Linux

Prenotare

25/09/2026

Divulgazione

28/10/2026

Moderazione

accettato

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Interested in the pricing of exploits?

See the underground prices here!