Что не так с моим кодом ниже? Я загружаю и исправляю патч до 18, который, как я понимаю, является патчем для уязвимости shellchock. Но я все еще получаю уязвимость при запуске Bash.
Скачать исходный код и патчи
wget http://ftp.gnu.org/gnu/bash/bash-3.1.tar.gz
wget http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-00{1..9} http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-0{10..18}
Распакуйте и примените патчи
tar -xvf bash-3.1.tar.gz
cd bash-3.1
find ../bash31-??? -exec /bin/sh -c 'patch -p0 <{}' \;
(Asside: приведенная выше команда find просто возвращает отсортированный список из-за сбоев в оболочке, но я знаю, что это не всегда верно для поиска find)
Конфиг, Сделать, Сделать Установить
./configure --prefix /tmp/bash_patched && make && make install
Запустить баш
/tmp/bash_patched/bin/bash
Следующее должно вернуть /tmp/bash_patched/bin/bash 3.1.18(1)-release
echo $BASH $BASH_VERSION
Сделать тест на удар
env X="() { :;} ; echo busted" /bin/sh -c "echo stuff"
Для меня это возвращается
busted
stuff