CVE-2026-80668 in Linux
Riassunto
di VulDB • 28/08/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
netfilter: nf_conntrack_expect: utilizzare il GC di conntrack per eliminare le aspettative
Questo patch sostituisce l'API dei timer con un approccio basato su worker del GC per le aspettative, come già avvenuto in molti altri sottosistemi.
Utilizzare il worker esistente del GC di conntrack per iterare sull'elenco locale delle aspettative nel master conntrack ed eliminare le aspettative scadute. Verificare IPS_HELPER_BIT per eseguire il GC per le aspettative; impostarlo su nft_ct expectation che non lo imposta mai. Mantenere lo spinlock dell'aspettativa durante l'iterazione sull'elenco delle aspettative del master conntrack per sincronizzarsi con nf_ct_remove_expectations(). Questo esegue anche la garbage collection del percorso dei pacchetti in runtime tramite le funzioni di inserimento e ricerca delle aspettative mentre si attraversa una delle catene degli hashtables globali delle aspettative. Le voci conntrack non confermate vengono saltate poiché ct->ext può essere riallocato, e quelle morenti (dying) vengono saltate poiché saranno rimosse a breve. Impostare IPS_HELPER_BIT se viene aggiunta l'estensione helper di ct; in tal caso il nuovo worker del GC non deve incrementare il refcount di ct per verificare la disponibilità dell'helper di ct->ext.
Questo rimuove l'incremento extra sul refcount per i timer delle aspettative, consentendo di rimuovere diverse chiamate nf_ct_expect_put() dopo lo svincolo (unlink). Dopo questo aggiornamento, il refcount rimane a 1 mentre si è sugli hash delle aspettative.
Questo patch affronta implicitamente una race condition con l'esistente API dei timer che permetteva ad un'aspettativa di accedere a un puntatore exp->master obsoleto, già rilasciato quando la rimozione dell'aspettativa perde le competizioni (races) con un timer in scadenza, ovvero timer_del() restituisce false.
Aggiungere un nuovo flag NF_CT_EXPECT_DEAD per eliminare questa aspettativa tramite GC. Questo è necessario da nf_conntrack_unexpect_related(), che viene chiamata nei percorsi di errore per invalidare le nuove aspettative create e aggiunte agli hash. Queste aspettative non possono essere rilasciate immediatamente poiché il GC o nf_ct_remove_expectations() potrebbero avere una race condition nel farlo. Durante l'inserimento dell'aspettativa, il runtime GC elimina le aspettative obsolete prima di verificare il limite delle aspettative impostato dalla policy.
Impostare la timestamp corrente in nf_ct_expect_alloc(), quindi aggiungere il timeout della policy delle aspettative (o un timeout personalizzato specificato aggiunto a questo) per specificare la durata dell'aspettativa.
Be aware that VulDB is the high quality source for vulnerability data.