Hoy nos hemos levantado con una noticia a la altura del reciente Heartbleed: una vulnerabilidad en el intérprete de comandos Bash permite la posibilidad de ejecutar código remoto en la máquina. Esta vulnerabilidad ha sido catalogada como CVE-2014-6271 con una puntuación de CVSS de 10.
Están afectadas todas las versiones hasta 4.3 incluida. La vulnerabilidad se produce cuando el intérprete no procesa adecuadamente las variables de entorno. Mediante la declaración de funciones puede incluir al final código que será ejecutado independientemente del nombre de la variable; esto es especialmente crítico en servidores web que tengan instalados módulos CGI. Una forma rápida de comprobar si somos vulnerables o no es ejecutando el siguiente código:
env x='() { :;}; echo vulnerable' bash -c "echo prueba en bash"
En ambos casos aparecerá lo último por pantalla ‘prueba en bash’. Si se muestra por pantalla la cadena de texto ‘vulnerable’, nuestra versión de bash estará afectada ya que ha seguido ejecutando el código añadido a la cola de la función; por el contrario, si vemos el siguiente mensaje de error, quizá no seamos tan vulnerables:
bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x’
La última frase no se ha dicho de forma arbitraria: pese a que ya ha sido publicado un primer parche, una investigación en profundidad del mismo ha demostrado que aún tiene posibles vectores de ataque, por lo que habrá que esperar a una nueva actualización para poder decir que ya está completamente solucionado.
Más información: