FERRAMENTAS LINUX: DirtyClone e pedit COW: Análise Técnica das Falhas de Escalação de Privilégios no Kernel Linux

domingo, 28 de junho de 2026

DirtyClone e pedit COW: Análise Técnica das Falhas de Escalação de Privilégios no Kernel Linux

 


DirtyClone (CVE-2026-43503) e pedit COW (CVE-2026-46331): análise técnica, identificação, atualização e mitigação para administradores Linux. Comandos práticos inclusos.


Duas novas vulnerabilidades no kernel Linux——DirtyClone (CVE-2026-43503) e pedit COW (CVE-2026-46331)——permitem que usuários locais sem privilégios escalem acesso para root em distribuições amplamente utilizadas. Este guia aborda a mecânica das falhas, procedimentos de identificação, remediação e mitigações temporárias para ambientes de produção.


Em junho de 2026, pesquisadores documentaram duas vulnerabilidades de escalação local de privilégios (LPE) no kernel Linux que compartilham o mesmo padrão de falha: corrupção de memória paginada (page cache) durante operações de rede. 

O DirtyClone, com CVSS 8.8, explora o túnel IPsec para sobrescrever a cópia em memória de binários com privilégios. 

O pedit COW explora a funcionalidade act_pedit de edição de pacotes.

Ambas as falhas não modificam arquivos em disco, tornando a detecção por ferramentas de integridade de arquivos (tripwire, AIDE) ineficaz.  Um simples reboot limpa a memória e restaura o sistema, mas o dano——uma vez que o atacante obtém root——já pode ter ocorrido.


Pré-requisitos


Para acompanhar os procedimentos deste guia, você precisará de:

  • Acesso shell com privilégios sudo em um sistema Linux afetado.
  • Conhecimento de gerenciamento de pacotes da sua distribuição (apt, dnf, yum, zypper).
  • Familiaridade com parâmetros do kernel via sysctl.
  • Ambiente de teste (não executar em produção sem validação prévia).


Passo a Passo

1. Identificação de Sistemas Afetados

As vulnerabilidades afetam distribuições que combinam um kernel vulnerável com suporte a CIFS e funcionalidades de rede específicas. Para verificar se seu sistema está vulnerável:

Passo 1.1 – Verifique a versão do kernel:

bash
$ uname -r
6.8.0-45-generic


Por que isso importa: A correção para DirtyClone foi incorporada ao kernel 7.1-rc5 (24 de maio de 2026). Sistemas com kernel anterior a essa data estão vulneráveis.

Passo 1.3 – Verifique a presença do módulo CIFS:

bash
$ lsmod | grep cifs
cifs                  149504  0

Se o módulo CIFS estiver carregado, o sistema pode estar vulnerável à falha CIFSwitch.


2. Avaliação de Exposição: CAP_NET_ADMIN e Namespaces

O vetor de ataque exige que o usuário possua a capacidade CAP_NET_ADMIN. Em muitas distribuições, essa capacidade pode ser obtida por um usuário comum ao criar um namespace de rede.

Passo 2.1 – Verifique se usuários não-privilegiados podem criar namespaces:

bash
$ cat /proc/sys/user/max_user_namespaces
64000

Se o valor for maior que zero (especialmente em Debian e Fedora, onde está habilitado por padrão), usuários sem privilégios podem criar namespaces.

Passo 2.2 – Teste a criação de um namespace de rede como usuário comum:

bash
$ unshare -r -n whoami
root

Se o comando retornar root, o sistema permite que usuários não-privilegiados criem namespaces de rede——um dos pré-requisitos para exploração.

Por que isso importa: O atacante não precisa ser root para obter CAP_NET_ADMIN——a criação de um namespace já concede essa capacidade. O Ubuntu 24.04+ possui restrições via AppArmor que dificultam o caminho padrão, mas o kernel continua vulnerável.

3. Procedimento de Atualização do Kernel

A recomendação principal é atualizar o kernel e reiniciar o sistema.

Passo 3.1 – Debian / Ubuntu:

bash
$ sudo apt update
$ sudo apt upgrade linux-image-$(uname -r)
$ sudo reboot

Passo 3.2 – RHEL / Fedora / CentOS:

bash
$ sudo dnf update kernel
$ sudo reboot

Passo 3.3 – SUSE:

bash
$ sudo zypper update kernel-default
$ sudo reboot

Passo 3.4 – Verifique a versão após a reinicialização:

bash
$ uname -r
7.1.0-1-generic   # ou versão superior à 7.1-rc5

Por que isso importa: A correção para DirtyClone foi incorporada a partir do kernel 7.1-rc5. Versões anteriores——incluindo backports de correções de outras vulnerabilidades——permanecem vulneráveis.

4. Mitigação Temporária: Desativação de Namespaces sem Privilégios

Para ambientes onde a atualização imediata não é possível, a desativação da criação de namespaces por usuários sem privilégios bloqueia o vetor de ataque.


Passo 4.1 – Debian/Ubuntu:

bash
$ sudo sysctl -w kernel.unprivileged_userns_clone=0
$ echo "kernel.unprivileged_userns_clone=0" | sudo tee -a /etc/sysctl.conf

