Vol. 2 | N. 5 | Pp. 129–132 | 2026 | ISSN xxxx-xxxx
Fragnesia permite escalonamento local de privilégios universal no Kernel Linux (CVE-2026-46300)
Estamos cientes de uma PoC denominada “Fragnesia”, que se trata de um exploit de escalonamento local de privilégios (Local Privilege Escalation ou LPE) universal para kernels Linux, rastreado como CVE-2026-46300 (CVSS: 7.8). Foi divulgado publicamente em 13/05/2026, simultaneamente ao envio do patch corretivo para a lista netdev do kernel.
Contexto e Origem
A Fragnesia é o terceiro LPE crítico no kernel Linux em menos de três semanas, após Copy Fail (CVE-2026-31431, aproximadamente em 29/04) e Dirty Frag (CVE-2026-43284 / CVE-2026-43500, aproximadamente em 07 a 08/05). Embora pertença à mesma família de vulnerabilidades do Dirty Frag, trata-se de um bug distinto (ambas abusam do subsistema XFRM ESP-in-TCP para corromper o page cache) . Os três CVEs estão relacionados: Copy Fail (CVE-2026-31431) foi uma vulnerabilidade anterior, e Dirty Frag (CVE-2026-43284 + CVE-2026-43500) é uma evolução que encadeia dois bugs distintos no kernel Linux para escalonamento local de privilégios determinístico.
Notavelmente, a Fragnesia foi ativada acidentalmente pelo próprio patch do Dirty Frag: a correção anterior estreitou uma superfície de ataque, mas deixou um caminho adjacente aberto. O patch candidato à Fragnesia carrega duas tags Fixes: uma apontando para o commit do Dirty Frag (f4c50a4034e6) e outra para um commit de 2013 (cef401de7be8), indicando que o bug de coalescing subjacente existe há mais de uma década.
| Vulnerabilidade | CVE | Divulgação |
|---|---|---|
| Copy Fail | CVE-2026-31431 | ~29/04/2026 |
| Dirty Frag | CVE-2026-43284 / CVE-2026-43500 | ~07 a 08/05/2026 |
| Fragnesia | CVE-2026-46300 | 13/05/2026 |
Como a vulnerabilidade é explorada
Um usuário local sem privilégios explora uma falha no modo como o kernel Linux gerencia páginas de memória durante operações de rede IPsec. Usando recursos padrão do sistema, o atacante consegue fazer o kernel tratar o conteúdo de um arquivo somente-leitura (como, por exemplo /usr/bin/su ) como se fosse dados criptografados a serem processados, substituindo partes do arquivo na memória por código malicioso. Como o atacante controla a chave criptográfica usada nesse processo, ele calcula exatamente quais valores inserir para obter o resultado desejado. O arquivo em disco não é alterado, mas quando o sistema executa o binário adulterado na memória, o atacante obtém acesso root. O processo é determinístico — não depende de sorte ou de explorar janelas de tempo — o que o torna especialmente confiável e perigoso.
Versões Afetadas
Todos os kernels afetados pelo Dirty Frag (CVE-2026-43284) são igualmente vulneráveis à Fragnesia. A janela efetiva vai de aproximadamente entre 07 a 08/05/2026 (data do patch do Dirty Frag) até 13/05/2026 (data do patch da Fragnesia).
AppArmor) bloqueiam parcialmente o PoC público, exigindo técnicas adicionais para a exploração.Referência do patch upstream: https://lore.kernel.org/netdev/20260513041635.1289541-1-vakzz@zellic.io/
Status de Exploração
Até o momento dessa escrita, não há evidências de exploração ativa em larfga escala (confirmado por Microsoft e Tenable). O PoC público foi lançado imediatamente após a divulgação, sem embargo, e está disponível no repositório GitHub da equipe V12.
Mitigações
1. Mitigação imediata (idêntica à do Dirty Frag)
Descarregue os módulos vulneráveis:
% sudo rmmod esp4 esp6 rxrpc
Bloqueie o carregamento permanente adicionando ao /etc/modprobe.d/dirtyfrag.conf:
# install esp4 /bin/false
# install esp6 /bin/false
# install rxrpc /bin/false
Atenção: Desabilitar esp4/esp6 interrompe túneis IPsec (strongSwan/Libreswan). Não aplique em hosts que terminam ou transitam tráfego IPsec. O módulo rxrpc é usado quase exclusivamente por clientes AFS e raramente presente em servidores típicos.
2. Limpeza do page cache (se o sistema pode ter sido alvo antes da mitigação)
% sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
Isso força o reload dos binários do disco, eliminando qualquer modificação in-memory que possa ter ocorrido antes da aplicação da mitigação.
3. Correção definitiva: atualização do kernel
Atualize o kernel com o patch corretivo. Status por distribuição:
| Distribuição | Status |
|---|---|
| AlmaLinux | Patch disponível OK |
| CloudLinux | Patch disponível OK |
| openSUSE | Patch disponível OK |
| RHEL / CentOS Stream | Em avaliação pela Red Hat |
| Ubuntu | Verificar canais de atualização |
Soluções de live patching (ex.: KernelCare) também estão sendo preparadas para aplicação sem necessidade de reboot.
Apêndice Técnico
Você pode ignorar essa seção, caso não queira ver os detalhes debaixo do capô do motor 🙂
1. Descrição Técnica
A vulnerabilidade explora um bug lógico no subsistema XFRM ESP-in-TCP do kernel Linux, permitindo escrita arbitrária de bytes no page cache de arquivos somente-leitura, sem necessidade de condição de corrida.
A causa raiz reside na função skb_try_coalesce(): ao transferir fragmentos paginados entre buffers (sk_buff), ela deixava de propagar o marcador SKBFL_SHARED_FRAG. Com isso, o kernel perdia o rastreamento de que aquele fragmento era respaldado por páginas do page cache (obtidas, por exemplo, via splice de um arquivo). O caminho de recepção ESP-in-TCP do XFRM, ao verificar skb_has_shared_frag(), concluía equivocadamente que era seguro ignorar o skb_cow_data() (copy-on-write), realizando a descriptografia AES-GCM in-place diretamente sobre as páginas em cache — que pertencem ao arquivo original somente-leitura.
A técnica estende a mesma classe de bugs de page cache do Dirty Frag: ao transitar um socket TCP para modo espintcp após o splice de dados de um arquivo para a fila de recepção, o kernel processa as páginas como ciphertext ESP, XORando bytes do keystream AES-GCM diretamente nas páginas em cache.
2. Funcionamento do Exploit
(Fonte: TuxCare — Fragnesia Technical Analysis)
O PoC constrói uma tabela de lookup de 256 entradas para mapear bytes de keystream a nonces, iterando sobre um payload para modificar bytes específicos via splice/ULP. O fluxo de execução é:
- Cria novos namespaces de usuário e rede via
unshare(CLONE_NEWUSER | CLONE_NEWNET), obtendoCAP_NET_ADMINdentro do namespace isolado — sem privilégios no host. - Instala uma Security Association ESP-in-TCP via
NETLINK_XFRMcom AES-128-GCM e chave conhecida. - Escreve um stub ELF position-independent (
setresuid/setresgid/execve /bin/sh) nos primeiros 192 bytes de/usr/bin/suno page cache. - Executa
execve("/usr/bin/su"), obtendo shell root.
As alterações não persistem em disco: o binário original é intacto. Um reboot ou flush do page cache restaura o estado normal. Importante: o exploit não está limitado ao /usr/bin/su — qualquer arquivo legível pelo atacante é alvo em potencial, incluindo /etc/passwd.
Referências
Tags: Alerta, CVE, Cybersecurity, Kernel, Linux, Linux Kernel, Vulnerabilidades.
Categorias: Alerta, CentOS, CVE, Debian, Falhas, Kernel, Linux, Linux Kernel, LPE, LTE, OpenSUSE, Red Hat, Ubuntu, Vulnerabilidade.