Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
COPY-FAIL-Detection-with-Wazuh-4.14.4 — Wazuh 4.14.4 regras de detecção para CVE-2026-31431 (Copy Fail) - Escalação de privilégios local no Linux via gravação no cache de página do authencesn | Kitploit
Ferramentas/GitHubGitHub/mym0us3r/copy-fail-detection-with-wazuh-4.14.4
Escalada de PrivilégiosAnálise de VulnerabilidadesAuditoria de ConfiguraçãoInteligência de AmeaçasDetecção de Intrusão
GitHubmym0us3r/copy-fail-detection-with-wazuh-4.14.4

COPY-FAIL-Detection-with-Wazuh-4.14.4

Wazuh 4.14.4 regras de detecção para CVE-2026-31431 (Copy Fail) - Escalação de privilégios local no Linux via gravação no cache de página do authencesn

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
9há 3 mesesAinda não revisado

Detecção de COPY FAIL com Wazuh 4.14.4 - CVE-2026-31431

Engenharia de detecção para o LPE do kernel Copy Fail · Ubuntu / RHEL / SUSE / Amazon Linux 2023 / Kali

rules sca status mitre cve


O que é Copy Fail?

CVE-2026-31431 é um bug lógico no template criptográfico authencesn do kernel Linux. Ele permite que qualquer usuário local sem privilégios realize uma gravação determinística e controlada de 4 bytes no cache de páginas de qualquer arquivo legível no sistema - sem exigir condições de corrida, offsets do kernel ou privilégios elevados.

Um script Python 3.10+ de 732 bytes usando apenas módulos da biblioteca padrão (os, socket, zlib) explora a vulnerabilidade para obter root em todas as principais distribuições Linux lançadas desde 2017.

O arquivo em disco permanece inalterado, tornando o monitoramento tradicional de integridade de arquivos (FIM) completamente cego.

Descoberto por Taeyang Lee (Theori / Xint) com a assistência da ferramenta de IA Xint Code.


Referências Oficiais


Por que o FIM Falha - Por que Este Repositório Existe

A gravação atinge apenas o cache de páginas em memória. O kernel nunca marca a página como suja, então o mecanismo de writeback nunca a persiste em disco. O binário em disco permanece byte a byte idêntico ao original.

root@kitploit:~
Abordagem tradicional de FIM:
  ler arquivo do disco -> calcular hash -> comparar -> nenhuma anomalia relatada

Realidade do Copy Fail:
  arquivo em disco = INALTERADO
  cache de páginas = CORROMPIDO
  resultado do FIM = CEGO

A única detecção eficaz é comportamental, por meio do monitoramento de syscalls. Este repositório fornece regras Wazuh validadas em produção que detectam a cadeia de exploração no nível de syscalls do kernel.


Cadeia de Exploração

root@kitploit:~
Passo 1: socket(38, 5, 0)       Socket AF_ALG - nenhum privilégio necessário
Passo 2: bind()                  Vincular ao authencesn - ativa o código vulnerável
Passo 3: sendmsg()               Criar payload AAD - bytes 4-7 = valor a gravar
Passo 4: splice()          [!]   GATILHO - páginas do cache de páginas entram no SGL gravável
Passo 5: recv()                  authencesn grava seqno_lo no cache de páginas
Passo 6: execve(/usr/bin/su)     Binário setuid corrompido executa shellcode como UID 0

Cadeia de Exploração CVE-2026-31431

splice() é o passo crítico. Ele entrega páginas do cache de páginas no scatterlist gravável do socket AF_ALG sem cópia - uma otimização in-place de 2017 em algif_aead.c que tornou páginas do buffer do pipe reutilizáveis no SGL de destino. Quando authencesn.decrypt() é executado, ele grava nessas páginas, que por acaso são o cache de páginas do seu arquivo alvo.


Distribuições Afetadas

Todas as distribuições Linux que fornecem kernels desde o commit 72548b093ee3 (2017) são afetadas.

Escape de contêiner: Copy Fail também é um vetor de escape de contêiner. O cache de páginas é compartilhado entre todos os processos do host, inclusive através dos limites dos contêineres. A Parte 2 da Xint cobre a exploração em Kubernetes.


Estrutura do Repositório

