La commande de test
x='() { :;}; echo vulnerable' bash
montre que mon Debian 8 (Jessie) installation est vulnérable, même avec les dernières mises à jour. La recherche montre qu'il existe un correctif pour stable et unstable, mais que les tests ne sont pas corrigés.
Je pense que le patch permettra de le tester dans quelques jours, mais cela semble assez méchant pour être paranoïaque. Existe-t-il un moyen d’obtenir le paquet instable et de l’installer sans casser mon système? La mise à niveau vers unstable semble causer plus de problèmes qu'elle n'en résout.
Selon Bob, il existe une deuxième vulnérabilité Shellshock, qui est corrigée dans un deuxième correctif. Le test pour cela est censé être:
env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("
Mais je ne suis pas assez expérimenté en Bash pour comprendre ce que cela signifie ou pourquoi c'est un problème. Quoi qu'il en soit, cela fait quelque chose de bizarre, ce qui est évité par bash_4.3-9.2_AMD64.deb sur les systèmes 64 bits, qui au moment de l'édition est stable et instable mais pas dans Jessie /essai.
Pour résoudre ce problème pour Jessie , récupérez le dernier Bash de unstable et installez-le avec dpkg -i
.
Offres Jemenake
wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb
comme une commande qui obtiendra la version 4.3-9.2 pour votre machine.
Et vous pouvez suivre cela avec:
Sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb
pour l'installer.
Si vous avez besoin de nouveaux correctifs de instable pour votre Jessie , c’est clairement le chemin à parcourir ( mutatis mutandis ).
Téléchargez le package depuis unstable via ce lien . Vous pouvez également vérifier les dépendances, bien qu'il semble que le bash instable ait les mêmes dépendances que le bash de testing. Installez le deb téléchargé avec ce qui suit.
dpkg -i
J'ai modifié cette réponse pour les correctifs Bash supplémentaires publiés lundi.
Pour Ubuntu 12.04, j'ai exécuté une mise à jour, mais j'ai également dû exécuter l'installation pour bash pour se débarrasser de la vulnérabilité.
root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
Cette commande indique que le système est vulnérable, exécutez la mise à jour.
apt-get update && apt-get -y upgrade
Testez à nouveau.
root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
Toujours vulnérable.
apt-get install -y bash
Testez à nouveau.
root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
Edit: Après la publication des patchs supplémentaires, la sortie a changé.
root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
Yay! Fixé. Cela devrait fonctionner pour d'autres versions, mais je ne l'ai pas testé au-delà de 12.04.
En outre, la réponse de runamok ci-dessous fonctionne bien, alors donnez-lui un vote positif!
Une alternative à Debian 6.0 (Squeeze) sans récupérer les paquets de Debian 7 (Wheezy):
Utilisez le référentiel de sécurité LTS sur lequel le correctif est renvoyé.
Ajoutez ceci à /etc/apt/sources.list
:
#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free
Ensuite, lancez apt-get update && apt-get install bash
.
Via: linuxquestions
apt-get update
avant apt-get dist-upgrade
et vous obtiendrez le correctif. Je viens de le faire moi-même et il y avait une mise à niveau bash poussé qui résout le problème.
Je l'ai corrigé sur mon Hackintosh par:
$ brew install bash
$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash-4.3$
J'ai écrit un article sur la façon de faire cela avec apt-get sur les anciennes versions d'Ubuntu. En gros, vous mettez à jour votre fichier sources.list avec le plus récent, puis vous exécutez apt-get update et mettez à niveau bash. Vous pouvez le lire étape par étape ou le copier depuis ici .
Résumé:
Sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list
Sudo apt-get update
Sudo apt-get install --only-upgrade bash
Lisez l'article si vous utilisez old-releases.ubuntu.com et n'oubliez pas que vous voudrez peut-être le modifier:
Sudo sed -i 's/trusty/YOUR_OS_CODENAME/g' /etc/apt/sources.list
La version corrigée (voir changelog ) du paquet Bash est maintenant dans Debian 8 (Jessie) (voir informations sur le paquet ), à partir du 2014-09-26 14:18 UTC.
Le deuxième correctif, mentionné dans les commentaires ci-dessous, se trouve également dans le référentiel Jessie . Il n'est pas nécessaire d'installer à partir d'unstable. Voir le lien d'informations sur le paquet ci-dessus.
Il n’est plus nécessaire d’installer depuis unstable.
Il suffit de courir:
# aptitude update
suivi par:
# aptitude upgrade
Vérifiez ensuite que la vulnérabilité a disparu (dans un shell récemment ouvert):
$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'