Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/percivalll/dirty-frag-kubernetes-poc
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSicurezza CloudRed TeamingEscape dal Container
GitHubpercivalll/dirty-frag-kubernetes-poc

Dirty-Frag-Kubernetes-PoC

Proof-of-concept che dimostra l'evasione dal container su Amazon EKS sfruttando Dirty Frag (CVE-2026-43284), una corruzione della page-cache del kernel tramite layer di immagini condivisi e DaemonSets privilegiati.

Vedi Repository
16325 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Dirty Frag (CVE-2026-43284) — PoC di Container Escape Kubernetes

Una proof-of-concept che dimostra come un Pod Kubernetes predefinito e non privilegiato possa ottenere esecuzione di codice a livello di nodo su Amazon EKS sfruttando la vulnerabilità di corruzione della page cache del kernel Linux Dirty Frag tramite livelli di immagine container condivisi.

Il primitivo di attacco principale è: qualsiasi DaemonSet privilegiato che condivide livelli di immagine con un container controllato dall'attaccante può essere armato per il container escape. Questo PoC usa kube-proxy come esempio concreto, ma la tecnica si generalizza a qualsiasi workload privilegiato sul cluster.

Validato su Amazon EKS (kernel 6.12.80) — un pod non privilegiato scrive [*] success nel filesystem dell'host tramite il DaemonSet privilegiato kube-proxy:

EKS PoC

Disclaimer: Questo repository è pubblicato esclusivamente a scopo educativo e difensivo. Usalo solo su sistemi di tua proprietà o per i quali hai esplicita autorizzazione al test.

Contesto

Dirty Frag (CVE-2026-43284) è una vulnerabilità di corruzione della page cache del kernel Linux nel percorso di ricezione xfrm/ESP. Nel percorso interessato, esp_input() può saltare skb_cow_data() per uno skb non lineare senza frag_list, consentendo a crypto_authenc_esn_decrypt() di memorizzare 4 byte di dati controllati dall'attaccante in una pagina della page cache raggiunta tramite splice().

Il file su disco non viene modificato. I byte corrotti risiedono nella page cache del kernel e vengono osservati dai successivi lettori della stessa pagina di file in cache.

Per tutti i dettagli sulla vulnerabilità originale, vedi V4bel/dirtyfrag.

Principio di Attacco

L'attacco sfrutta tre proprietà che coesistono comunemente nei cluster Kubernetes:

  1. Corruzione della page cache del kernel (CVE-2026-43284) — un processo non privilegiato (con supporto user namespace) può sovrascrivere le pagine in cache in memoria di qualsiasi file che può aprire in sola lettura, tramite la race di splice xfrm/ESP.
  2. Condivisione dei livelli di immagine — i runtime container (containerd, CRI-O) usano filesystem overlay in cui livelli di immagine identici mappano alle stesse pagine della page cache tra container.
  3. DaemonSet privilegiati — molti cluster eseguono DaemonSet con privilegi elevati (privileged: true, hostNetwork: true, ampie capability, ecc.) che eseguono periodicamente binari dalla propria immagine.

Quando queste condizioni si allineano, un pod non privilegiato può corrompere un binario in un livello di immagine condiviso, e un DaemonSet privilegiato sullo stesso nodo eseguirà inconsapevolmente il binario corrotto con i suoi privilegi elevati — ottenendo piena esecuzione di codice a livello di nodo.

Il target della vulnerabilità NON è limitato a kube-proxy. Qualsiasi DaemonSet privilegiato (agenti di monitoraggio, plugin CNI, collector di log, agenti di sicurezza, ecc.) la cui immagine container condivide livelli con un'immagine controllata dall'attaccante è un target valido.

Differenza da Copy Fail

Questo progetto è ispirato al modello di sfruttamento Kubernetes documentato nel Copy Fail Kubernetes PoC, ma usa un primitivo del kernel diverso.

ProprietàCopy FailDirty Frag
CVECVE-2026-31431CVE-2026-43284
Percorso kernelAF_ALG + splice()xfrm/ESP + splice()
Requisito namespaceNon richiestoRichiede user namespace
Capability principale usataNessuna nel container inizialeCAP_NET_ADMIN all'interno del nuovo net namespace
Modulo rilevantealgif_aeadesp4
Distinzione praticaFallisce se il vettore AF_ALG è bloccatoAncora rilevante quando AF_ALG non è disponibile ma ESP/user namespace sono abilitati

Come Funziona

La catena di attacco ha tre fasi: corruzione della page cache, propagazione tra container ed esecuzione privilegiata.

1. Patch della Page Cache tramite xfrm/ESP

Il binario PoC esegue la seguente sequenza da un container non privilegiato:

  1. Entra in nuovi user e network namespace con unshare(CLONE_NEWUSER | CLONE_NEWNET).
  2. Registra molte Security Association xfrm i cui campi di sequenza elevati codificano chunk di payload da 4 byte.
  3. Apre un binario target dal livello di immagine condiviso in sola lettura.
  4. Usa splice() e input ESP appositamente costruiti per attivare il percorso vulnerabile del kernel.
  5. Ripete il primitivo finché i contenuti della page cache del binario target non contengono il payload incorporato.

Non è richiesto alcun permesso di scrittura sul file target. Il file su disco rimane invariato — solo la page cache in memoria viene corrotta.

2. Propagazione tra Container tramite Livelli Condivisi

I runtime container servono le letture dai livelli inferiori overlay tramite la page cache del kernel. Se il container PoC e kube-proxy condividono lo stesso file di livello inferiore, entrambi osservano le stesse pagine in cache.

L'immagine EKS in questo repository è costruita da:

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

Quella base è scelta per corrispondere al livello della toolchain userspace kube-proxy EKS usato nell'ambiente validato.

3. Esecuzione Privilegiata da kube-proxy

Quando kube-proxy esegue successivamente un binario della famiglia iptables patchato, il kernel carica le pagine in cache corrotte. Il payload PoC monta il dispositivo root dell'host e scrive un file marcatore in /root/res.

Il contenuto atteso del marcatore è:

[*] success

Diagramma del Flusso di Attacco

┌──────────────────────────────┐     ┌────────────────────────┐     ┌──────────────────────────┐
│  Pod PoC                     │     │  Page Cache del Kernel │     │  DaemonSet kube-proxy    │
│  container non privilegiato  │     │                        │     │  container privilegiato  │
│                              │     │                        │     │                          │
│  1. unshare user+net ns      │     │                        │     │                          │
│  2. installa SA xfrm         │     │                        │     │                          │
│  3. splice binario target    │────▶│  binario livello       │────▶│  esegue binario patchato │
│     tramite percorso ESP     │     │  condiviso page cache  │     │  payload gira con        │
│                              │     │  patchato              │     │  privilegi di nodo       │
└──────────────────────────────┘     └────────────────────────┘     └──────────────────────────┘

Ambiente Validato

Amazon EKS

Scarica lo strumento