
payload.c 内の HOST を編集し、make でコンパイルします。nc を起動し、コンテナ内で pwn.sh を実行します。
/usr/bin/docker-runc バイナリをホスト上でペイロードで上書きします。また、コンテナ内の /bin/sh も上書きします。docker exec <id> /bin/sh が実行された場合にのみ動作することをテストしただけです。エクスプロイトを作成する際に使用した元のコミットはここです。
実際にこの脆弱性を発見した研究者たちは、解説をここに公開しています。
私のものとは動作が異なる元のエクスプロイト CVE_2019_5736_tar_xz を追加しました。それを教えてくれた cyphar に感謝します。