
Este contém o Dockerfile para construir e reproduzir o shellshock.
CVSS 10.0. O Bash analisa incorretamente comandos posteriores a uma definição de função armazenada em uma variável de ambiente, executando-os durante a inicialização do shell.
As variáveis de ambiente do Bash podem codificar definições de função: x='() { :; }' Quando o bash importa isso como uma variável de ambiente e inicializa, ele analisa o corpo da função, mas não para a análise após a chave de fechamento, executando qualquer texto que venha em seguida como um comando.
docker build -t shellshock-poc .
docker run --rm -it shellshock-poc env x='() { :;}; echo VULNERABLE' bash -c "echo test"
VULNERABLE test
[Dockerfile corrigido / saída aqui]
Scripts CGI que chamam o bash com cabeçalhos controlados por atacantes (ex.: User-Agent) têm esses cabeçalhos definidos como variáveis de ambiente — a variável de ambiente controlada por um atacante que atinge a inicialização do bash é a superfície de ataque real, não apenas o uso interativo do shell.
O patch oficial (upstream) garante que a análise pare na chave de fechamento da definição de função. O CVE-2014-7169 cobre um bypass subsequente à correção incompleta.