Falha de 19 anos concede root
Uma vulnerabilidade crítica de escalação de privilégios locais no kernel Linux, batizada de CIFSwitch e identificada como CVE-2026-46333, permite que qualquer usuário sem privilégios obtenha acesso root em múltiplas distribuições Linux. A falha existe no código desde 2007 e foi descoberta pelo pesquisador de segurança Asim Manizada, engenheiro de segurança da SpaceX, utilizando uma abordagem assistida por inteligência artificial baseada em grafos semânticos. O proof-of-concept funcional já foi publicado no GitHub.
Como o ataque funciona
O CIFSwitch explora uma falha de validação na interação entre o subsistema CIFS do kernel Linux e o pacote userspace cifs-utils (versão 6.14 e superiores). O CIFS (Common Internet File System) é o protocolo usado pelo Linux para montar e acessar compartilhamentos de rede do tipo Windows/SMB.
Quando um compartilhamento CIFS usa autenticação Kerberos, o kernel solicita uma chave do tipo cifs.spnego por meio do subsistema keyring do Linux. Isso dispara o helper cifs.upcall, que executa com privilégios de root para obter o material de autenticação Kerberos/SPNEGO.
O problema central é que o kernel nunca verificava se a requisição cifs.spnego realmente originava-se do cliente CIFS. Um usuário sem privilégios pode chamar diretamente request_key("cifs.spnego", ...) com uma descrição forjada. O helper cifs.upcall, rodando como root, processa essa requisição confiando cegamente nos campos controlados pelo atacante.
A cadeia de exploração segue estes passos:
- Atacante chama
request_key("cifs.spnego", ...)com descrição forjada, definindoupcall_target=appe um PID controlado - O helper
cifs.upcallroot alterna para o namespace do processo malicioso - Dentro desse namespace, o atacante planta um
nsswitch.conffraudulento e uma bibliotecalibnss_*.so.2maliciosa - O helper root executa a lookup NSS, carrega e executa o código arbitrário do atacante
- O payload malicioso grava uma entrada em
/etc/sudoers.d, concedendo acesso root permanente
Distribuições afetadas pela falha
A exploração exige uma combinação específica: kernel vulnerável, cifs-utils compatível, suporte a user namespaces e políticas SELinux/AppArmor que não bloqueiem o caminho de ataque. Diversas distribuições são vulneráveis em sua configuração padrão:
- Linux Mint 21.3 e 22.3
- CentOS Stream 9
- Rocky Linux 9 e AlmaLinux 9
- Kali Linux 2021.4 a 2026.1
- SLES 15 SP7
Distribuições como Ubuntu, Debian, Pop!_OS, openSUSE, Oracle Linux e Amazon Linux tornam-se vulneráveis se o pacote cifs-utils estiver instalado. Já Ubuntu 26.04, Fedora 40-44, CentOS Stream 10, Rocky Linux 10, SLES 16, AlmaLinux 10 e openSUSE Leap 16 possuem configurações padrão de SELinux/AppArmor que impedem a exploração.
Correção e mitigações urgentes
O patch upstream no kernel Linux adiciona um hook vet_description para o tipo de chave cifs.spnego, garantindo que descrições só sejam aceitas quando a requisição é feita sob o contexto interno spnego_cred do cliente CIFS. Isso bloqueia qualquer tentativa de falsificação a partir do userspace não privilegiado.
Enquanto a correção não é aplicada, administradores devem adotar as seguintes mitigações:
- Atualizar o kernel para versões que incorporem o patch de validação de origem das requisições cifs.spnego
- Bloquear o módulo CIFS do kernel se compartilhamentos SMB/CIFS não forem necessários
- Desabilitar user namespaces não privilegiados (
sysctl kernel.unprivileged_userns_clone=0) - Revisar as regras request-key em
/etc/request-key.d/e sobrescrever configurações que disparem cifs.upcall - Remover o cifs-utils de servidores que não utilizam montagens CIFS/Kerberos
O CIFSwitch demonstra como falhas lógicas sutis em interações entre kernel e userspace podem permanecer invisíveis por quase duas décadas — e como abordagens assistidas por IA podem identificar bugs que auditorias manuais não encontraram.