Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
leaky-vessels-dynamic-detector — Auf eBPF basierender Laufzeitdetektor für Container-Escape-Schwachstellen in runc und Docker, der Syscalls und Docker-Daemon-Aufrufe überwacht, um die Ausnutzung von CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 und CVE-2024-23653 während Builds und zur Laufzeit zu erkennen. | Kitploit
Tools/GitHubGitHub/snyk/leaky-vessels-dynamic-detector
DefensivwerkzeugeContainer-SicherheitDynamische Analyse (Sandboxing)SchwachstellenanalyseCloud-SicherheitEinbruchserkennungArchived
GitHubsnyk/leaky-vessels-dynamic-detector

leaky-vessels-dynamic-detector

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Auf eBPF basierender Laufzeitdetektor für Container-Escape-Schwachstellen in runc und Docker, der Syscalls und Docker-Daemon-Aufrufe überwacht, um die Ausnutzung von CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 und CVE-2024-23653 während Builds und zur Laufzeit zu erkennen.

Repository anzeigen
1058vor 1 JahrVon Kitploit geprüft
Teilen

WARNUNG

Dieses Repository ist jetzt archiviert.

Es werden keine weiteren Updates am Code vorgenommen, und er könnte zum Zeitpunkt, an dem Sie diesen Hinweis lesen, unsicher oder sogar defekt sein. Betrachten Sie es nur zu historischen Zwecken und behandeln Sie es mit Vorsicht.

Leaky Vessels Dynamic Detector

snyk-oss-category

In diesem Repository finden Sie eine Referenzimplementierung für eine eBPF-basierte Laufzeiterkennung für die runc- und Docker-Schwachstellen CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 und CVE-2024-23653. Sie hakt in Linux-Syscalls (z. B. chdir, mount) und Funktionsaufrufe des Docker-Daemons ein und verknüpft diese mit Docker-Builds und Container-Prozessen, um Ausnutzungen dieser Schwachstellen zu identifizieren. Für einen Ansatz auf Basis statischer Analyse siehe Repository.

dieses

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

CVE-2024-21626 ist eine Schwachstelle in der runc-Container-Laufzeitumgebung, die es einem Angreifer ermöglicht, aus der Container-Isolation auszubrechen und über ein präpariertes Image, das ein Problem in der Verarbeitung der WORKDIR-Anweisung ausnutzt, vollständige Root-RCE zu erlangen. Da es eine „Race“-Bedingung zwischen dem Öffnen und Schließen einiger Dateideskriptoren zum Host gibt, kann ein Angreifer eine Dockerfile mit der folgenden Anweisung WORKDIR /proc/self/fd/[ID] erstellen (wobei ID ein systemabhängiger Dateideskriptor ist), die auf das Dateisystem der zugrunde liegenden Host-Maschine verweist. Dies kann ausgenutzt werden bei:

  1. docker build – In 2 Fällen:
    • Wenn die zu erstellende Dockerfile die auslösende Anweisung für den Exploit enthält.
    • Wenn die zu erstellende Dockerfile über die FROM-Anweisung auf ein Basis-Image verweist, das einen ONBUILD-Befehl enthält, der den Exploit auslöst, z. B. ONBUILD WORKDIR /proc/self/fd/[ID]. Die ONBUILD-Anweisung injiziert den Befehl nicht in das Image, das ihn enthält, sondern in das Image, das es als Basis-Image verwendet. Das bedeutet, dass eine Ausnutzung möglich ist, selbst wenn sich nichts an dem Image ändert, das der docker build-Befehl tatsächlich erstellt, sofern ein Basis-Image kompromittiert oder absichtlich bösartig ist, z. B. auf Dockerhub oder anderen öffentlichen Container-Registries gehostet wird.
  2. docker run

Somit kann diese Schwachstelle sowohl Build-Systeme als auch Produktionsumgebungen gefährden.

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

CVE-2024-23651 ist eine Schwachstelle in Docker, bei der ein RUN-Befehl das Flag --mount=cache verwendet. Es gibt eine Time-of-Check/Time-of-Use-Schwachstelle (TOCTOU) zwischen der Prüfung, ob ein source-Verzeichnis auf dem Host des Docker-Daemons existiert, und dem tatsächlichen Aufruf des mount-Syscalls. Ein Angreifer kann eine Dockerfile erstellen, die zwischen diesen beiden Aufrufen einen Symlink platziert, um einen beliebigen Bind-Mount zu induzieren, der zu vollständiger Root-RCE auf dem Host führt. Diese Schwachstelle betrifft nur den Befehl docker build.

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

