Skip to content
KitploitKITPLOIT
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
leaky-vessels-dynamic-detector — Rilevatore runtime basato su eBPF per le vulnerabilità di fuga dai container in runc e Docker, che monitora le syscall e le chiamate al daemon Docker per rilevare lo sfruttamento di CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 e CVE-2024-23653 durante le build e il runtime. | Kitploit
Strumenti/GitHubGitHub/snyk/leaky-vessels-dynamic-detector
Strumenti DifensiviSicurezza dei ContenitoriAnalisi Dinamica (Sandboxing)Analisi delle VulnerabilitàSicurezza CloudRilevamento IntrusioniArchived
GitHubsnyk/leaky-vessels-dynamic-detector

leaky-vessels-dynamic-detector

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 →

Rilevatore runtime basato su eBPF per le vulnerabilità di fuga dai container in runc e Docker, che monitora le syscall e le chiamate al daemon Docker per rilevare lo sfruttamento di CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 e CVE-2024-23653 durante le build e il runtime.

Vedi Repository
10581 anno faRevisionato da Kitploit
Condividi

AVVISO

Questo repository è ora archiviato.

Non verranno più apportati aggiornamenti al codice e potrebbe essere insicuro o addirittura non funzionante nel momento in cui leggerai questo avviso. Consideralo solo per scopi storici e trattalo con cautela.

Leaky Vessels Dynamic Detector

snyk-oss-category

In questo repository troverai un'implementazione di riferimento per un rilevamento runtime basato su eBPF per le vulnerabilità di runc e Docker CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 e CVE-2024-23653. Si aggancia alle syscall di Linux (ad es., chdir, mount) e alle invocazioni di funzioni del daemon Docker e le associa alle build Docker e ai processi dei container per identificare lo sfruttamento di queste vulnerabilità. Per un approccio basato sull'analisi statica, consulta questo.

runc process.cwd & Leaked fds Container Breakout [CVE-2024-21626]

CVE-2024-21626 è una vulnerabilità nel runtime container runc che consente a un attaccante di evadere dall'isolamento del container e ottenere una RCE completa come root tramite un'immagine appositamente creata che sfrutta un problema nella gestione dell'istruzione WORKDIR. Poiché esiste una condizione di "race" tra il momento in cui alcuni descrittori di file verso l'host vengono aperti e chiusi, un attaccante può creare un Dockerfile con la seguente istruzione WORKDIR /proc/self/fd/[ID] (con ID che è un descrittore di file dipendente dal sistema) che punterà al file system della macchina host sottostante. Questo può essere sfruttato quando si esegue:

  1. docker build - In 2 casi:
    • Quando il Dockerfile in fase di build contiene l'istruzione che attiva lo sfruttamento.
    • Quando il Dockerfile in fase di build fa riferimento a un'immagine base tramite l'istruzione FROM che contiene un comando ONBUILD che attiva lo sfruttamento, ad es. ONBUILD WORKDIR /proc/self/fd/[ID]. L'istruzione ONBUILD inietta il comando non nell'immagine che lo contiene ma nell'immagine che la usa come immagine base. Ciò significa che se un'immagine base è compromessa o intenzionalmente dannosa, ad es. ospitata su Dockerhub o altri registry pubblici di container, lo sfruttamento è possibile anche se nulla cambia nell'immagine che il comando docker build effettivamente costruisce.
  2. docker run

Pertanto, questa vulnerabilità può mettere a rischio sia i sistemi di build che gli ambienti di produzione.

Buildkit Mount Cache Race: Build-time Race Condition Container Breakout [CVE-2024-23651]

CVE-2024-23651 è una vulnerabilità in Docker in cui un comando RUN utilizza il flag --mount=cache. Esiste una vulnerabilità time-of-check/time-of-use (TOCTOU) tra il controllo che una directory source esista sull'host del daemon Docker e l'effettiva chiamata alla syscall mount. Un attaccante è in grado di creare un Dockerfile che posizionerebbe un symlink tra queste due chiamate per indurre un bind mount arbitrario che risulta in una RCE completa come root sull'host. Questa vulnerabilità riguarda solo il comando docker build.

