Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
leaky-vessels-dynamic-detector — Détecteur d'exécution basé sur eBPF pour les vulnérabilités d'évasion de conteneurs dans runc et Docker, surveillant les appels système et les appels du démon Docker pour détecter l'exploitation de CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 et CVE-2024-23653 pendant les builds et l'exécution. | Kitploit
Outils/GitHubGitHub/snyk/leaky-vessels-dynamic-detector
Outils DéfensifsSécurité des ConteneursAnalyse Dynamique (Sandboxing)Analyse des VulnérabilitésSécurité CloudDétection d'IntrusionArchived
GitHubsnyk/leaky-vessels-dynamic-detector

leaky-vessels-dynamic-detector

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
1058il y a 1 anVérifié par Kitploit

À propos

Détecteur d'exécution basé sur eBPF pour les vulnérabilités d'évasion de conteneurs dans runc et Docker, surveillant les appels système et les appels du démon Docker pour détecter l'exploitation de CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 et CVE-2024-23653 pendant les builds et l'exécution.

Partager

AVERTISSEMENT

Ce dépôt est désormais archivé.

Aucune mise à jour ne sera apportée au code et il peut être non sécurisé, voire cassé, au moment où vous lirez cet avis. Considérez-le uniquement à des fins historiques et traitez-le avec précaution.

Détecteur dynamique Leaky Vessels

snyk-oss-category

Dans ce dépôt, vous trouverez une implémentation de référence pour une détection dynamique basée sur eBPF des vulnérabilités runc et Docker CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 et CVE-2024-23653. Elle s'accroche aux appels système Linux (par ex., chdir, mount) et aux invocations de fonctions du démon Docker et les associe aux builds Docker et aux processus de conteneurs afin d'identifier les exploitations de ces vulnérabilités. Pour une approche basée sur l'analyse statique, veuillez consulter .

ceci

runc process.cwd & fuite de descripteurs de fichiers — Évasion de conteneur [CVE-2024-21626]

CVE-2024-21626 est une vulnérabilité dans le runtime de conteneurs runc permettant à un attaquant de s'échapper de l'isolation du conteneur et d'obtenir un RCE root complet via une image malveillante qui exploite un problème dans la gestion de l'instruction WORKDIR. Comme il existe une condition de « course » entre le moment où certains descripteurs de fichiers vers l'hôte sont ouverts et fermés, un attaquant peut créer un Dockerfile avec l'instruction suivante WORKDIR /proc/self/fd/[ID] (avec ID étant un descripteur de fichier dépendant du système) qui pointera vers le système de fichiers de la machine hôte sous-jacente. Cela peut être exploité lors de l'exécution de :

  1. docker build - Dans 2 cas :
    • Lorsque le Dockerfile en cours de construction contient l'instruction déclenchant l'exploit.
    • Lorsque le Dockerfile en cours de construction fait référence à une image de base via l'instruction FROM qui contient une commande ONBUILD déclenchant l'exploit, par ex. ONBUILD WORKDIR /proc/self/fd/[ID]. L'instruction ONBUILD injecte la commande non pas dans l'image qui la contient mais dans l'image qui l'utilise comme image de base. Cela signifie que si une image de base est compromise ou intentionnellement malveillante, c'est-à-dire hébergée sur Dockerhub ou d'autres registres de conteneurs publics, l'exploitation est possible même si rien ne change dans l'image que la commande docker build construit réellement.
  2. docker run

Ainsi, cette vulnérabilité peut mettre en danger à la fois les systèmes de build et les environnements de production.

Course de cache de montage Buildkit : évasion de conteneur par condition de course au moment du build [CVE-2024-23651]

CVE-2024-23651 est une vulnérabilité dans Docker où une commande RUN utilise le drapeau --mount=cache. Il existe une vulnérabilité de type time-of-check/time-of-use (TOCTOU) entre la vérification qu'un répertoire source existe sur l'hôte du démon Docker et l'appel réel à l'appel système mount. Un attaquant peut concevoir un Dockerfile qui placerait un lien symbolique entre ces deux appels pour induire un montage bind arbitraire résultant en un RCE root complet sur l'hôte. Cette vulnérabilité n'affecte que la commande docker build.

Vérification des privilèges SecurityMode GRPC Buildkit [CVE-2024-23653]

