
Repositório educacional detalhando CVE-2026-46300 (Fragnesia), uma vulnerabilidade de escalada de privilégio local no kernel Linux. Fornece análise técnica, sistemas afetados, indicadores de detecção e etapas de remediação para equipes de defesa.
Repositório de conscientização apenas. Este repositório não contém código de exploração. Seu objetivo é informar administradores de sistemas, engenheiros e equipes de segurança sobre a natureza da vulnerabilidade e as medidas de remediação disponíveis.
| Campo | Valor |
|---|
| CVE | CVE-2026-46300 |
| Nome | Fragnesia |
| Severidade | Alta (CVSS 7.8) |
| Tipo | Local Privilege Escalation (LPE) |
| Componente | Linux Kernel — XFRM ESP-in-TCP subsystem |
| Descobridor | William Bowling (V12 Security / Zellic.io) |
| Divulgação | 14 de maio de 2026 |
| Patch upstream | 13 de maio de 2026 — [PATCH net] net: skbuff: preserve shared-frag marker during coalescing |
| PoC pública | ✅ Sim (publicado no dia da divulgação) |
| Exploração ITW | ❌ Nenhuma observada até o momento |
Fragnesia é a terceira vulnerabilidade de uma série descoberta no subsistema IPsec do kernel Linux em duas semanas:
Dirty Frag (CVE-2026-43284) ──► Copy Fail (CVE-2026-43500) ──► Fragnesia (CVE-2026-46300)
Maio 2026 Maio 2026 14 de maio de 2026
Ironicamente, o patch do Dirty Frag ativou latentemente a falha Fragnesia — a correção de CVE-2026-43284 introduziu um caminho de código expondo um bug pré-existente desde um commit datado de 2013.
"Fragnesia was accidentally activated by the patch fixing CVE-2026-43284."
— Hyunwoo Kim, descobridor do Dirty Frag
A falha reside na função skb_try_coalesce() do código socket-buffer do kernel. Ao mesclar fragmentos entre buffers, o marcador SKBFL_SHARED_FRAG não era propagado, fazendo o kernel perder o rastro de que um fragmento estava vinculado a páginas do page cache (ex.: um arquivo mapeado em memória via splice()).
1. O atacante abre um socket TCP
2. Ele splice() páginas de um arquivo somente leitura (ex. /usr/bin/su) na receive queue
3. O socket alterna para o modo espintcp (ULP)
4. O kernel trata as páginas do arquivo como texto criptografado ESP
5. A descriptografia AES-GCM in-place escreve octetos controlados no page cache
6. /usr/bin/su na memória é corrompido → execução de código root na próxima chamada
reboot restaura o estado)CAP_NET_ADMIN sem privilégios elevadossuTodos os kernels Linux publicados antes de 13 de maio de 2026 que incluem o mecanismo SKBFL_SHARED_FRAG.
As distribuições impactadas incluem:
| Distribuição | Status do patch |
|---|---|
| Ubuntu 22.04 / 24.04 | ✅ Corrigido |
| Debian 11 / 12 | ✅ Corrigido |
| AlmaLinux | ✅ Corrigido (antes do RHEL) |
| Red Hat / RHEL | ✅ Advisory publicado |
| SUSE / openSUSE | ✅ Advisory publicado |
| Amazon Linux | ✅ Advisory publicado |
| Fedora | ✅ Corrigido |
| Arch Linux | ✅ Corrigido |
| CentOS / Rocky Linux | ✅ Corrigido |
Atualizar para um kernel corrigido:
# Debian / Ubuntu
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo reboot
uname -r # Verificar a versão do novo kernel
# RHEL / AlmaLinux / Rocky Linux
sudo dnf clean metadata && sudo dnf upgrade -y
sudo reboot
# Arch Linux
sudo pacman -Syu
sudo reboot
Se uma atualização imediata não for possível:
# Descarregar os módulos ativos
sudo rmmod esp4 esp6 rxrpc 2>/dev/null; true
# Adicionar modules à lista negra permanentemente
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' \
| sudo tee /etc/modprobe.d/fragnesia.conf
# Regenerar initramfs (Debian/Ubuntu)
sudo update-initramfs -u
⚠️ A mesma lista negra de módulos usada para Dirty Frag também cobre Fragnesia.
# Verificar se os módulos vulneráveis estão carregados
lsmod | grep -E '^esp4|^esp6|^rxrpc'
# Se o comando retornar conteúdo → o sistema está exposto
# Verificar a versão do kernel atual
uname -r
cat /etc/os-release
AF_ALG via Seccomp/etc/passwd, /etc/sudoers, /etc/shadow, /usr/bin/susplice, add_key e unshare para usuários não privilegiadosSe uma exploração for suspeita antes da aplicação do patch:
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
⚠️ Isso limpa apenas a cópia na memória. Se um atacante já obteve direitos root e instalou uma backdoor, este comando não é suficiente — trate o sistema como totalmente comprometido.
As ferramentas de detecção devem monitorar:
/usr/bin/su, /usr/bin/sudo, /bin/bash na memóriasplice(), add_key(), unshare() por usuários não privilegiadosespintcp em sockets de usuários não privilegiados🔎 As ferramentas de segurança baseadas apenas na análise de arquivos de disco não podem detectar esta exploração, pois o binário no disco permanece intacto.
Este repositório é publicado com o objetivo exclusivamente educacional e defensivo. Não contém código de exploração (PoC).
Qualquer uso das informações presentes neste repositório para fins maliciosos ou sem autorização explícita em sistemas de terceiros é ilegal e contrário à ética. O autor se isenta de qualquer responsabilidade quanto ao uso indevido dessas informações.
Responsible Disclosure — Se você descobrir uma vulnerabilidade, siga as práticas de divulgação responsável e entre em contato com as equipes de segurança relevantes antes de qualquer publicação.
Maxime288 — github.com/Maxime288
Repositório de monitoramento de segurança — Acompanhamento de vulnerabilidades críticas do Linux