
Этот репозиторий содержит Dockerfile для сборки и воспроизведения Shellshock.
CVSS 10.0. Bash некорректно обрабатывает последующие команды после определения функции, хранящегося в переменной окружения, выполняя их во время инициализации оболочки.
Переменные окружения Bash могут кодировать определения функций: x='() { :; }' Когда bash импортирует эту переменную и инициализируется, он разбирает тело функции, но не останавливает разбор после закрывающей скобки, выполняя любой следующий текст как команду.
docker build -t shellshock-poc .
docker run --rm -it shellshock-poc env x='() { :;}; echo VULNERABLE' bash -c "echo test"
VULNERABLE test
[исправленный Dockerfile / вывод здесь]
CGI-скрипты, вызывающие bash с заголовками, контролируемыми атакующим (например, User-Agent), устанавливают эти заголовки как переменные окружения — контролируемая атакующим переменная окружения, попадающая в инициализацию bash, является фактической поверхностью атаки, а не просто интерактивное использование оболочки.
Официальный патч обеспечивает остановку разбора на закрывающей скобке определения функции. CVE-2014-7169 охватывает обход неполного исправления.