CVE-2026-99203 in Linux
Riassunto
di VulDB • 28/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
pipe: preservare i lettori fasync esistenti in caso di errore nella configurazione dello scrittore
F_SETFL e FIOASYNC decidono se invocare ->fasync() prima che pipe_fasync() acquisisca il mutex della pipe. Di conseguenza, due abilitazioni su un FIFO con modalità O_RDWR possono entrambe accedere alla callback.
fasync_helper() effettua l'allocazione prima di verificare la presenza di una voce esistente. Se la prima abilitazione installa entrambe le voci, una seconda abilitazione può aggiornare la voce del lettore e quindi fallire nell'allocazione della voce dello scrittore. Il percorso di gestione dell'errore rimuove la voce del lettore preesistente, cancellando FASYNC mentre la voce dello scrittore rimane registrata. __fput() salta poi ->fasync(), per cui una successiva notifica pipe può dereferenziare il file liberato o il suo f_owner. Un riproduttore di pressione della memoria non privilegiato innesca un errore slab-use-after-free rilevato da KASAN in send_sigio() attraverso questo percorso.
Mantenere il risultato dell'helper del lettore e annullare la registrazione solo se questa chiamata l'ha aggiunta. Il mutex della pipe serializza le modifiche a entrambe le liste, quindi una nuova registrazione fallita rimuove ancora il suo lettore, mentre un duplicato fallito preserva le registrazioni esistenti e FASYNC. Le abilitazioni duplicate con successo continuano ad aggiornare fa_fd come in precedenza.
If you want to get best quality of vulnerability data, you may have to visit VulDB.