CVE-2024-23653 est une vulnérabilité dans Docker qui se produit lorsqu'un générateur LLB Buildkit personnalisé est utilisé avec la directive # syntax. Le générateur peut utiliser les appels GRPC Client.NewContainer et Container.Start pour exécuter un nouveau conteneur pendant le build. L'argument StartRequest.SecurityMode n'est pas correctement vérifié par rapport aux attentes de privilèges du démon Docker ou de l'appel docker build, ce qui permet à l'appelant GRPC de créer un conteneur privilégié pendant le build. Ce nouveau conteneur privilégié peut ensuite être utilisé pour s'échapper et obtenir un RCE root complet sur l'hôte de build. Cette vulnérabilité n'affecte que la commande docker build.

Suppression arbitraire lors du démontage de conteneur au moment du build Buildkit [CVE-2024-23652]

CVE-2024-23652 est une vulnérabilité de suppression arbitraire dans Docker. Lorsque RUN --mount est utilisé dans un Dockerfile, si la cible du montage n'existe pas, elle sera créée pour cet environnement. Lorsque l'exécution se termine, ce répertoire créé sera nettoyé. Si la commande en cours d'exécution modifie le chemin utilisé pour le montage en un lien symbolique, la procédure de nettoyage traversera ce lien symbolique et pourra nettoyer des répertoires arbitraires dans le système de fichiers racine de l'hôte. Cette vulnérabilité n'affecte que la commande docker build.

Installation et utilisation

Détection eBPF au moment du build

La détection au moment du build s'applique aux 4 vulnérabilités.

  1. Compilez le binaire du détecteur : GOOS=linux GOARCH={{amd64/arm64}} go build.
  2. Exécutez le binaire compilé en arrière-plan avec sudo (comme requis par eBPF) dans votre environnement de build (c'est-à-dire sudo ebpf-detector &).
  3. Si une exploitation de l'une des vulnérabilités est détectée, vous verrez Leaky vessels vulnerability detected imprimé sur STDOUT, accompagné du CVE respectif, du nom de la vulnérabilité et d'informations forensiques supplémentaires.

Détection eBPF au moment de l'exécution Kubernetes

La détection au moment de l'exécution ne s'applique qu'à la vulnérabilité WORKDIR (CVE-2024-21626).

  1. Construisez l'image conteneur du détecteur à l'aide du Dockerfile fourni et poussez-la vers un registre d'images.
  2. Renseignez la valeur image dans le detector.yaml (marquée avec TODO).
  3. Exécutez le détecteur en tant que DaemonSet dans votre cluster Kubernetes en exécutant kubectl apply -f detector.yml.
  4. Si une exploitation de la vulnérabilité WORKDIR est détectée, vous verrez Leaky Vessels vulnerability detected imprimé dans les journaux des pods du DaemonSet.

Tests

Les tests unitaires doivent être exécutés avec sudo, car ils dépendent d'eBPF : sudo go test ebpf-detector/....

Limitations

  • Nécessite un accès root / l'exécution de conteneurs en mode privilégié (requis par eBPF).
  • L'exploitation WORKDIR au moment de l'exécution (CVE-2024-21626) se produit pendant l'initialisation du conteneur, elle ne sera donc pas détectée sur les conteneurs en cours d'exécution. La détection suppose également que le runtime de conteneurs est containerd.
  • Les détections de la course de cache de montage Buildkit (CVE-2024-23651) et de la suppression arbitraire lors du démontage de conteneur au moment du build Buildkit (CVE-2024-23652) sont basées sur le timing et peuvent présenter des faux négatifs en raison de conditions de course.
  • Testé dans les environnements suivants :
    • Ubuntu 20.04/22.04 (AMD64)
    • GKE (Ubuntu et Alpine Linux, AMD64)
    • EKS (Ubuntu et Alpine Linux, AMD64) - pris en charge par la version EKS >= 1.25
    • Ubuntu 22.04 (ARM64)

Problèmes

Pour une liste à jour des bogues et problèmes, consultez les problèmes du projet.

Contribution

Les contributions sont les bienvenues. Voir CONTRIBUTING.md pour plus de détails.

Licence

Le détecteur dynamique Leaky Vessels est sous licence Apache-2.0. Voir LICENSE pour plus d'informations.

Télécharger l’outil