Un investigador de seguridad ha descubierto una vulnerabilidad crítica en el intérprete de comandos Bash (Born Again Shell), que afecta a todas las versiones comprendidas entre 1.14 y 4.3 de Bash, instalada en la mayoría de sistemas operativos Unix, Linux y MAC.

La vulnerabilidad conocida como “Shell Shock” o “ShellShock” (CVE-2014-6271) permite a un atacante conectar de forma remota un ejecutable malicioso a una variable que se ejecuta cuando se invoca el intérprete Bash y afecta tanto en páginas web, servidores, equipos domésticos, routers y además parece afectar a otros intérpretes como zsh, tcsh, csh y ksh.

“Toda versión de Bash es vulnerable, es extremadamente grave, pero se necesitan unas condiciones muy específicas en lugar donde un usuario remoto podría establecer que la variable de entorno. Afortunadamente, no es común”, dijo Josh Bressers, gerente de seguridad de los productos de Red Hat.


Comprobar vulnerabilidad

El bug está relacionado en cómo Bash procesa variables del entorno dictadas por el sistema operativo o bien por un programa que llama a un script. Si Bash ha sido configurado como el intérprete de comandos por defecto, puede ser usado por hackers contra servidores y otros dispositivos Unix y Linux vía web, SSH, telnet o cualquier otro programa que ejecute scripts en Bash. Bash puede ser usado por muchas aplicaciones, como la ejecución de scripts CGI a través de mod_cgi y mod_cgid.

El problema reside en que bash permite la declaración de funciones (como cualquier otro lenguaje interpretado) y no son validadas correctamente cuando son almacenadas en una variable.

#!/bin/bash
function test() {
    echo "SecurityNull"
}
test

Pero por desgracia bash procesa todo el contenido de la variable y continúa ejecutando incluso cuando termina la función:

env x='() { :;}; echo vulnerable' bash -c /bin/true

Si ejecutamos el siguiente código y el intérprete nos muestra “vulnerable” significará que nuestra versión de Bash está afectada por esta vulnerabilidad, si por el contrario no nos aparece nada entonces no debemos preocuparnos.


Conclusión

Se recomienda actualizar lo antes posible Bash a una versión parcheada, al ser código abierto la mayoría de distribuciones GNU Linux ya se han actualizado.

Para realizar una actualización desde consola se puede usar lo siguiente:

Linux Debian y Ubuntu

apt-get update
apt-get --only-upgrade install bash

NOTA: Puede ser necesario agregar un nuevo repositorio al final del archivo “/etc/apt/sources.list”.

deb http://ftp.us.debian.org/debian squeeze-lts main non-free contrib

Linux CentOS, Fedora…

yum update bash

FUENTES

www.muyseguridad.net
blog.segu-info.com.ar