root@kitploit:~
COPY-FAIL-Detection-with-Wazuh-4.14.4/
│
├── rules/
│   └── local_rules.xml              # 8 regras de detecção Wazuh (199600-199607)
│
├── auditd/
│   └── cve-2026-31431.rules         # Regras do sensor de syscalls auditd
│
├── sca/
│   └── cve_2026_31431.yml           # Política SCA - independente da versão do kernel
│
└── docs/
    ├── pentlab_uid.png               # Execução do PoC - root obtido no Kali
    ├── Rule-199604-TRIGs.png         # Regra 199604 - 80 ocorrências no pentlab
    ├── Rule_199604_Wazuh_Server_only.png  # Regra 199604 - primeira validação
    ├── Splice_-_Non-root_process.png # Regras 199600/199601/199604 disparando
    ├── Modprobe_-_Possible_Algif_aed_load_attempt.png  # Regra 199603
    ├── Pentlab-PoC.png               # Regra 199603 no agente pentlab
    ├── exploit_chain_timeline.svg    # Cadeia de Exploração
    └── SCA_CVE-2026-31431.png        # Pontuação da política SCA 75%

Arquitetura de Detecção

Duas camadas independentes — nenhuma depende da versão do kernel.

Camada 1 - Detecção Comportamental (auditd + Wazuh)

O filtro uid!=0 cobre usuários além das contas interativas: contas de serviço (www-data, postgres, jenkins), contêineres e web shells sem sessão de login.

Regras do sensor auditd (auditd/cve-2026-31431.rules):

root@kitploit:~
-a always,exit -F arch=b64 -S socket -F a0=0x26 -F uid!=0 -k copy_fail_af_alg
-a always,exit -F arch=b32 -S socket -F a0=0x26 -F uid!=0 -k copy_fail_af_alg
-a always,exit -F arch=b64 -S splice -F uid!=0 -k copy_fail_splice
-w /usr/bin/su    -p x -k copy_fail_execve_su
-w /usr/bin/kmod  -p x -k copy_fail_modload

Camada 2 - Superfície de Vulnerabilidade (Política SCA)

Verificações de configuração automatizadas a cada 12 horas via sca/cve_2026_31431.yml. Nenhuma versão do kernel necessária.

Arquitetura da Cadeia de Regras

Nota de engenharia: As regras 199600 e 199601 devem ser filhas da regra 92600 (processo Python, profundidade 1), não da 80700. O mecanismo de regras do Wazuh segue um único caminho de cadeia por evento. Colocar as regras de detecção na profundidade 2 sob a 92600 garante que elas vençam a avaliação da cadeia sobre regras irmãs (ex.: 92603-92606 em 0850-audit_rules.xml que também correspondem a if_group=audit + exe=python).


Implantação

Passo 1 - Instalar auditd

root@kitploit:~
# Ubuntu / Debian / Kali
apt install auditd audispd-plugins -y
systemctl enable --now auditd
auditctl -s | grep enabled
root@kitploit:~
# RHEL / Amazon Linux
yum install audit -y
systemctl enable --now auditd
root@kitploit:~
# SUSE
zypper install audit -y
systemctl enable --now auditd

Passo 2 - Implantar regras do sensor auditd

root@kitploit:~
cp auditd/cve-2026-31431.rules /etc/audit/rules.d/
augenrules --load
auditctl -l | grep copy_fail

Saída esperada:

root@kitploit:~
-a always,exit -F arch=b64 -S socket -F a0=0x26 -F uid!=0 -F key=copy_fail_af_alg
-a always,exit -F arch=b32 -S socket -F a0=0x26 -F uid!=0 -F key=copy_fail_af_alg
-a always,exit -F arch=b64 -S splice -F uid!=0 -F key=copy_fail_splice
-w /usr/bin/su -p x -k copy_fail_execve_su
-w /usr/bin/kmod -p x -k copy_fail_modload

Passo 3 - Implantar regras de detecção Wazuh

As regras são fornecidas em rules/local_rules.xml. Você pode mesclar o conteúdo no seu /var/ossec/etc/rules/local_rules.xml existente ou implantar como um arquivo independente:

root@kitploit:~
# Opção A - arquivo independente
cp rules/local_rules.xml /var/ossec/etc/rules/cve-2026-31431_rules.xml

# Opção B - anexar ao local_rules.xml
cat rules/local_rules.xml >> /var/ossec/etc/rules/local_rules.xml
root@kitploit:~
# Validar sintaxe - deve sair com 0 e zero avisos
/var/ossec/bin/wazuh-analysisd -t 2>&1 | tail -5

# Reiniciar o gerenciador
systemctl restart wazuh-manager

Passo 4 - Implantar política SCA