CVE-2024-23653 ist eine Schwachstelle in Docker, die auftritt, wenn ein benutzerdefinierter Buildkit-LLB-Generator mit der # syntax-Direktive verwendet wird. Der Generator kann die GRPC-Aufrufe Client.NewContainer und Container.Start verwenden, um während des Builds einen neuen Container auszuführen. Das Argument StartRequest.SecurityMode wird nicht angemessen gegen die Privilegien-Erwartungen des Docker-Daemons oder des docker build-Aufrufs geprüft, was es dem GRPC-Aufrufer ermöglicht, während des Builds einen privilegierten Container zu erstellen. Aus diesem neuen privilegierten Container kann anschließend ausgebrochen werden, um vollständige Root-RCE auf dem Build-Host zu erlangen. Diese Schwachstelle betrifft nur den Befehl docker build.

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

CVE-2024-23652 ist eine Schwachstelle für beliebiges Löschen in Docker. Wenn RUN --mount in einer Dockerfile verwendet wird und das Ziel des Mounts nicht existiert, wird es für diese Umgebung erstellt. Wenn die Ausführung abgeschlossen ist, wird dieses erstellte Verzeichnis bereinigt. Wenn der ausgeführte Befehl den für den Mount verwendeten Pfad in einen symbolischen Link ändert, durchläuft die Bereinigungsprozedur diesen symbolischen Link und kann potenziell beliebige Verzeichnisse im Root-Dateisystem des Hosts bereinigen. Diese Schwachstelle betrifft nur den Befehl docker build.

Installation & Verwendung

eBPF-Erkennung zur Build-Zeit

Die Erkennung zur Build-Zeit gilt für alle 4 Schwachstellen.

  1. Kompilieren Sie die Detektor-Binärdatei: GOOS=linux GOARCH={{amd64/arm64}} go build.
  2. Führen Sie die kompilierte Binärdatei mit sudo (wie von eBPF gefordert) im Hintergrund in Ihrer Build-Umgebung aus (d. h. sudo ebpf-detector &).
  3. Wenn eine Ausnutzung einer der Schwachstellen erkannt wird, sehen Sie Leaky vessels vulnerability detected auf STDOUT ausgegeben, zusammen mit der jeweiligen CVE, dem Schwachstellennamen und zusätzlichen forensischen Informationen.

Kubernetes-Laufzeit-eBPF-Erkennung

Die Laufzeiterkennung gilt nur für die WORKDIR-Schwachstelle (CVE-2024-21626).

  1. Erstellen Sie das Container-Image des Detektors mit der bereitgestellten Dockerfile und pushen Sie es in eine Image-Registry.
  2. Füllen Sie den Wert image in der detector.yaml aus (mit TODO markiert).
  3. Führen Sie den Detektor als DaemonSet in Ihrem Kubernetes-Cluster aus, indem Sie kubectl apply -f detector.yml ausführen.
  4. Wenn eine Ausnutzung der WORKDIR-Schwachstelle erkannt wird, sehen Sie Leaky Vessels vulnerability detected in den Pod-Logs des DaemonSets ausgegeben.

Testen

Unit-Tests müssen mit sudo ausgeführt werden, da sie auf eBPF basieren: sudo go test ebpf-detector/....

Einschränkungen

  • Erfordert Root-Zugriff / Ausführung von Containern im privilegierten Modus (von eBPF gefordert).
  • Die Laufzeit-Ausnutzung von WORKDIR (CVE-2024-21626) erfolgt während der Container-Initialisierung, daher wird sie bei laufenden Containern nicht erkannt. Die Erkennung setzt außerdem voraus, dass die Container-Laufzeitumgebung containerd ist.
  • Die Erkennungen für Buildkit Mount Cache Race (CVE-2024-23651) und Buildkit Build-time Container Teardown Arbitrary Delete (CVE-2024-23652) sind zeitbasiert und können aufgrund von Race Conditions falsch-negative Ergebnisse aufweisen.
  • Getestet in den folgenden Umgebungen:
    • Ubuntu 20.04/22.04 (AMD64)
    • GKE (Ubuntu und Alpine Linux, AMD64)
    • EKS (Ubuntu und Alpine Linux, AMD64) – unterstützt durch EKS-Version >= 1.25
    • Ubuntu 22.04 (ARM64)

Probleme

Eine aktualisierte Liste der Bugs und Probleme finden Sie in den Projekt-Issues.

Mitwirken

Beiträge sind willkommen. Details finden Sie in CONTRIBUTING.md.

Lizenz

Der Leaky Vessels Dynamic Detector steht unter der Apache-2.0-Lizenz. Weitere Informationen finden Sie in LICENSE.

Tool herunterladen