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
CVE-2024-21626-runcPOC — Preuve de concept pour CVE-2024-21626, une vulnérabilité d'évasion de conteneur dans runc. Inclut des scripts de vérification, deux méthodes d'exploitation (reverse shell via cron et remplacement de commande) et une analyse de la cause racine et du correctif. | Kitploit
Outils/GitHubGitHub/v0wkeep3r/cve-2024-21626-runcpoc
Escalade de PrivilègesSécurité des ConteneursAnalyse des VulnérabilitésExploitationSécurité CloudÉvasion de Conteneur
GitHubv0wkeep3r/cve-2024-21626-runcpoc

CVE-2024-21626-runcPOC

Preuve de concept pour CVE-2024-21626, une vulnérabilité d'évasion de conteneur dans runc. Inclut des scripts de vérification, deux méthodes d'exploitation (reverse shell via cron et remplacement de commande) et une analyse de la cause racine et du correctif.

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 →
Partager
Voir le dépôt
617il y a 2 ansPas encore vérifié

[Reproduction de vulnérabilité] CVE-2024-21626 vulnérabilité d'évasion de docker runc

1. Introduction à la vulnérabilité

Nom de la vulnérabilitéVulnérabilité d'évasion de docker runc
Identifiant de la vulnérabilitéCVE-2024-21626
Date de divulgation2024-01-31
Caractéristique/
Versions concernéesrunc @ [v1.0.0-rc93,1.1.11]

2. Exploitation de la vulnérabilité & POC/EXP

Conditions d'exploitation un peu strictes : une interaction de la victime est requise ; personnellement, je trouve cela un peu anecdotique :

  1. Créer un conteneur à partir d'une image malveillante de l'attaquant (y compris certains réglages du répertoire de travail, etc.)
  2. L'attaquant peut contrôler le conteneur et exécuter des commandes.

Vérification de l'existence de la vulnérabilité et obtention du descripteur de fichier :

root@kitploit:~
git clone https://github.com/V0WKeep3r/CVE-2024-21626-runcPOC.git
cd CVE-2024-21626-runcPOC
bash verify.sh

Comme le montre la figure ci-dessous, la vulnérabilité existe et le descripteur de fichier est /proc/self/fd8 verify.sh peut déterminer la valeur fd précise correspondant à l'environnement de la machine actuelle ; si fd n'est pas 8, il faut modifier WORKDIR dans le Dockerfile pour y mettre la valeur correspondante, ou la spécifier avec -w dans docker run.

Vérification de l'évasion / élévation de privilèges : Ici, je me rapproche davantage des conditions réelles : poc.sh utilise une tâche planifiée pour obtenir un reverse shell. poc2.sh utilise la méthode de remplacement de commande (remarque : avec cette méthode, il faut sauvegarder les fichiers à l'avance afin d'éviter les difficultés de restauration).

root@kitploit:~
# 需要确认定时任务文件存在,不存在可以创建写,但是那样不能触发定时任务
# 只有crontab -e创建的,在crontab组的文件才会被定时执行。
docker build . -t poc1
docker run -it --rm poc1 bash /poc.sh

POC2:

root@kitploit:~
docker build . -t poc2
docker run -it --rm poc2 bash /poc.sh

# 另起一个terminal
/bin/bash.copy

3. Analyse du principe de la vulnérabilité

Je n'ai pas une compréhension complète ; en combinant avec le correctif, on peut en saisir l'essentiel.

Au cours du processus docker exec ou docker run, la fonction execve de runc est appelée, mais lors du processus exec de runc, les descripteurs de fichier fd ne sont pas fermés, ce qui entraîne également la fuite des descripteurs de fichier de la machine hôte dans l'environnement du conteneur. L'utilisateur peut, via ce descripteur de fichier, lire et écrire les fichiers de la machine hôte, réalisant ainsi l'évasion du conteneur.

4. Solution de correction / analyse du correctif

Solution de correction Mettez à niveau runc vers la version 1.12 ou supérieure. Lien officiel de runc : https://github.com/opencontainers/runc/releases

Analyse du correctif commit du diff : https://github.com/opencontainers/runc/commit/2a4ed3e75b9e80d93d1836a9c4c1ebfa2b78870e Fermeture rapide des fd internes avant execve init_linux.go : vérifie, après chdir, si le cwd (répertoire de travail actuel) se trouve à l'intérieur du conteneur

F. Liens de référence

  1. Description de la vulnérabilité : https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv
  2. Correctif : https://github.com/opencontainers/runc/commit/2a4ed3e75b9e80d93d1836a9c4c1ebfa2b78870e
Télécharger l’outil