root@kitploit:~
cp sca/cve_2026_31431.yml /var/ossec/etc/shared/default/

Adicione ao ossec.conf dentro do bloco <sca>:

root@kitploit:~
<policies>
  <policy>/var/ossec/etc/shared/default/cve_2026_31431.yml</policy>
</policies>
root@kitploit:~
systemctl restart wazuh-manager

Passo 5 - Configurar localfile no ossec.conf

Garanta que o Wazuh ingira o log do auditd:

root@kitploit:~
<!-- Adicione dentro de <ossec_config> -->
<localfile>
  <log_format>audit</log_format>
  <location>/var/log/audit/audit.log</location>
</localfile>

Validação

Teste rápido (sem exploit - apenas syscalls)

root@kitploit:~
# Crie um usuário de teste se necessário
useradd -m testuser 2>/dev/null || true

# Gerar SINAL 1 - Socket AF_ALG
su - testuser -c "python3 -c \"import socket; socket.socket(38, 5, 0); print('AF_ALG OK')\""

# Gerar SINAL 3 - Execução de /usr/bin/su
su - testuser -c "/usr/bin/su --help 2>/dev/null || true"

# Verificar se o auditd capturou os eventos
ausearch -k copy_fail_af_alg -ts recent 2>/dev/null | grep "key=\|exe=\|uid=" | head -5

# Verificar se o Wazuh gerou alertas
grep -E "199600|199602" /var/ossec/logs/alerts/alerts.log | tail -10

Validar resultados SCA

root@kitploit:~
grep -E "31431|cve_2026" /var/ossec/logs/alerts/alerts.log | tail -10

Pontuação SCA esperada (sistema sem mitigação): 75% (3 aprovados / 1 reprovado - algif_aead não bloqueado)


Evidências de Validação em Produção

Execução do PoC - Root obtido no Kali (pentlab)

testuser (uid=1001) executou o PoC de 732 bytes e obteve shell root:

PoC - Root obtido no Kali


Regra 199604 - CADEIA DE EXPLORAÇÃO DETECTADA (pentlab, 80 ocorrências)

Socket AF_ALG + splice() do mesmo processo python - pid=46784 - INVESTIGAÇÃO IMEDIATA NECESSÁRIA:

Regra 199604 - pentlab 80 ocorrências


Regra 199604 - Primeira validação (servidor Wazuh, pid=53447)

Regra 199604 - servidor Wazuh


Regras 199600 / 199601 / 199604 - splice() e AF_ALG disparando

Splice e AF_ALG - processo não-root


Regra 199603 - Execução de modprobe detectada (93 ocorrências)

Modprobe - Possível tentativa de carregamento de algif_aead


Regra 199603 - agente pentlab (35 ocorrências)

Pentlab - Regra 199603


Política SCA - Pontuação 75% (3 aprovados / 1 reprovado)

SCA CVE-2026-31431


Resultados do Discover no Dashboard Wazuh (agente=pentlab, Hoje):

wazuh-analysisd -t: saída 0 - zero avisos - todas as 8 regras carregadas.


Remediação

Mitigação imediata (antes do patch)

root@kitploit:~
rmmod algif_aead 2>/dev/null || true
echo 'install algif_aead /bin/false' > /etc/modprobe.d/disable-algif-aead.conf

Isso não afeta dm-crypt/LUKS, kTLS, IPsec, OpenSSL, GnuTLS ou SSH.

Correção permanente

Aplique o commit do kernel a664bf3d603d por meio da atualização do kernel da sua distribuição. Ele reverte a otimização in-place de 2017 em algif_aead.c, separando req->src (SGL de TX, onde splice entrega as páginas) de req->dst (SGL de RX, buffer do usuário). Todas as principais distribuições estão fornecendo a correção.

root@kitploit:~
# Ubuntu / Debian
apt update && apt upgrade linux-generic

# RHEL / Amazon Linux
dnf update kernel

# SUSE
zypper update kernel-default

Linha do Tempo de Divulgação


Comparação com Vulnerabilidades Semelhantes


Resumo da Política SCA


Autor

Kislley Rodrigues (m0us3r) Embaixador Wazuh | Engenharia de Detecção | Blue Team


Agradecimentos

  • Taeyang Lee (Theori / Xint) pela descoberta, artigo e divulgação coordenada do CVE-2026-31431
  • Equipe Wazuh pela plataforma SIEM/XDR aberta e pelo Programa de Embaixadores
  • Xint Research pela profundidade técnica em https://xint.io/blog/copy-fail-linux-distributions

