
Эксплойт-доказательство концепции для CVE-2024-21626, уязвимости выхода из контейнера в runc/Docker, использующей манипуляцию файловыми дескрипторами. Только в образовательных и исследовательских целях.
Только для образовательных/исследовательских целей. Любые действия, не связанные с образованием/исследованиями, осуществляются на ваш собственный риск.
docker build . -t cve-2024-21626
docker run -it --rm cve-2024-21626 bash /poc.sh
# Откройте еще один терминал
/bin/bash.copy
Используемые файловые дескрипторы различаются в разных версиях Docker/runc. Например, в случае docker server:20.10.17 && runc version 1.1.2 используется /proc/self/fd/9. Фактический fd может изменяться в зависимости от порядка открытия файлов. В официальной документации указано, что в большинстве случаев следует использовать /proc/self/fd/7.
Изменение: В Dockerfile измените WORKDIR на соответствующее значение.
Одновременное выполнение следующих условий:
1. Возможность создания контейнера и указания команды для выполнения
2. Возможность указания образа, используемого контейнером
TODO
https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv
https://github.com/opencontainers/runc/commit/2a4ed3e75b9e80d93d1836a9c4c1ebfa2b78870e