Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
Copy-Fail-CVE-2026-31431-Kubernetes-PoC — PoC: fuga da container completamente non privilegiata a esecuzione di codice a livello di nodo su Kubernetes tramite CVE-2026-31431 corruzione della cache delle pagine + livelli di immagini condivisi. Validato su Alibaba Cloud ACK, Amazon EKS e Google GKE. | Kitploit
Strumenti/GitHubGitHub/percivalll/copy-fail-cve-2026-31431-kubernetes-poc
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSicurezza CloudPaper e RicercaApprendimento e FormazioneEscape dal Container
GitHubpercivalll/copy-fail-cve-2026-31431-kubernetes-poc

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

Copy-Fail-CVE-2026-31431-Kubernetes-PoC

PoC: fuga da container completamente non privilegiata a esecuzione di codice a livello di nodo su Kubernetes tramite CVE-2026-31431 corruzione della cache delle pagine + livelli di immagini condivisi. Validato su Alibaba Cloud ACK, Amazon EKS e Google GKE.

Vedi Repository
18428495 mesi faRevisionato da Kitploit

Copy Fail (CVE-2026-31431) — Proof of Concept per l'Escape da Container Kubernetes

Un proof-of-concept che dimostra come un container completamente non privilegiato possa ottenere esecuzione di codice a livello di nodo su Kubernetes sfruttando il bug di corruzione della page-cache del kernel Linux CVE-2026-31431 tramite layer di immagini condivise.

La primitiva di attacco principale è: qualsiasi DaemonSet privilegiato che condivide layer di immagini con un container controllato dall'attaccante può essere armato per l'escape dal container. Questo PoC utilizza kube-proxy come esempio concreto, ma la tecnica si generalizza a qualsiasi carico di lavoro privilegiato nel cluster.

Validato su Alibaba Cloud ACK, Amazon EKS e Google GKE — un pod non privilegiato scrive [*] success nel filesystem dell'host tramite il DaemonSet privilegiato kube-proxy:

Alibaba Cloud ACK (kernel 6.6.88)Amazon EKS (kernel 6.12.79)Google GKE (kernel 6.12.68)
ACKEKSGKE

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

Contesto

CVE-2026-31431 ("Copy Fail") è una vulnerabilità del kernel Linux nel percorso Copy-on-Write (CoW) della page-cache. Una race condition AF_ALG splice permette a un processo non privilegiato di corrompere le pagine della page-cache di un file sola lettura. La corruzione persiste nella cache delle pagine del kernel ed è visibile a qualsiasi processo che successivamente legge o esegue il file — inclusi i processi in altri container o sull'host.

Per tutti i dettagli sulla vulnerabilità originale, consulta copy.fail.

Principio di Attacco

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

  1. Corruzione della page-cache del kernel (CVE-2026-31431) — un processo non privilegiato può sovrascrivere le pagine cache in memoria di qualsiasi file che può aprire in sola lettura.
  2. Condivisione dei layer di immagine — i runtime dei container (containerd, CRI-O) utilizzano filesystem overlay dove layer 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, capacità estese, ecc.) che eseguono periodicamente binari dalla loro immagine.

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

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

Come Funziona

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

1. Corruzione della Page-Cache tramite Race Condition AF_ALG Splice

Il sottosistema AF_ALG (crittografia) del kernel espone un'interfaccia basata su socket per operazioni crittografiche in spazio utente. L'exploit abusa di una race condition nel modo in cui il kernel gestisce splice() da un file in un socket AF_ALG:

  1. Apri il binario target in sola lettura.
  2. Crea un socket AF_ALG AEAD associato a authencesn(hmac(sha256),cbc(aes)).
  3. Invia un piccolo chunk di payload attraverso il socket AF_ALG con MSG_MORE, dicendo al kernel di aspettarsi più dati.
  4. splice() il contenuto del file target da un fd → pipe → socket AF_ALG.
  5. A causa del bug CoW, il kernel scrive i byte del payload dell'attaccante nelle pagine della page-cache del file target invece di isolarli correttamente.

L'exploit ripete questa operazione per ogni finestra di 4 byte fino a quando tutte le pagine nella cache del binario target non vengono sovrascritte con un payload personalizzato.

Non è necessaria alcuna autorizzazione di scrittura sul file. Il file su disco rimane invariato — solo la cache delle pagine in memoria viene corrotta.

2. Propagazione Cross-Container tramite Condivisione dei Layer di Immagine

I runtime dei container utilizzano filesystem overlay. Quando due container condividono lo stesso layer di immagine, il kernel serve le letture dei loro file dalle stesse pagine della page-cache.

L'attaccante costruisce la propria immagine PoC FROM la stessa immagine base del DaemonSet privilegiato target. Poiché entrambi i container condividono lo stesso lower-dir overlay, i binari nel layer condiviso mappano a pagine della page-cache identiche.

Quando il container PoC non privilegiato corrompe la page-cache di un binario, la corruzione è immediatamente visibile al container privilegiato sullo stesso nodo — con zero comunicazione cross-container.

3. Esecuzione Privilegiata da Parte del DaemonSet Target

Quando il DaemonSet privilegiato esegue successivamente un binario corrotto (attraverso il suo normale ciclo operativo), il kernel carica le pagine corrotte della page-cache. Il payload dell'attaccante viene eseguito con tutti i privilegi del DaemonSet — includendo potenzialmente:

  • Root completo sul nodo
  • Tutte le capacità
  • Accesso ai namespace dell'host (rete, PID, mount)

Il payload in questo PoC (payload/payload.c) monta semplicemente il filesystem root dell'host e scrive un file marker in /root/res come prova dell'esecuzione di codice a livello di nodo.

Diagramma del Flusso di Attacco

┌──────────────────────────┐     ┌──────────────────────────┐
│   Container PoC          │     │   DaemonSet Privilegiato │
│   (non privilegiato)     │     │   (es. kube-proxy,       │
│                          │     │    agente di monitoraggio)│
│  1. Apri binario target  │     │                          │
│     (sola lettura)       │     │                          │
│                          │     │                          │
│  2. Race condition       │     │                          │
│     AF_ALG splice        │     │                          │
│     corrompe page-cache  │     │                          │
│          │               │     │                          │
└──────────┼───────────────┘     └──────────────────────────┘
           │                                  │
           ▼                                  │
  ┌─────────────────────┐                     │
  │  Pagine del Kernel   │                     │
  │  (Page Cache)        │                     │
  │                      │◄────────────────────┘
  │  Binario del layer   │     3. Il DaemonSet esegue il
  │  condiviso           │        binario corrotto
  │  (CORROTTO)          │        → carica pagine corrotte
  │  contiene byte       │        → payload eseguito con
  │  del payload         │           privilegi del DaemonSet
  └─────────────────────┘

Ambienti Cloud Validati

Il PoC è stato validato con successo sulle seguenti piattaforme Kubernetes gestite:

Alibaba Cloud ACK

Scarica lo strumento