
Analyse technique de CVE-2025-40271, une vulnérabilité critique de type Use-After-Free dans le système de fichiers /proc du noyau Linux, incluant la cause racine, les étapes de reproduction et les détails du correctif.
🔴 CVE-2025-40271 : Vulnérabilité Critique Use-After-Free dans le Noyau Linux
Le CVE-2025-40271 est une vulnérabilité critique de type Use-After-Free (UAF) qui affecte le système de fichiers /proc du noyau Linux. La faille réside dans la fonction proc_readdir_de(), chargée de lister le contenu des répertoires dans /proc.
Lorsqu'une entrée de répertoire (PDE) est supprimée de l'arbre binaire (rbtree) via rb_erase(), le noyau ne marquait pas le nœud comme vide. Cela génère un scénario dangereux :
/proc/pid/net/dev_snmp6/) pendant qu'un autre supprime des interfaces réseau (comme des périphériques tun), le pointeur peut rester pointant vers une mémoire déjà libérée.L'équipe de développement du noyau a implémenté un correctif critique qui remplace la gestion du nœud par RB_CLEAR_NODE(). Cela garantit que :
NULL au lieu d'un pointeur vers une mémoire libérée.Le correctif est déjà disponible dans les branches stables suivantes :
Pour consulter le code exact du correctif, reportez-vous à ces commits :
"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 pour parcourir /proc/pid/net/dev_snmp6/ (le pointeur actuel est tun3).tun3 et tun2), les supprimant de l'arbre.
tun3 est supprimé, puis tun2 (libéré vers le slab).getdent, mais pde_subdir_next() renvoie tun2 (déjà libéré) , provoquant un UAF.| CWE-ID | Nom | Source |
|---|---|---|
| CWE-416 | Use After Free | NVD |
| URL | Description |
|---|---|
| NVD - CVE-2025-40271 | Détail officiel (toujours sans score CVSS) |
| Kernel.org Commits | Code source des correctifs |
⚠️ Recommandation Finale :
Si vous utilisez les versions de noyau 6.1.x, 6.6.x, 6.12.x ou 6.13.x, mettez à jour immédiatement vers une version patchée. Si ce n'est pas possible, envisagez d'appliquer les commits manuellement ou de restreindre l'accès à /proc via des politiques de sécurité (ex. chroot, SELinux).
| Champ | Détail |
|---|
| ID | CVE-2025-40271 |
| Composant | Noyau Linux (fs/proc) |
| Sévérité | Élevée (bien que non encore officiellement notée par le NVD/NIST) |
| Origine | Détecté avec stress-ng (cas getdent et tun simultanés) |
| Statut NVD | Non prioritaire pour enrichissement (ressources limitées) |