Resumo: uma falha no kernel Linux (CVE-2026-46331), batizada de pedit COW, permite que um usuário local sem privilégios obtenha acesso root sem tocar em nada no disco. O exploit envenena cópias em cache de binários setuid (como /bin/su), injeta um payload e dispara um shell root — enquanto verificações de integridade de arquivo continuam dizendo que está tudo bem. Há prova de conceito pública desde 17 de junho de 2026, um dia após a atribuição do CVE.
O bug está em tcf_pedit_act(), função do subsistema de traffic-control do kernel responsável por reescrever cabeçalhos de pacotes em tempo real através da ação pedit. Em uma classe inteira de bugs já familiar — Dirty Pipe, Copy Fail, DirtyClone, Dirty Frag — um caminho rápido do kernel acaba escrevendo em uma página de memória que não pertence exclusivamente a ele. Resultado: a página do page cache, que pode espelhar um arquivo de binário sensível, é modificada in-memory sem que o arquivo original em disco mude um bit.
A Red Hat classificou a falha como important. O patch já apareceu na netdev mailing list ainda em maio, descrito como uma correção rotineira de corrupção de dados, sem nenhum aviso de segurança ou CVE associado na época. O CVE só foi atribuído em 16 de junho, e em menos de 24 horas surgiu uma PoC funcional disponível publicamente.
A função supostamente deveria fazer uma cópia privada dos dados antes de editá-los — o clássico padrão copy-on-write. O problema é que o intervalo writável é checado uma única vez, antes de os offsets finais serem conhecidos. Algumas chaves de edição resolvem seu offset apenas em tempo de execução. Quando isso acontece, a escrita cai fora da região copiada privadamente e atinge uma página compartilhada do page cache. Se essa página pertencer a um arquivo cacheado, a imagem desse arquivo em memória vira outra coisa.
O que o exploit faz na prática: localiza uma página cacheada do /bin/su, sobrescreve essa cópia em memória com um pequeno payload e executa a imagem alterada como root. Como o binário em disco continua intacto, ferramentas de verificação de integridade — AIDE, Tripwire, Wazuh com baseline de hashes — não acendem nenhum alerta. O ataque exige apenas duas condições: o módulo act_pedit estar carregável e user namespaces sem privilégios estarem habilitados. Esse último ponto dá ao atacante a capability local CAP_NET_ADMIN necessária para configurar a regra de tc dentro do namespace e disparar o bug.
O autor da PoC reportou escalonamento de não-privilegiado para root em RHEL 10 e Debian 13 (trixie), onde user namespaces sem privilégios vêm abertos por padrão.
A PoC funcionou direto em RHEL 10 e Debian 13. No Ubuntu 24.04 ela exigiu rotear a execução por perfis do AppArmor que ainda permitem user namespaces. O Ubuntu 26.04 bloqueia esse caminho por padrão graças a perfis AppArmor mais restritivos sobre user namespaces sem privilégios, mas o kernel subjacente segue vulnerável — basta uma mudança de configuração para reabrir a janela. Sistemas onde a expressão “usuário local” não é equivalente a “usuário confiável” estão na linha de frente.
A linhagem é clara. Dirty Pipe (2022) explorou o splice. Copy Fail e DirtyClone vieram do tratamento de fragmentação e clonagem de skbs. Dirty Frag mexeu com IP fragments. Agora o pedit COW chega pela fila de traffic-control. Em todos os casos a mecânica é a mesma: um caminho rápido grava em uma página que não é exclusivamente sua, e o page cache absorve o estrago. Para defensores, isso significa que o vetor mais perigoso de escalonamento local em Linux deixou de ser “vulnerabilidade no SUID binary” e passou a ser “vulnerabilidade no kernel que corrompe o cache do SUID binary”.
O segundo padrão evidente é o atalho dos user namespaces. Eles foram introduzidos justamente para reduzir a superfície necessária de capabilities — rodar containers sem root, sandboxear renderizadores de browser, dar resiliência a flatpaks. Mas, na prática, transformaram-se em rampa de acesso para uma série de bugs que dependiam de CAP_NET_ADMIN, CAP_SYS_ADMIN ou CAP_BPF. Distros enterprise como RHEL 10 e Debian 13 entregam essa janela aberta por padrão; a discussão sobre fechar via AppArmor (como o Ubuntu 26.04) ou via sysctl tende a voltar à pauta a cada novo CVE dessa família.
Outro ponto desconfortável: o commit que corrigiu a falha ficou exposto na lista pública netdev por semanas antes da atribuição de CVE. Atacantes que monitoram patches de kernel em busca de pistas de corrupção de memória tiveram tempo de sobra para preparar PoCs antes do mundo todo descobrir que precisava remediar. É um lembrete de que o trecho entre “merge silencioso” e “CVE público” é uma janela operacional real para times de threat intelligence ofensiva.
lsmod | grep act_pedit. Se a regra tc pedit não é usada, adicione um arquivo em /etc/modprobe.d/blacklist-act_pedit.conf com install act_pedit /bin/false e recarregue.sysctl user.max_user_namespaces=0. Em Debian/Ubuntu: sysctl kernel.unprivileged_userns_clone=0. Atenção: isso quebra containers rootless, browsers em sandbox e algumas CI sandboxes — teste antes.execve de SUID, e com detecção de processos privilegiados nascidos de UIDs não privilegiados.echo 3 > /proc/sys/vm/drop_caches) limpa a cópia envenenada, mas não fecha o shell root que o atacante já abriu.Fonte: The Hacker News.
A Unit 42 documenta o cluster CL-STA-1062 (atribuído a UAT-7237 pelo Cisco Talos) e o…
Pesquisadores da Fortra detalham o Mirage2FA, um kit de phishing que combina anexos HTML ofuscados…
Nova proteção do Meta mostra país de origem do contato, status na agenda e grupos…
Operação coordenada por duas semanas desmantelou 142 domínios, recuperou 27 milhões de credenciais roubadas e…
Implante em Rust descoberto pela SentinelOne embute 38 mensagens falsas de sistema para induzir agentes…
Em 23 de junho de 2026, UBS e Nethermind anunciaram duas provas de conceito na…