Regras de detecção, configuração do sensor auditd e política SCA validadas no Wazuh 4.14.4, Ubuntu 24.04.2 LTS (kernel 6.8.0-106-generic) e Kali GNU/Linux 2026.1 (kernel 6.18.12+kali-amd64).


Atualização 2026-05-03

FonteLink
CISA Adiciona Bug de Acesso Root Linux Explorado Ativamente CVE-2026-31431 ao KEVhttps://thehackernews.com/2026/05/cisa-adds-actively-exploited-linux-root.html


Wazuh

Este projeto foi desenvolvido como parte do Programa de Embaixadores Wazuh.

O Wazuh é uma plataforma de segurança gratuita e de código aberto que fornece proteção unificada de XDR e SIEM. Saiba mais em wazuh.com.

Baixar ferramenta
RecursoLink
Site Oficial do CVEhttps://copy.fail/
Artigo Técnico - Xint Researchhttps://xint.io/blog/copy-fail-linux-distributions
PoC - copy_fail_exp.pyhttps://github.com/theori-io/copy-fail-CVE-2026-31431/blob/main/copy_fail_exp.py
Correção do Kernel - a664bf3d603dhttps://github.com/torvalds/linux/commit/a664bf3d603d
Commit Vulnerável - 72548b093ee3https://github.com/torvalds/linux/commit/72548b093ee3
MITRE ATT&CK T1068https://attack.mitre.org/techniques/T1068/
DistribuiçãoKernelStatus
Ubuntu 24.04 LTS6.17.0-1007-awsROOT CONFIRMADO
Amazon Linux 20236.18.8-9.213.amzn2023ROOT CONFIRMADO
RHEL 10.16.12.0-124.45.1.el10_1ROOT CONFIRMADO
SUSE 166.12.0-160000.9-defaultROOT CONFIRMADO
Kali GNU/Linux 2026.16.18.12+kali-amd64ROOT CONFIRMADO
RegraPaiSinalProfundidadeNível
80700decoded_as=auditdâncora auditd (integrada ao Wazuh)00
9260080700Execução de processo Python (integrada ao Wazuh)10
19960092600Socket AF_ALG - cadeia python210
19960192600Syscall splice() - cadeia python210
199604199601 + if_matched=199600CADEIA DE EXPLORAÇÃO - python (mesmo pid/120s)315
19960280700Execução de /usr/bin/su16
19960380700Execução de modprobe/kmod112
19960580700Socket AF_ALG - não-python110
19960680700Syscall splice() - não-python110
199607199606 + if_matched=199605CADEIA DE EXPLORAÇÃO - não-python (mesmo pid/120s)215
RegraOcorrênciasDescrição
19960480CADEIA DE EXPLORAÇÃO DETECTADA - pid=46784 exe=/usr/bin/python3.13
19960040Socket AF_ALG criado por processo não-root
19960328Execução de modprobe detectada
19960212/usr/bin/su executado
DataEvento
2026-03-23Vulnerabilidade relatada à equipe de segurança do kernel Linux
2026-03-24Confirmação inicial recebida
2026-03-25Patches propostos e revisados
2026-04-01Patch commitado no kernel mainline (a664bf3d603d)
2026-04-22CVE-2026-31431 atribuído
2026-04-29Divulgação pública - artigo da Xint + PoC publicados
Dirty Cow (2016-5195)Dirty Pipe (2022-0847)Copy Fail (2026-31431)
Condição de corridaSim - múltiplas tentativasNãoNão - lógica determinística
Pode travar o sistemaSimNãoNão
PortabilidadeLimitadaEspecífica da versãoTodas as distros 2017+
Tamanho do exploitKilobytes (C)Centenas de bytes732 bytes (stdlib Python)
Detecção por FIMPossívelPossívelNão possível
VerificaçãoTítuloRisco
31431001algif_aead não carregado em memóriaCRÍTICO
31431002algif_aead desabilitado via modprobe.dALTO
31431003auditd ativo e em execuçãoALTO
31431004Regras do sensor CVE-2026-31431 implantadasALTO
Catálogo de Vulnerabilidades Exploradas Conhecidashttps://www.cisa.gov/known-exploited-vulnerabilities-catalog
CVE-2026-31431 - crypto: algif_aead - Reverter para operação fora do localhttps://www.cve.org/CVERecord?id=CVE-2026-31431