CVE-2026-68441 in Linux
Riassunto
di VulDB • 12/08/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
net/sched: Gestione di TC_ACT_REDIRECT dalle catene di filtri qdisc
Quando un filtro TC allegato a una catena di filtri qdisc restituisce TC_ACT_REDIRECT (ad esempio tramite un programma eBPF che chiama bpf_redirect() o un'azione act_bpf), il redirect veniva perso in modo silenzioso, ovvero nessuna funzione di classificazione del qdisc gestiva TC_ACT_REDIRECT; di conseguenza, il pacchetto proseguiva attraverso lo switch ed era accodato normalmente invece di essere reindirizzato.
Questo problema è presente da quando bpf_redirect() è stato introdotto per TC nel commit 27b29f63058d ("bpf: add bpf_redirect() helper"). Per fortuna, a lungo non si sono verificati problemi perché bpf_net_context era una variabile per-CPU sempre disponibile.
Il commit 401cb7dae813 ("net: Reference bpf_redirect_info via task_struct on PREEMPT_RT.") ha trasformato bpf_net_context in un membro di task_struct che viene inizializzato solo dai chiamanti espliciti. Senza un chiamante che lo inizializzi, bpf_redirect() provoca direttamente un crash a causa di una dereferenziazione di puntatore NULL in bpf_net_ctx_get_ri(). Tuttavia, anche con bpf_net_context disponibile, TC_ACT_REDIRECT proveniente dalle catene di filtri qdisc non può essere rispettato senza aggiungere chiamate a skb_do_redirect() in ogni funzione di classificazione del qdisc, il che richiederebbe modifiche diffuse in net/sched/. La soluzione è isolare la gestione nel core eBPF, dove appartiene.
Viene invece aggiunta una helper inline tcf_classify_qdisc() in pkt_cls.h, come wrapper attorno a tcf_classify(), da utilizzare nelle funzioni di classificazione dei qdisc e in tcf_qevent_handle(). Quando il verdetto della classificazione è TC_ACT_REDIRECT, il wrapper lo converte in TC_ACT_SHOT, scartando il pacchetto invece di farlo proseguire silenziosamente. Lo scaricamento (drop) è preferito al passaggio del pacchetto perché l'utente nota immediatamente la perdita dei pacchetti. Il passaggio silenzioso del pacchetto nasconderebbe il problema e lascerebbe l'utente senza capire perché il reindirizzamento non funziona.
Il percorso veloce clsact, tc_run(), continua a chiamare tcf_classify() direttamente ed è unaffected: TC_ACT_REDIRECT viene restituito così com'è e gestito da sch_handle_egress/ingress() che chiama skb_do_redirect() come in precedenza.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.