CVE-2024-56770 in Linux
Riassunto
di VulDB • 16/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
net/sched: netem: tenere conto degli aggiornamenti del backlog provenienti dal qdisc figlio
In generale, il valore 'qlen' di qualsiasi qdisc classful dovrebbe tracciare il numero di pacchetti detenuti dallo stesso qdisc e da tutti i suoi figli. Nel caso di netem, 'qlen' tiene traccia solo dei pacchetti presenti nel suo tfifo interno. Quando netem viene utilizzato con un qdisc figlio, quest'ultimo può utilizzare la funzione 'qdisc_tree_reduce_backlog' per informare il genitore (netem) riguardo agli SKB creati o scartati. Questa funzione aggiorna sia 'qlen' che le statistiche del backlog di netem; tuttavia, netem non tiene conto delle modifiche apportate da un qdisc figlio. Di conseguenza, 'qlen' indica il numero errato di pacchetti nel tfifo.
Se un qdisc figlio crea nuovi SKB durante l'inserimento (enqueue) e ne informa il genitore, il valore 'qlen' in netem viene aumentato. Quando netem estrae gli SKB appena creati dal figlio, il valore 'qlen' in netem non viene aggiornato. Se 'qlen' raggiunge il limite configurato sch->limit, la funzione di inserimento (enqueue) smette di funzionare correttamente, anche se il tfifo non è pieno.
Riproduzione del bug: Assicurarsi che la macchina mittente abbia GSO abilitato. Configurare netem come qdisc root e tbf come suo figlio sull'interfaccia in uscita della macchina nel seguente modo: $ tc qdisc add dev root handle 1: netem delay 100ms limit 100 $ tc qdisc add dev parent 1:0 tbf rate 50Mbit burst 1542 latency 50ms
Inviare traffico TCP in bulk attraverso questa interfaccia, ad esempio eseguendo un client iPerf3 sulla macchina. Controllare le statistiche del qdisc: $ tc -s qdisc show dev
Statistiche dopo 10 secondi di test TCP con iPerf3 prima della correzione (notare che il backlog di netem > limit; netem ha smesso di accettare pacchetti): qdisc netem 1: root refcnt 2 limit 1000 delay 100ms Sent 2767766 bytes 1848 pkt (dropped 652, overlimits 0 requeues 0) backlog 4294528236b 1155p requeues 0 qdisc tbf 10: parent 1:1 rate 50Mbit burst 1537b lat 50ms Sent 2767766 bytes 1848 pkt (dropped 327, overlimits 7601 requeues 0) backlog 0b 0p requeues 0
Statistiche dopo la correzione: qdisc netem 1: root refcnt 2 limit 1000 delay 100ms Sent 37766372 bytes 24974 pkt (dropped 9, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc tbf 10: parent 1:1 rate
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.