
Analisi tecnica di CVE-2025-40271, una vulnerabilità critica di tipo Use-After-Free nel filesystem /proc del kernel Linux, inclusa la causa principale, i passi di riproduzione e i dettagli della patch.
🔴 CVE-2025-40271: Vulnerabilità Critica di Use-After-Free nel Kernel Linux
Il CVE-2025-40271 è una vulnerabilità critica di tipo Use-After-Free (UAF) che colpisce il filesystem /proc del kernel Linux. Il difetto risiede nella funzione proc_readdir_de(), incaricata di elencare i contenuti delle directory all'interno di /proc.
Quando una voce di directory (PDE) viene eliminata dall'albero binario (rbtree) tramite rb_erase(), il kernel non contrassegnava il nodo come vuoto. Ciò genera uno scenario pericoloso:
/proc/pid/net/dev_snmp6/) mentre un altro elimina interfacce di rete (come dispositivi tun), il puntatore può rimanere indirizzato a memoria già liberata.Il team di sviluppo del kernel ha implementato una patch critica che sostituisce la gestione del nodo con RB_CLEAR_NODE(). Ciò garantisce che:
NULL anziché un puntatore a memoria liberata.La patch è già disponibile sui seguenti rami stabili:
Per rivedere il codice esatto della patch, consulta questi commit:
"In the Linux kernel, the following vulnerability has been resolved: fs/proc: fix uaf in proc_readdir_de(). PDE is erased from subdir rbtree through
rb_erase(), but not set the node to EMPTY, which may result in UAF access. We should useRB_CLEAR_NODE()to set the erased node to EMPTY, thenpde_subdir_next()will returnNULLto avoid UAF access."
getdent per scorrere /proc/pid/net/dev_snmp6/ (il puntatore corrente è tun3).tun3 e tun2), rimuovendoli dall'albero.
tun3, poi tun2 (liberato nella slab).getdent, ma pde_subdir_next() restituisce tun2 (già liberato), causando UAF.| CWE-ID | Nome | Fonte |
|---|---|---|
| CWE-416 | Use After Free | NVD |
| URL | Descrizione |
|---|---|
| NVD - CVE-2025-40271 | Dettaglio ufficiale (ancora senza punteggio CVSS) |
| Kernel.org Commits | Codice sorgente delle patch |
⚠️ Raccomandazione Finale:
Se utilizzi kernel versioni 6.1.x, 6.6.x, 6.12.x o 6.13.x, aggiorna immediatamente a una versione patchata. Se non è possibile, considera l'applicazione manuale dei commit o la restrizione dell'accesso a /proc tramite policy di sicurezza (es. chroot, SELinux).
| Campo | Dettaglio |
|---|
| ID | CVE-2025-40271 |
| Componente | Kernel Linux (fs/proc) |
| Gravità | Alta (ancora non ufficialmente valutata da NVD/NIST) |
| Origine | Rilevato con stress-ng (casi getdent e tun simultanei) |
| Stato NVD | Non prioritario per arricchimento (risorse limitate) |