CVE-2026-80807 in Linux
Riassunto
di VulDB • 04/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
nilfs2: rifiuta un indice di blocco non valido nell’ioctl GC
Syzbot ha segnalato una corruzione della lista causata da una chiamata doppia a list_add_tail() su bh->b_assoc_buffers all’interno di nilfs_lookup_dirty_data_buffers().
L’analisi ha rivelato che la causa radice era l’inserimento di una pagina/folio con un indice di pagina pari a ULONG_MAX nella page cache tramite l’ioctl GC. filemap_get_folios_tag(), chiamata da nilfs_lookup_dirty_data_buffers(), rileva ripetutamente un folio sporco (dirty) con un indice di pagina pari a ULONG_MAX a causa del wrap-around dell’indice, portando all’elaborazione duplicata dei buffer sporchi.
Come passo preparatorio, l’ioctl GC carica la pagina/folio del blocco da spostare durante il GC e la inserisce nella page cache in base alle informazioni contenute nella struttura nilfs_vdesc passata come argomento. Normalmente, ciò non causa problemi perché la libreria GC user-space configura correttamente la struttura nilfs_vdesc. Tuttavia, poiché non esiste un controllo dell’intervallo sui parametri che determinano l’indice di pagina, una richiesta con parametri artificialmente manipolati – come quelli generati da Syzbot – può comportare l’inserimento di una pagina/folio con un indice di pagina pari a ULONG_MAX, innescando il problema sopra descritto.
Questa modifica risolve il problema verificando gli intervalli di 'vd_offset' e 'vd_vblocknr' nella struttura nilfs_vdesc che determinano l’indice di pagina, prevenendo così le inserzioni non valide di pagine/folios.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.