Cet article a pour but de résumer brièvement les informations utiles sur la faille ShellShock. Il n’a toutefois pas pour objectif d’être exhaustif (les informations varient encore en fonction des sources et l’état de correction de cette faille, ainsi que des celles qui en découlent n’est pas forcément encore très clair).
Informations générales
Une faille dans le programme BASH (Bourne Again Shell) a été trouvée.
Cette vulnérabilité permet d’injecter du code dans des variables d’environnement. Ainsi, lorsqu’un programme appellera le shell système, ce code sera exécuté.
Le risque est particulièrement présent sur les scripts CGI accessibles en WEB. Les en-têtes HTTP étant passées dans l’environnement (HTTP_USER_AGENT, etc.), cette vulnérabilité pourrait être exploitée si le script appelé contient lui-même du code effectuant un appel système (system(),popen(), backticks “`”, etc.) De plus, la vulnérabilité est présente seulement si /bin/sh est un symlink vers /bin/bash
Considérons l’exemple suivant appellé en CGI et non pas via mod_php:
<?php system("cat /var/log/auth.log | grep root"); ?>;
Bien qu’il n’y ait pas de paramètre, il est possible d’exécuter du code en définissant une en-tête HTTP telle que
test: () { ignored;}; cat /etc/passwd
L’en-tête test sera passée dans l’environnement du shell appelé par la commande system().
Cette faille peut être testée avec la commande:
$ env var='() { ignore this;}; echo vulnerable' bash -c /bin/true
Cependant, ce premier patch est incomplet. Il est donc toujours possible d’exploiter cette faille avec la commande suivante :
$ env var='() {(a)=>' bash -c "echo date"; cat echo bash: var: line 1: syntax error near unexpected token `=' bash: var: line 1: `' bash: error importing function definition for `var' Fri Sep 26 15:22:39 CEST 2014
Si la date s’affiche, la vulnérabilité est toujours présente.
Normalement, la plupart des distributions Linux ont publié des correctifs, y compris pour la deuxième faille.
Aussi, les distributions Debian et Ubuntu ne sont pas vulnérable dans une configuration par défaut car /bin/sh est un symlink vers /bin/dash.
Fortinet
La société Fortinet a publié une liste des produits affectés par cette vulnérabilité : http://www.fortiguard.com/advisory/FG-IR-14-030/
– FortiAnalyzer (versions 5.0.X and 5.2.0) – authentication required to exploit
– FortiAuthenticator – authentication required to exploit
– FortiDB
– FortiManager (versions 4.3, 5.0.X and 5.2.0) – authentication required to exploit
– AscenLink v7.X
Il est toutefois à noter que les équipements FortiGate ne sont pas affectés. Pour les équipements concernés, un correctif sera publié par Fortinet dès que possible.
De plus, une signature IPS (“Bash.Function.Definitions.Remote.Code.Execution“) est d’ores et déjà disponible et peut être appliquée sur le FortiGate dans le but de protéger les systèmes se trouvant derrière celui-ci.
SEPPMail
La société SEPPMail a confirmé que ses équipements n’étaient pas vulnérables à cette faille.
* https://twitter.com/markstanislav/status/514811987759755265