Влияет ли ошибка Shellshock Bash на ZSH?
Является ли обновление Bash единственным решением?
bash
zsh
shellshock
marflar
источник
источник
Ответы:
Нет, это не влияет на ZSH.
Вы по-прежнему ДОЛЖНЫ обновлять bash, так как большинство системных сценариев написаны для bash и уязвимы для ошибки «shellshock».
Чтобы проверить свой ZSH, сделайте это:
Что именно делает этот код?
env x='() { :;}; echo vulnerable'
создает переменную окружения с известной ошибкой, используя команду в конце переменнойzsh -c 'echo hello'
запускает оболочку ZSH с простым приветом (и оценивает все переменные env, включая x )Если вы видите вывод:
Тогда ваш ZSH уязвим. Мой (5.0.2) не является:
источник
bash
- плохая привычка для системных утилит, потому что bash не гарантированно будет установлен;/bin/sh
является стандартной оболочкой и должна быть корректным интерпретатором оболочки POSIX.env x='() { :;}; echo vulnerable' sh -c 'echo hello'
По этой ссылке :
Вы можете определить, уязвимы ли вы к исходной проблеме в CVE-2014-6271, выполнив этот тест:
Если вы видите слово уязвимое в выходных данных этой команды, ваш bash уязвим, и вам следует обновить его. Ниже приведена уязвимая версия от OS X 10.8.5:
Следующий вывод является примером неуязвимой версии bash.
источник
env X='() { (a)=>\' bash -c "echo date"
будет, на исправленном bash и, несмотря на большое количество ошибок, создать файл с именемecho
date. Я не хочу знать почему.zsh
вовсе не используетbash
в своей основе.bash
явно вызывается в ваших примерах. Не имеет значения, какую оболочку вы используете для запуска этих строк. Эта уязвимость касается только что запущенной оболочки bash, а не оболочки, из которой она запускается.bash
в примерах на$SHELL
.Двоичный файл не затронут
Он не влияет
zsh
как исполняемый файл оболочки, потому что его исходный код никогда не содержал ошибку.Есть много сходств между
bash
иzsh
, но они были реализованы независимо друг от друга. Одна и та же функция реализована двумя различными способами и, что более важно в этом контексте, обычно с разными ошибками.Но интерактивное использование
Косвенно это влияет на работу в интерактивном режиме с
zsh
оболочкой в терминале почти так же, как на работу с нимbash
.Использование
bash
настолько распространено, что вряд ли можно этого не называть.Слишком много применений, чтобы избежать
zsh
, но на самом деле содержатbash
.#!/bin/bash
для указанияbash
в качестве интерпретатора.многие команды, которые вы предполагаете, являются двоичными, но являются сценариями оболочки, некоторые из них используют
bash
.во многих местах, где оболочка выполняется явно,
bash
может использоваться и, возможно, требуется.xargs
команды илиgit
псевдонимы, включающие аргументыисточник
Нет, Shellshock не влияет на zsh напрямую.
Однако во многих средах, которые используют zsh в качестве оболочки по умолчанию, также установлен bash. Любая оболочка, включая zsh, может быть использована для создания скомпрометированной оболочки bash:
Чтобы защититься от этого, вы должны исправить, удалить или отключить любые избыточные версии bash. Вы можете отключить установку системы bash
chmod
:Однако для сценариев характерно явное обращение к bash. Сценарии, которые делают это, и те, которые используют специфичные для bash функции сценариев, потерпят неудачу, если bash недоступен. Ямочный ремонт - лучшее решение.
источник
importing function definition
"? Я также проверил с помощью инъекции ssh-сервера:ssh testuser@localhost '() { :;}; echo "$SHELL"'
где я установилtestuser
оболочку входа в систему/bin/zsh
, и она повторяется/bin/zsh