Ajouter un commentaire

Faille majeure du shell bash

Update 2014-09-26 12:30 UTC+1

La faille CVE-2014-7169 semble être patchée par la plupart des mainteneurs de paquets. Nous vous invitons à refaire une mise à jour de votre bash.



Update 2014-09-25 18:00 UTC+1

Le patch pour la faille CVE-2014-6271 ne corrige pas entièrement le problème. Cependant, il en réduit l'importance. Une nouvelle faille a été ouverte sous la référence CVE-2014-7169, dont le patch devrait arriver rapidement.
En attendant ce complément, vous avez la possibilité d'appliquer un des workarounds présents dans cet article de KB redhat.

Après l'application du patch pour la faille CVE-2014-6271, vous pouvez vérifier la faille CVE-2014-7169 avec le code suivant :

env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable"

Si vous êtes toujours vulnérable, vous aurez le retour

bash: X: line 1: syntax error near unexpected token `='
bash: X: line 1: `'
bash: error importing function definition for `X'
still vulnerable


Un faille de sécurité majeure sur l’interpréteur de commandes bash vient d’être découverte. La faille est référencée sous le code CVE-2014-6271.

Depuis quand existe-t-elle ?

Cette faille existe depuis au moins la version 1.14 de bash. Elle est donc très largement répandue.

Qu'est-ce qu'elle permet ?

La faille exploite le fait que l’interpréteur de commandes bash, au moment où il est démarré, n’arrête pas l’interprétation à l’endroit où il devrait lorsqu’il y a des définitions de variables ou de fonctions d’environnement et exécute les commandes passées en arguments.

Etant donné le fait que l’on puisse démarrer un interpréteur de commandes bash dans un script cgi par exemple, on peut exploiter cette faille à distance En utilisant le fait que les variables d’environnement cgi sont mappées en variables d’environnement shell. Le lancement de commandes se fait alors à distance, très certainement dans le contexte d’exécution du serveur web par exemple.

Des script d’exploitation de cette faille sont facilement récupérables et des scanneurs spécifiques à cette faille sont déjà à l’œuvre.

Comment vérifier si ma version est impactée ?

Vous avez la possibilité de tester cette faille à l'aide de la commande ci-dessous.

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Si votre version de bash est vulnérable, vous obtiendrez le retour suivant:

vulnerable
 this is a test
Sinon :
 bash: warning: x: ignoring function definition attempt
 bash: error importing function definition for `x'
 this is a test

Comment la corriger ?

Ikoula vous recommande de mettre à jour les paquets bash pour votre distribution le plus rapidement possible.
Si vous diposez d'une debian 6, dite squeeze, nous vous invitons à suivre cet article de notre base de connaissance.
Si vous disposez d'une prestation mutualisée ou en infogérance complète sachez que nos équipes ont déjà fait le nécessaire.

Pour plus d'informations https://securityblog.redhat.com/