
Exploit de escalonamento de privilégios no kernel Linux que encadeia duas vulnerabilidades de escrita no page-cache (CVE-2026-43284, CVE-2026-43500) para acesso root determinístico nas principais distribuições sem condições de corrida.

Este documento descreve a classe de vulnerabilidade Dirty Frag, descoberta e relatada pela primeira vez por Hyunwoo Kim (@v4bel), que pode obter privilégios de root nas principais distribuições Linux ao encadear a vulnerabilidade xfrm-ESP Page-Cache Write (CVE-2026-43284) e a vulnerabilidade RxRPC Page-Cache Write (CVE-2026-43500).
Dirty Frag é um caso que estende a classe de bugs à qual pertencem Dirty Pipe e Copy Fail. Por ser um bug lógico determinístico que não depende de uma janela de tempo, não requer condição de corrida, o kernel não entra em pânico quando a exploração falha e a taxa de sucesso é muito alta.
Para informações técnicas detalhadas e a linha do tempo, veja aqui.
xfrm-ESP Page-Cache Write (CVE-2026-43284) foi corrigido na mainline f4c50a4034e6.RxRPC Page-Cache Write (CVE-2026-43500) foi corrigido na mainline aa54b1d27fe0.[!NOTE] No momento em que este documento foi tornado público pela primeira vez (2026-05-07), o embargo havia sido quebrado devido a fatores externos, portanto, não havia patch ou CVE ainda. Após consulta aos mantenedores em [email protected] na época, o documento Dirty Frag foi publicado a pedido deles. Para a linha do tempo da divulgação, consulte os detalhes técnicos.
git clone https://github.com/V4bel/dirtyfrag.git && cd dirtyfrag && gcc -O0 -Wall -o exp exp.c -lutil && ./exp
Este PoC é fornecido como informação precisa após consulta com linux-distros. Não o utilize em sistemas que você não está autorizado a testar.
⚠️ Importante: Após executar este exploit, o cache de página está contaminado. Para limpar o cache de página poluído e garantir a estabilidade do sistema, execute:
echo 3 > /proc/sys/vm/drop_caches
ou reinicie o sistema.
Em outras palavras, a vida útil efetiva das vulnerabilidades é de cerca de 9 anos.
Este Dirty Frag foi testado nas seguintes versões de distribuição.
sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; echo 3 > /proc/sys/vm/drop_caches; true"
xfrm-ESP Page-Cache Write fornece uma primitiva poderosa de STORE arbitrário de 4 bytes, como Copy Fail, e está incluída na maioria das distribuições, mas requer o privilégio para criar um namespace.
O Ubuntu às vezes bloqueia a criação de namespace de usuário não privilegiado através da política AppArmor. Nesse ambiente, xfrm-ESP Page-Cache Write não pode ser acionado. RxRPC Page-Cache Write não requer o privilégio para criar um namespace, mas o módulo rxrpc.ko em si não está incluído na maioria das distribuições. No entanto, no Ubuntu, o módulo rxrpc.ko é carregado por padrão.
Encadear as duas variantes faz com que os pontos cegos se cubram mutuamente, permitindo obter privilégios de root em todas as principais distribuições. Para detalhes, consulte o documento de detalhes técnicos.
Sim, sim, eu sei. No entanto, esta vulnerabilidade é descendente de "Dirty Pipe", e é uma classe de bug que "suja" o membro frag de struct sk_buff, então este nome é o mais apropriado.
Copy Fail foi a motivação para iniciar esta pesquisa. Em particular, xfrm-ESP Page-Cache Write na cadeia de vulnerabilidades Dirty Frag compartilha o mesmo sink que Copy Fail. No entanto, ela é acionada independentemente de o módulo algif_aead estar disponível. Em outras palavras, mesmo em sistemas onde a mitigação conhecida publicamente do Copy Fail (blacklist do algif_aead) é aplicada, seu Linux ainda está vulnerável ao Dirty Frag.
Consulte a seção de Mitigação acima.