Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Dirty-Frag-Kubernetes-PoC — Prova de conceito demonstrando escape de contêiner no Amazon EKS ao explorar a corrupção do page-cache do kernel Dirty Frag (CVE-2026-43284) por meio de camadas de imagem compartilhadas e DaemonSets privilegiados. | Kitploit
Ferramentas/GitHubGitHub/percivalll/dirty-frag-kubernetes-poc
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoSegurança na NuvemRed TeamingEscape de Contêiner
GitHubpercivalll/dirty-frag-kubernetes-poc

Dirty-Frag-Kubernetes-PoC

Prova de conceito demonstrando escape de contêiner no Amazon EKS ao explorar a corrupção do page-cache do kernel Dirty Frag (CVE-2026-43284) por meio de camadas de imagem compartilhadas e DaemonSets privilegiados.

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

Dirty Frag (CVE-2026-43284) — PoC de Escape de Contêiner Kubernetes

Uma prova de conceito demonstrando como um Pod Kubernetes padrão, sem privilégios pode alcançar execução de código em nível de nó no Amazon EKS ao explorar a vulnerabilidade de corrupção do page-cache do kernel Linux Dirty Frag por meio de camadas de imagem de contêiner compartilhadas.

O primitivo de ataque central é: qualquer DaemonSet privilegiado que compartilhe camadas de imagem com um contêiner controlado pelo atacante pode ser transformado em arma para escape de contêiner. Este PoC usa o kube-proxy como um exemplo concreto, mas a técnica se generaliza para qualquer workload privilegiado no cluster.

Validado no Amazon EKS (kernel 6.12.80) — um pod sem privilégios escreve [*] success no sistema de arquivos do host por meio do DaemonSet privilegiado kube-proxy:

EKS PoC

Aviso: Este repositório é publicado apenas para fins educacionais e defensivos. Use-o exclusivamente em sistemas que você possui ou para os quais tenha autorização explícita para testar.

Contexto

Dirty Frag (CVE-2026-43284) é uma vulnerabilidade de corrupção do page-cache do kernel Linux no caminho de recepção xfrm/ESP. No caminho afetado, esp_input() pode pular skb_cow_data() para um skb não linear sem frag_list, permitindo que crypto_authenc_esn_decrypt() armazene 4 bytes de dados controlados pelo atacante em uma página do page-cache alcançada por meio de splice().

O arquivo no disco não é modificado. Os bytes corrompidos residem no page-cache do kernel e são observados por leitores posteriores da mesma página de arquivo em cache.

Para detalhes completos sobre a vulnerabilidade original, consulte V4bel/dirtyfrag.

Princípio do Ataque

O ataque explora três propriedades que comumente coexistem em clusters Kubernetes:

  1. Corrupção do page-cache do kernel (CVE-2026-43284) — um processo sem privilégios (com suporte a user namespaces) pode sobrescrever as páginas em cache na memória de qualquer arquivo que possa abrir somente para leitura, por meio da corrida xfrm/ESP splice.
  2. Compartilhamento de camadas de imagem — runtimes de contêiner (containerd, CRI-O) usam filesystems overlay onde camadas de imagem idênticas mapeiam para as mesmas páginas do page-cache entre contêineres.
  3. DaemonSets privilegiados — muitos clusters executam DaemonSets com privilégios elevados (privileged: true, hostNetwork: true, capabilities amplas, etc.) que executam periodicamente binários de suas imagens.

Quando essas condições se alinham, um pod sem privilégios pode corromper um binário em uma camada de imagem compartilhada, e um DaemonSet privilegiado no mesmo nó executará sem saber o binário corrompido com seus privilégios elevados — alcançando execução completa de código em nível de nó.

O alvo da vulnerabilidade NÃO está limitado ao kube-proxy. Qualquer DaemonSet privilegiado (agentes de monitoramento, plugins CNI, coletores de logs, agentes de segurança, etc.) cuja imagem de contêiner compartilhe camadas com uma imagem controlada pelo atacante é um alvo viável.

Diferença do Copy Fail

Este projeto é inspirado no modelo de exploração Kubernetes documentado no Copy Fail Kubernetes PoC, mas usa um primitivo de kernel diferente.

PropriedadeCopy FailDirty Frag
CVECVE-2026-31431CVE-2026-43284
Caminho do kernelAF_ALG + splice()xfrm/ESP + splice()
Requisito de namespaceNão necessárioRequer user namespaces
Principal capability usadaNenhuma no contêiner inicialCAP_NET_ADMIN dentro do novo net namespace
Módulo relevantealgif_aeadesp4
Distinção práticaFalha se o vetor AF_ALG for bloqueadoAinda relevante quando AF_ALG está indisponível, mas ESP/user namespaces estão habilitados

Como Funciona

A cadeia de ataque tem três estágios: corrupção do page-cache, propagação entre contêineres e execução privilegiada.

1. Patch do Page-Cache via xfrm/ESP

O binário do PoC executa a seguinte sequência a partir de um contêiner sem privilégios:

  1. Entra em novos user e network namespaces com unshare(CLONE_NEWUSER | CLONE_NEWNET).
  2. Registra muitas Security Associations xfrm cujos campos de sequência alta codificam blocos de payload de 4 bytes.
  3. Abre um binário alvo da camada de imagem compartilhada somente para leitura.
  4. Usa splice() e entrada ESP elaborada para acionar o caminho vulnerável do kernel.
  5. Repete o primitivo até que o conteúdo do page-cache do binário alvo contenha o payload embutido.

Nenhuma permissão de escrita no arquivo alvo é necessária. O arquivo no disco permanece inalterado — apenas o page-cache na memória é corrompido.

2. Propagação entre Contêineres via Camadas Compartilhadas

Os runtimes de contêiner atendem leituras das camadas inferiores do overlay por meio do page-cache do kernel. Se o contêiner do PoC e o kube-proxy compartilham o mesmo arquivo de camada inferior, ambos observam as mesmas páginas em cache.

A imagem EKS neste repositório é construída a partir de:

public.ecr.aws/eks-distro-build-tooling/eks-distro-minimal-base-iptables:2026-03-11-1773190710.2023

Essa base é escolhida para corresponder à camada da toolchain userspace do kube-proxy EKS usada no ambiente validado.

3. Execução Privilegiada pelo kube-proxy

Quando o kube-proxy executa em seguida um binário da família iptables com patch, o kernel carrega as páginas em cache corrompidas. O payload do PoC monta o dispositivo raiz do host e escreve um arquivo marcador em /root/res.

O conteúdo esperado do marcador é:

[*] success

Diagrama do Fluxo de Ataque

┌──────────────────────────────┐     ┌────────────────────────┐     ┌──────────────────────────┐
│  Pod PoC                     │     │  Page Cache do Kernel  │     │  DaemonSet kube-proxy    │
│  contêiner sem privilégios   │     │                        │     │  contêiner privilegiado  │
│                              │     │                        │     │                          │
│  1. unshare user+net ns      │     │                        │     │                          │
│  2. instalar SAs xfrm        │     │                        │     │                          │
│  3. splice do binário alvo   │────▶│  binário de camada     │────▶│  executa binário com    │
│     pelo caminho ESP         │     │  compartilhada com     │     │  patch; payload roda    │
│                              │     │  page cache alterado   │     │  com privilégios de nó  │
└──────────────────────────────┘     └────────────────────────┘     └──────────────────────────┘

Ambiente Validado

Amazon EKS

Baixar ferramenta