int(6648)

Boletines de Vulnerabilidades


Vulnerabilidad crítica y actualización de Ruby on Rails

Clasificación de la vulnerabilidad

Propiedad Valor
Nivel de Confianza Oficial
Impacto Obtener acceso
Dificultad Avanzado
Requerimientos del atacante Acceso remoto sin cuenta a un servicio exotico

Información sobre el sistema

Propiedad Valor
Fabricante afectado Comercial Software
Software afectado Aplicaciones web basadas en Ruby on Rails 2.3.xi 3.0.X que utilicen el backend "YAML" para analizar código de tipo JSON.

No están afectadas las ramas 3.1.xy 3.2.x, o las aplicaciones web que utilizan el paquete "yajl".

Descripción

Los desarrolladores de Ruby on Rails, el popular framework de desarrollo web basado en Ruby, han publicado actualizaciones de su producto para solucionar una vulnerabilidad crítica. El fallo de seguridad permitiría a un atacante remoto sin autenticar, ejecutar código mediante peticiones especialmente manipuladas.

Ruby on Rails dispone de tres posibles módulos para analizar código JSON: JSONGem, Yajl y YAML. El módulo configurado por defecto (YAML), utiliza el módulo StringScanner para recorrer la cadena de código JSON, reemplazando los elementos JSON con equivalentes en el lenguaje YAML. Este método no valida que la entrada sea código JSON válido, y un atacante podría utilizar un código JSON especialmente manipulado para ejecutar código arbitrario.
El identificador estándar de la vulnerabilidad es CVE-2013-0333.
La vulnerabilidad está relacionada con una solución incompleta de otra similar anunciada recientemente (CVE-2013-0156), que utiliza otro camino de ejecución para llegar a la misma vulnerabilidad.
Existe exploit público.

Solución

Actualizar las aplicaciones web a una de las versiones de Ruby On Rails que solucionan la vulnerabilidad (3.0.20 y 2.3.16), disponibles para descargar en la página web del fabricante.
En caso de que no sea posible actualizar, el aviso de seguridad del fabricante propone como mitigación utilizar el backend "JSONGem" en lugar del backend vulnerable. Para ello, hay que incluir el siguiente código en la parte de inicialización de la aplicación:

ActiveSupport :: JSON.backend = "JSONGem"

Identificadores estándar

Propiedad Valor
CVE CVE-2013-0333
BID

Recursos adicionales

Aviso de seguridad original de Ruby on Rails
https://groups.google.com/forum/?fromgroups = #! topic/rubyonrails-security/1h2DR63ViGo

Aviso de seguridad en la página web de CERT/CC
http://www.kb.cert.org/vuls/id/628463

Análisis técnico de la vulnerabilidad
http://ronin-ruby.github.com/blog/2013/01/28/new-rails-poc.html

Histórico de versiones

Versión Comentario Fecha
1.0 Aviso emitido 2013-02-04