top of page

Nova falha DirtyClone no kernel Linux permite elevação local de privilégio para root por meio de pacotes clonados


Uma nova vulnerabilidade de escalonamento de privilégios no kernel Linux permite que um usuário local corrompa memória associada a arquivos e obtenha acesso root em sistemas afetados. A falha, chamada DirtyClone, faz parte da família DirtyFrag e foi detalhada pela JFrog Security Research, que publicou em 25 de junho uma demonstração funcional de exploração, a primeira apresentação pública dessa variante.

Rastreada como CVE-2026-43503, com pontuação CVSS 8.8, a vulnerabilidade permite que um usuário local manipule memória baseada em arquivo por meio de um pacote de rede clonado. A correção foi incorporada ao kernel principal em 21 de maio. Sistemas que ainda executam versões sem o patch devem ser atualizados o quanto antes.


O problema está em uma falha de preservação de metadados durante operações internas do kernel com pacotes de rede. Quando o kernel copia um pacote internamente, duas funções auxiliares deixam de manter uma flag de segurança que indica que aquela região de memória é compartilhada com um arquivo no disco. A ausência dessa marcação é o ponto central da vulnerabilidade.


Na cadeia de ataque descrita, o invasor carrega um binário privilegiado, como /usr/bin/su, na memória. Em seguida, vincula essas páginas de memória a um pacote de rede e força o kernel a cloná-lo. O pacote clonado passa por um túnel IPsec controlado pelo atacante, e a etapa de descriptografia sobrescreve verificações de login do binário com bytes escolhidos pelo invasor. Quando o comando su é executado novamente, o processo pode entregar acesso root.


O arquivo original no disco não é alterado. A modificação ocorre apenas na cópia em memória mantida pelo kernel. Isso torna a detecção mais difícil, já que ferramentas de integridade de arquivos podem indicar que o binário permanece intacto, enquanto a versão em cache já foi manipulada. Um reboot restaura o arquivo ao estado original na memória, mas, nesse ponto, o atacante já pode ter obtido privilégios elevados.


A exploração exige a capacidade CAP_NET_ADMIN para configurar um túnel IPsec de loopback. Em distribuições como Debian e Fedora, namespaces de usuário não privilegiados são habilitados por padrão, o que permite que um usuário local obtenha essa capacidade dentro de um novo namespace. Esse detalhe amplia o risco em ambientes multiusuário e em infraestruturas que permitem criação de namespaces por usuários ou processos não confiáveis.


No Ubuntu 24.04 e versões posteriores, a criação de namespaces é restringida por meio do AppArmor, bloqueando o caminho padrão de exploração. Ainda assim, a questão é relevante porque o page cache é compartilhado no nível do host. Isso significa que alterações feitas dentro de um namespace podem afetar todos os processos na máquina, e não apenas o ambiente isolado em que a operação foi iniciada.


Os sistemas mais expostos incluem servidores multi-tenant, runners de CI, hosts de contêineres e clusters Kubernetes nos quais usuários ou workloads não confiáveis podem criar namespaces. A JFrog confirmou a exploração em sistemas Debian, Ubuntu e Fedora com configurações padrão de namespace.


A DirtyClone é a quarta vulnerabilidade recente de escalonamento de privilégios associada ao mesmo tipo de falha: memória baseada em arquivo é tratada como dados de pacote, e uma operação de rede feita “in-place” escreve onde deveria copiar. Essa classe de problema transforma uma otimização de desempenho do kernel em uma primitiva de escrita capaz de modificar conteúdo sensível em memória.


A primeira falha dessa sequência foi a Copy Fail, rastreada como CVE-2026-31431, divulgada no fim de abril. Ela explorava o módulo algif_aead para realizar uma escrita de quatro bytes no page cache. Em 7 de maio, vieram as falhas DirtyFrag, CVE-2026-43284 e CVE-2026-43500, que encadeavam caminhos do IPsec ESP e do RxRPC para obter uma primitiva de escrita mais ampla.


