int(6648)

Vulnerability Bulletins


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

Vulnerability classification

Property Value
Confidence level Oficial
Impact Obtener acceso
Dificulty Avanzado
Required attacker level Acceso remoto sin cuenta a un servicio exotico

System information

Property Value
Affected manufacturer Comercial Software
Affected software 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".

Description

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.

Solution

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"

Standar resources

Property Value
CVE CVE-2013-0333
BID

Other resources

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

Version history

Version Comments Date
1.0 Aviso emitido 2013-02-04
Ministerio de Defensa
CNI
CCN
CCN-CERT