Passo 4.2 – RHEL / Fedora / CentOS:

bash
$ sudo sysctl -w user.max_user_namespaces=0
$ echo "user.max_user_namespaces=0" | sudo tee -a /etc/sysctl.conf

Passo 4.3 – Verifique a aplicação:

bash
$ sysctl kernel.unprivileged_userns_clone   # Debian/Ubuntu
kernel.unprivileged_userns_clone = 0

$ sysctl user.max_user_namespaces            # RHEL
user.max_user_namespaces = 0

⚠️ Atenção: Esta medida quebra funcionalidades que dependem de containers rootless (podman, rootless Docker) e pode impactar ambientes de desenvolvimento. Avalie o trade-off antes de aplicar em produção.

5. Monitoramento e Detecção

Como as falhas não modificam arquivos em disco, ferramentas tradicionais de integridade de arquivos não detectam a alteração. Estratégias alternativas são necessárias.

Passo 5.1 – Monitore processos suspeitos com auditd:

bash
$ sudo auditctl -w /usr/bin/su -p x -k su_exec
$ sudo auditctl -w /usr/bin/sudo -p x -k sudo_exec

Passo 5.2 – Verifique assinaturas de binários críticos em memória (abordagem avançada):

bash
$ sudo gdb -p 1 -batch -ex "dump memory /tmp/init_mem 0x$(cat /proc/1/maps | grep r-xp | head -1 | cut -d'-' -f1) 0x$(cat /proc/1/maps | grep r-xp | head -1 | cut -d'-' -f2)" 2>/dev/null
$ sha256sum /tmp/init_mem

Compare com uma baseline coletada em sistema conhecidamente íntegro. Variações indicam possível corrupção de memória.

Passo 5.3 – Monitore logs do kernel para atividades anômalas:

bash
$ sudo dmesg | grep -i "xfrm\|esp\|act_pedit\|cifs"

Por que isso importa: O DirtyClone sobrescreve a cópia em memória do /usr/bin/su, entregando uma shell root na próxima execução. A detecção requer monitoramento em nível de memória, não de disco.


📘  Indicação de Leitura 


Livro: Segurança em Servidores Linux Ataque e Defesa

Esse livro  é um guia prático e abrangente sobre a segurança do sistema operacional Linux como um todo. O livro ensina a pensar como um atacante para fortalecer a defesa do servidor, abordando tópicos fundamentais como:

  • Ferramentas de rede: Nmap, Netcat, knockd.
  • Monitoramento: de arquivos e sistemas de arquivos.
  • Defesas: contra malware e ataques DDoS.
  • Descoberta de vulnerabilidades: como invasores encontram pontos fracos.


Segurança em Servidores Linux Ataque e Defesa: (anúncio) ->  https://link.amazon/B00Oln1Rw

Eu ganho uma comissão quando você faz uma compra.


Troubleshooting


Problema Comum: Atualização do Kernel Não Resolve a Vulnerabilidade.

Sintoma: Após atualizar o kernel e reiniciar, o sistema ainda é listado como vulnerável em scanners de segurança.

Causa: A distribuição pode ter backportado correções para versões mais antigas do kernel, mas o scanner pode estar verificando apenas a versão numérica. Ou a vulnerabilidade pode ser do pedit COW (CVE-2026-46331) , cuja correção varia por distribuição.

Solução:

1. Verifique se o patch específico foi aplicado:

bash
$ grep -i "CVE-2026-43503" /var/log/apt/history.log   # Debian/Ubuntu
$ rpm -q --changelog kernel | grep -i "CVE-2026-43503" # RHEL/Fedora

2. Para o pedit COW, consulte o status específico da sua distribuição:

Se a correção não estiver disponível, aplique a mitigação temporária (desativação de namespaces) como medida de contenção.


Armadilha Comum


Iniciantes assumem que "atualizar o kernel" é suficiente sem reiniciar o sistema.

O kernel em execução——carregado na memória RAM durante o boot——não é substituído por uma atualização de pacote até que o sistema seja reiniciado.

 Comandos como uname -r continuarão mostrando a versão antiga.

 A vulnerabilidade permanece explorável até o próximo reboot.

Verificação obrigatória pós-atualização:


Conclusão


O DirtyClone (CVE-2026-43503) e o pedit COW (CVE-2026-46331) representam a quarta e quinta ondas de vulnerabilidades com o mesmo padrão de falha——corrupção de page cache durante operações de rede. 

O problema não está em uma função isolada, mas em um contrato de memória que precisa ser respeitado por todo o código que manipula fragmentos de rede.

A postura recomendada para equipes de infraestrutura:

  • Priorize a atualização do kernel para versão ≥ 7.1-rc5.
  • Se a atualização não for possível imediatamente, desative unprivileged_userns_clone ou max_user_namespaces.
  • Monitore processos com privilégios e logs do kernel para atividades anômalas
  • Eduque a equipe sobre a natureza in-detectável por ferramentas de integridade de arquivos

A tendência indica que novas variantes podem surgir enquanto o contrato de memória não for reforçado em todo o código-fonte do kernel. Manter-se atualizado com os patches de segurança continua sendo a defesa mais eficaz.

Nenhum comentário:

Postar um comentário