Poucos dias depois, em 13 de maio, surgiu a Fragnesia, CVE-2026-46300, que contornava a correção da DirtyFrag por meio de uma falha em skb_try_coalesce(), função que também deixava de preservar corretamente a flag necessária. Cada correção fechou um caminho específico, mas deixou outras rotas vulneráveis no subsistema de fragmentos de pacotes.


No caso da DirtyClone, a exploração demonstrada se concentra em __pskb_copy_fclone(), com skb_shift() também afetada. A correção mais ampla associada à CVE-2026-43503 cobre outros auxiliares de transferência de fragmentos nos quais a mesma flag poderia ser perdida.


O problema de fundo não é apenas uma função específica com defeito. Trata-se de uma falha de contrato entre caminhos do kernel: qualquer código que mova fragmentos de skb precisa preservar corretamente o bit que indica compartilhamento com memória baseada em arquivo. Se essa informação se perde em algum ponto da cadeia, dados originalmente tratados como somente leitura ou compartilhados podem acabar sendo sobrescritos por operações de rede.


O mecanismo de rede zero-copy do kernel permite que memória associada a arquivos seja usada como dados de pacote para reduzir cópias e melhorar desempenho. No entanto, quando uma flag de segurança é descartada, essa otimização pode se transformar em uma capacidade de escrita indevida. Cada variante recente explorou um caminho diferente em que esse contrato não foi respeitado.


Segundo as informações divulgadas, o pesquisador Hyunwoo Kim, responsável pela descoberta original da DirtyFrag, havia enviado em 16 de maio uma correção mais abrangente cobrindo vários auxiliares de transferência de fragmentos ainda vulneráveis. A correção combinada foi integrada em 21 de maio no commit 48f6a5356a33, recebeu a identificação CVE-2026-43503 em 23 de maio e foi incluída no Linux v7.1-rc5 em 24 de maio.


A recomendação principal é instalar a atualização de kernel disponibilizada pela distribuição utilizada. A correção já chegou ao upstream no Linux v7.1-rc5 e foi retroportada para branches estáveis e LTS. Ubuntu, Debian e SUSE publicaram advisories sobre o tema, enquanto a Red Hat mantém um registro de acompanhamento no Bugzilla.


Para organizações que não conseguem aplicar o patch imediatamente, há medidas temporárias para reduzir a superfície de ataque. Uma delas é restringir namespaces de usuário não privilegiados. Em Debian e Ubuntu, isso pode ser feito desabilitando kernel.unprivileged_userns_clone; outras distribuições podem usar mecanismos diferentes para aplicar restrições semelhantes.


Outra mitigação possível é bloquear os módulos esp4, esp6 e rxrpc, embora essa medida possa impactar IPsec e AFS. Além disso, ela só funciona quando esses recursos estão disponíveis como módulos carregáveis, e não quando foram compilados diretamente no kernel. As duas abordagens devem ser tratadas como controles provisórios, não como substitutos da correção definitiva.


A classe DirtyFrag provavelmente ainda exigirá novas auditorias. Qualquer função que mova descritores de fragmentos sem propagar corretamente a flag de compartilhamento pode representar uma nova vulnerabilidade. A revisão deve cobrir todos os caminhos que manipulam skb_shinfo()->flags durante transferências de fragmentos, especialmente em ambientes que dependem de namespaces, contêineres e processamento intensivo de rede.

 
 
Cópia de Cyber Security Brazil_edited.jpg

Cyber Security Brazil desde 2021, atuamos como referência nacional em segurança digital, oferecendo informação confiável, conteúdo especializado e fortalecendo o ecossistema de cibersegurança no Brasil.

Institucional

(11) 93937-9007

INSCREVA SEU EMAIL PARA RECEBER

ATUALIZAÇÕES, POSTS E NOVIDADES

  • RSS
  • Instagram
  • LinkedIn

© 2025 Todos os direitos reservados a Cyber Security Brazil

bottom of page