Buildkit GRPC SecurityMode Privilege Check [CVE-2024-23653]

CVE-2024-23653 è una vulnerabilità in Docker che si verifica quando un generatore LLB Buildkit personalizzato viene utilizzato con la direttiva # syntax. Il generatore può utilizzare le chiamate GRPC Client.NewContainer e Container.Start per eseguire un nuovo container durante la build. L'argomento StartRequest.SecurityMode non viene verificato adeguatamente rispetto alle aspettative di privilegio del daemon docker o della chiamata docker build, il che consente al chiamante GRPC di creare un container privilegiato durante la build. Questo nuovo container privilegiato può quindi essere evaso per ottenere una RCE completa come root sull'host di build. Questa vulnerabilità riguarda solo il comando docker build.

Buildkit Build-time Container Teardown Arbitrary Delete [CVE-2024-23652]

CVE-2024-23652 è una vulnerabilità di eliminazione arbitraria in Docker. Quando RUN --mount viene utilizzato in un Dockerfile, se la destinazione del mount non esiste verrà creata per quell'ambiente. Quando l'esecuzione termina, questa directory creata verrà ripulita. Se il comando in esecuzione modifica il percorso utilizzato per il mount in un collegamento simbolico, la procedura di pulizia attraverserà questo collegamento simbolico e potenzialmente ripulirà directory arbitrarie nel file system root dell'host. Questa vulnerabilità riguarda solo il comando docker build.

Installazione e utilizzo

Rilevamento eBPF in fase di build

Il rilevamento in fase di build si applica a tutte e 4 le vulnerabilità.

  1. Compila il binario del rilevatore: GOOS=linux GOARCH={{amd64/arm64}} go build.
  2. Esegui il binario compilato in background usando sudo (come richiesto da eBPF) nel tuo ambiente di build (ad es., sudo ebpf-detector &).
  3. Se viene rilevato uno sfruttamento di una delle vulnerabilità, vedrai Leaky vessels vulnerability detected stampato su STDOUT, insieme al rispettivo CVE, nome della vulnerabilità e ulteriori dati forensi.

Rilevamento eBPF runtime Kubernetes

Il rilevamento runtime si applica solo alla vulnerabilità WORKDIR (CVE-2024-21626).

  1. Costruisci l'immagine container del rilevatore usando il Dockerfile fornito e pubblicala su un registry di immagini.
  2. Compila il valore image nel file detector.yaml (contrassegnato con TODO).
  3. Esegui il rilevatore come DaemonSet nel tuo cluster Kubernetes eseguendo kubectl apply -f detector.yml.
  4. Se viene rilevato uno sfruttamento della vulnerabilità WORKDIR, vedrai Leaky Vessels vulnerability detected stampato nei log dei pod del DaemonSet.

Test

I test unitari devono essere eseguiti con sudo, poiché si basano su eBPF: sudo go test ebpf-detector/....

Limitazioni

  • Richiede accesso root / esecuzione di container in modalità privilegiata (richiesto da eBPF).
  • Lo sfruttamento runtime di WORKDIR (CVE-2024-21626) avviene durante l'inizializzazione del container, quindi non verrà rilevato sui container in esecuzione. Il rilevamento presuppone inoltre che il runtime container sia containerd.
  • I rilevamenti di Buildkit Mount Cache Race (CVE-2024-23651) e Buildkit Build-time Container Teardown Arbitrary Delete (CVE-2024-23652) si basano sul timing e potrebbero avere falsi negativi a causa di condizioni di race.
  • Testato nei seguenti ambienti:
    • Ubuntu 20.04/22.04 (AMD64)
    • GKE (Ubuntu e Alpine Linux, AMD64)
    • EKS (Ubuntu e Alpine Linux, AMD64) - supportato dalla versione EKS >= 1.25
    • Ubuntu 22.04 (ARM64)

Problemi

Per un elenco aggiornato di bug e problemi consulta i problemi del progetto.

Contributi

I contributi sono benvenuti. Consulta CONTRIBUTING.md per i dettagli.

Licenza

Leaky Vessels Dynamic Detector è sotto licenza Apache-2.0. Consulta LICENSE per maggiori informazioni.

Scarica lo strumento