CVE-2024-46701 in Linuxinformazioni

Riassunto

di VulDB • 08/09/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

libfs: correzione delle letture infinite di directory per le directory con offset (offset dir)

Dopo aver modificato le operazioni sulle directory tmpfs da simple_dir_operations a simple_offset_dir_operations, ogni operazione di rename riempie il nuovo dentry nell'albero maple della directory di destinazione (&SHMEM_I(inode)->dir_offsets->mt) con una chiave libera che inizia con octx->newx_offset, e imposta successivamente newx_offset uguale alla chiave libera + 1. Ciò provoca letture infinite del contenuto delle directory (readdir) combinate con operazioni di rename eseguite contemporaneamente, causando il fallimento del test generic/736 in xfstests (i dettagli sono riportati di seguito).

1. creare 5000 file (1, 2, 3...) all'interno di una singola directory 2. chiamare readdir (man 3 readdir) una volta e ottenere un entry 3. eseguire rename(entry, "TEMPFILE"), quindi rename("TEMPFILE", entry) 4. ripetere i passaggi da 2 a 3 finché readdir non restituisce nulla o si supera il numero massimo di iterazioni consentite (tmpfs interrompe il test in base alla seconda condizione)

Abbiamo adottato la stessa logica utilizzata nel commit 9b378f6ad48cf ("btrfs: fix infinite directory reads") per risolvere il problema: registrare l'ultimo indice (last_index) quando si apre la directory ed evitare di restituire gli entry con index >= last_index. I dati privati del file (file->private_data), attualmente utilizzati nelle directory con offset, possono essere impiegati direttamente a tale scopo; inoltre, aggiorniamo anche last_index durante le operazioni llseek sul file della directory.

[brauner: si aggiorna last_index solo dopo seek quando l'offset è zero, come suggerito da Jan]

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsabile

Linux

Prenotare

11/09/2024

Divulgazione

13/09/2024

Moderazione

accettato

CPE

pronto

EPSS

0.00189

KEV

no

Attività

molto basso

Fonti

Do you know our Splunk app?

Download it now for free!