Vulnerabilidad detectada en la shell Bash.

Una vulnerabilidad de seguridad en el GNU Bourne Again Shell (bash), el shell de línea de comandos que se utiliza en muchos sistemas operativos Linux y Unix, podría dejar los sistemas que ejecutan los sistemas operativos abiertos a la explotación por los ataques especialmente diseñados. "Este problema es especialmente peligroso, ya que hay muchas maneras posibles Bash puede ser llamado por una aplicación", advirtió un aviso de seguridad de Red Hat.

El error, descubierto por Stephane Schazelas, está relacionada con la forma en Bash procesa variables ambientales aprobadas por el sistema operativo o un programa llama a un script basado en Bash. Si Bash se ha configurado como el shell predeterminado del sistema, que puede ser utilizado por los atacantes basados ​​en la red contra servidores y otros dispositivos de Unix y Linux a través de las solicitudes Web, Secure Shell, sesiones telnet u otros programas que utilizan Bash para ejecutar scripts.

Debido a su amplia distribución, la vulnerabilidad podría ser tan amplio como el bicho Heartbleed, aunque puede que no sea tan peligroso. La vulnerabilidad afecta a las versiones 1.14 por 4.3 de GNU Bash. Los parches han sido emitidas por muchos de los principales proveedores de distribución de Linux para las versiones afectadas, incluyendo:

Red Hat Enterprise Linux (versiones 4 a 7) y la distribución Fedora
CentOS (versiones 5 a 7)
Ubuntu 10.04 LTS, 12.04 LTS y 14.04 LTS
Debian

Una prueba en Mac OS X 10.9.4 ("Mavericks") por Ars mostró que también tiene una versión vulnerable de Bash. Apple aún no ha parcheado Bash, a pesar de que acaba de publicar una actualización de "herramientas de línea de comandos."

Mientras Bash es a menudo considerado simplemente como un shell local, también se utiliza con frecuencia por los servidores Apache para ejecutar scripts CGI para el contenido dinámico (a través mod_cgi y mod_cgid). A solicitud Web diseñada dirigido una aplicación CGI vulnerables podría lanzar código en el servidor. Ataques similares son posibles a través de OpenSSH, que podría permitir incluso restringido sesiones de shell seguro para evitar los controles y ejecutar código en el servidor. Y un servidor DHCP malicioso creado en una red o en marcha como parte de un punto de "mal" de acceso inalámbrico podría ejecutar código en algunos sistemas Linux usando la dinámica de host Protocolo de configuración de cliente (dhclient) cuando se conecten.

Hay otros servicios que se ejecutan en los sistemas Linux y Unix, tales como el sistema de impresión CUPS, que dependen de manera similar en Bash que podrían ser vulnerables.

Hay una prueba sencilla para determinar si un sistema Linux o Unix es vulnerable. Para comprobar el sistema, desde una línea de comandos, escriba:

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


2º ejemplo (Aportado por Phyrok):

VAR="() { echo 'Hola mundo'; }; echo 'Adios mundo'" bash -c "echo Prueba"


Si el sistema es vulnerable, la salida será:

vulnerable
this is a test

Con el sistema parcheado la salida es la siguiente:

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

La revisión es una actualización de una versión parcheada de la shell Bash. Para estar seguro, los administradores deben hacer una actualización general de sus versiones de Bash en cualquier caso.

Traducido por Google.
Fuente: http://arstechnica.com/security/2014/09 ... nix-in-it/

Sorry si está repetido.
Justo venia a poner eso. Id actualizando bash tal como vaya entrando en los repos de tu distro xD
Zokormazo escribió:Justo venia a poner eso. Id actualizando bash tal como vaya entrando en los repos de tu distro xD


En Ubuntu ya está disponible la actualización. Voy a revisar algunos servidores que tengo con CentOS, Debian, RHEL y Suse.

Ahora os doy feedback.

Edit: actualización instalada también en Debian.
Edit2: Siento la traducción pero estoy en la oficina, luego la reviso.
Saludos.

Pon bien el comando de prueba, anda:

VAR="() { echo 'Hola mundo'; }; echo 'Adios mundo'" bash -c "echo Prueba"


Debería salir sólo Prueba, si sale Adios mundo, malo
Phyrok escribió:Saludos.

Pon bien el comando de prueba, anda:

VAR="() { echo 'Hola mundo'; }; echo 'Adios mundo'" bash -c "echo Prueba"


Debería salir sólo Prueba, si sale Adios mundo, malo


Editado compañero ;) gracias por el aviso.

He puesto el mismo ejemplo que sale en el fuente y añadido el tuyo
Alguien sabe como esta la cosa para actualizar en Crunchbag?
Entiendo el problema.. pero como se realiza la inyección de código bash desde fuera de la máquina, y desde dentro?

Porque la mayoría de demonios que que necesitan bash, suelen crear un usuario propio para la ejecución de dichas tareas. Si quieres modificar las variables de entorno de dicho usuario, necesitaras acceso a dicho usuario, el cual para mas inri no tendrá definido ningún directorio/home ni contraseña.

Y bueno por lo que he leido en el documento no deja clara la forma de inyección de código bash, se hace igual que el típico sql/javascript injection? Porque me parece que no.
Saludos.

Para los que teneis curiosidad, en este artículo lo explican algo mejor:

http://www.securitybydefault.com/2014/0 ... otros.html

Tampoco es cuestión de explicar al dedillo cómo ganar privilegios en máquinas remotas utilizando estas vulnerabilidades
vale, veo que cuando ejecuta un cgi le puedes pasar parametros y de ahi la inyección.

Pero de todas maneras en estos casos no se estaría hablando también de una mala configuración del servidor?
En ArchLinux está desde ayer. ;)

~$ pacman -Si bash
Repositorio       : core
Nombre            : bash
Versión           : 4.3.024-2
Descripción       : The GNU Bourne Again shell
Arquitectura      : x86_64
...
Fecha de compilación : mié 24 sep 2014 08:07:58 CEST
Validado Por   : Suma MD5  Suma SHA256  Firma
Hola buenas a todos, Linux Mint 17 también tiene ya parche para el bug
core/bash     4.3.024-2 -> 4.3.026-1


x)
Bien, ya me acaba de saltar la actualización en Mint Debian Edition [beer]
12 respuestas