
Análise técnica da CVE-2025-40271, uma vulnerabilidade crítica de Use-After-Free no sistema de arquivos /proc do kernel Linux, incluindo causa raiz, passos de reprodução e detalhes do patch.
🔴 CVE-2025-40271: Vulnerabilidade Crítica de Use-After-Free no Kernel do Linux
O CVE-2025-40271 é uma vulnerabilidade crítica do tipo Use-After-Free (UAF) que afeta o sistema de arquivos /proc do kernel do Linux. A falha reside na função proc_readdir_de(), responsável por listar os conteúdos dos diretórios dentro de /proc.
Quando uma entrada de diretório (PDE) é eliminada da árvore binária (rbtree) através de rb_erase(), o kernel não marcava o nó como vazio. Isso gera um cenário perigoso:
/proc/pid/net/dev_snmp6/) enquanto outro elimina interfaces de rede (como dispositivos tun), o ponteiro pode ficar apontando para memória já liberada.A equipe de desenvolvimento do kernel implementou um patch crítico que substitui o manuseio do nó por RB_CLEAR_NODE(). Isso garante que:
NULL em vez de um ponteiro para memória liberada.O patch já está disponível nas seguintes ramificações estáveis:
Para revisar o código exato do patch, consulte estes 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 para percorrer /proc/pid/net/dev_snmp6/ (o ponteiro atual é tun3).tun3 e tun2), eliminando-os da árvore.
tun3, depois tun2 (liberado para a slab).getdent, mas pde_subdir_next() retorna tun2 (já liberado), causando UAF.| CWE-ID | Nome | Fonte |
|---|---|---|
| CWE-416 | Use After Free | NVD |
| URL | Descrição |
|---|---|
| NVD - CVE-2025-40271 | Detalhe oficial (ainda sem pontuação CVSS) |
| Kernel.org Commits | Código fonte dos patches |
⚠️ Recomendação Final:
Se você utiliza versões do kernel 6.1.x, 6.6.x, 6.12.x ou 6.13.x, atualize imediatamente para uma versão patchada. Se não for possível, considere aplicar os commits manualmente ou restringir o acesso a /proc através de políticas de segurança (ex.: chroot, SELinux).
| Campo | Detalhe |
|---|
| ID | CVE-2025-40271 |
| Componente | Kernel do Linux (fs/proc) |
| Severidade | Alta (embora ainda não classificada oficialmente pelo NVD/NIST) |
| Origem | Detectado com stress-ng (casos getdent e tun simultâneos) |
| Status NVD | Não priorizado para enriquecimento (recursos limitados) |