Est-ce que le bogue Shellshock Bash affecte ZSH?
La mise à niveau de Bash est-elle la seule solution?
bash
zsh
shellshock
Marflar
la source
la source
Réponses:
Non, cela n'affecte pas ZSH.
Vous DEVEZ quand même mettre à jour bash car la plupart des scripts système sont écrits pour bash et vulnérables au bogue shellshock.
Pour tester votre ZSH, procédez comme suit:
Que fait exactement ce code?
env x='() { :;}; echo vulnerable'
crée une variable d'environnement avec un bogue connu en utilisant la commande à la fin de la variablezsh -c 'echo hello'
lance le shell ZSH avec un simple salut (et évalue toutes les variables env, y compris x )Si vous voyez une sortie:
Ensuite, votre ZSH est vulnérable. Mine (5.0.2) n'est pas:
la source
bash
est une mauvaise habitude pour les utilitaires système, car l'installation de bash n'est pas garantie;/bin/sh
est le shell standard et doit être un interpréteur de shell POSIX correct.env x='() { :;}; echo vulnerable' sh -c 'echo hello'
De ce lien :
Vous pouvez déterminer si vous êtes vulnérable au problème d'origine dans CVE-2014-6271 en exécutant ce test:
Si vous voyez le mot vulnérable dans le résultat de cette commande, votre bash est vulnérable et vous devez le mettre à jour. Vous trouverez ci-dessous une version vulnérable d'OS X 10.8.5:
La sortie suivante est un exemple de version de bash non vulnérable.
la source
env X='() { (a)=>\' bash -c "echo date"
sur une bash corrigée et malgré beaucoup d'erreurs générées, produira un fichier appeléecho
contenant la date. Je ne veux pas savoir pourquoi.zsh
ne pas utiliserbash
à sa base.bash
est explicitement appelé dans vos exemples. Peu importe le shell que vous utilisez pour exécuter ces lignes. Cette vulnérabilité concerne le shell bash récemment démarré, pas le shell à partir duquel il est exécuté.bash
dans les exemples par$SHELL
.Le binaire n'est pas affecté
Cela n’affecte pas
zsh
l’exécutable du shell, car son code source n’a jamais contenu l’erreur.Il existe de nombreuses similitudes entre
bash
etzsh
, mais ils ne sont pas implémentés indépendamment les uns des autres. La même fonctionnalité est implémentée de deux manières différentes et, plus important encore dans ce contexte, avec généralement des erreurs différentes.Mais l'utilisation interactive est
Indirectement, cela affecte
zsh
presque autant le travail interactif avec le shell dans un terminal que le travail avecbash
.L'utilisation de of
bash
est tellement courante que l'on peut difficilement éviter de l'appeler.Trop d'utilisations à éviter
zsh
, mais qui contiennent réellementbash
.#!/bin/bash
pour spécifierbash
comme interprète.de nombreuses commandes que vous supposez être des fichiers binaires, mais des scripts de shell, que certains utilisent
bash
.dans de nombreux endroits où un shell est exécuté explicitement,
bash
peut être utilisé et éventuellement requis.xargs
commandes complexes , ou desgit
alias impliquant des argumentsla source
Non, Shellshock n'affecte pas directement zsh.
Cependant, de nombreux environnements utilisant zsh comme shell par défaut ont également installé bash. N'importe quel shell, y compris zsh, peut être utilisé pour générer un shell bash compromis:
Pour vous protéger contre cela, vous devez installer un correctif, désinstaller ou désactiver toute version redondante de bash. Vous pouvez désactiver l'installation bash du système avec
chmod
:Cependant, il est courant que les scripts appellent explicitement bash. Les scripts effectuant cette opération, ainsi que ceux utilisant des fonctionnalités de script spécifiques à bash, échoueront si bash n'est pas disponible. Patching est la meilleure solution.
la source
importing function definition
"? J'ai également testé avec l'injection ssh-server:ssh testuser@localhost '() { :;}; echo "$SHELL"'
où je règle letestuser
shell de connexion sur/bin/zsh
, et cela résonne/bin/zsh