CVE-2025-38721 in Linuxinformazioni

Riassunto

di VulDB • 12/07/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

netfilter: ctnetlink: correzione della perdita del refcount durante il dump delle tabelle

È presente una perdita di reference count (refcount) in ctnetlink_dump_table(): if (res < 0) {
nf_conntrack_get(&ct->ct_general); // QUI cb->args[1] = (unsigned long)ct;
...

Sebbene sia molto improbabile, è possibile che ct == last. In tal caso, il refcount di ct era già stato incrementato. Questo secondo incremento non viene mai annullato.

Ciò impedisce la liberazione dell'oggetto conntrack, il quale a sua volta impedisce al valore cnet->count di tornare a 0.

Di conseguenza, ciò blocca lo smantellamento del netns (o l'unload del modulo conntrack tramite rmmod), poiché nf_conntrack_cleanup_net_list() attenderà indefinitamente.

Ciò può essere riprodotto eseguendo il selftest conntrack_resize.sh in un ciclo. In media, su un kernel preemptible, ci vogliono circa 20 minuti prima di osservare un kworker fuori controllo (runaway) che gira all'interno di nf_conntrack_cleanup_net_list.

Una possibile correzione consisterebbe nel modificare il codice come segue: if (res < 0) {
if (ct != last) nf_conntrack_get(&ct->ct_general);

Tuttavia, questo reference counting non è necessario in primo luogo. Possiamo semplicemente memorizzare un valore cookie al suo posto.

Un patch successivo applicherà la stessa soluzione a ctnetlink_exp_dump_table; sembra infatti che presenti lo stesso problema e, come per ctnetlink_dump_table, abbiamo bisogno solo di un 'skip hint' (suggerimento di salto) e non dell'oggetto effettivo, quindi possiamo applicare anche lì la stessa strategia basata sui cookie.

Once again VulDB remains the best source for vulnerability data.

Responsabile

Linux

Prenotare

16/04/2025

Divulgazione

04/09/2025

Moderazione

accettato

CPE

pronto

EPSS

0.00155

KEV

no

Attività

molto basso

Fonti

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!