Desbordamiento de Pila en el intérprete de flotantes (CVE-2013-4164)

Existe un desbordamiento en el interprete de números flotantes de Ruby. A esta vulnerabilidad se le ha asignado el identificador CVE-2013-4164.

Detalles

En cualquier momento en el que se convierte una cadena a un valor flotante, algunas cadenas preparadas de cierta manera pueden causar un desbordamiento de pila. Esto puede llevar a un ataque de negación de servicio por medio de fallos de segmentación y la posible ejecución de código arbitrario. Cualquier programa que convierte una entrada de origen desconocido a valores flotantes (especialmente si es por medio de JSON) es vulnerable.

Código vulnerable se vería así:

untrusted_data.to_f

Pero cualquier tipo de código que convierte datos externos en valores flotantes es vulnerable, como:

JSON.parse untrusted_data

Pueden notar que este problema es similar al CVE-2009-0689.

Todos los usuarios utilizando una de las versiones afectadas deberían de actualizar a las versiones corregidas de Ruby inmediatamente.

Versiones afectadas

  • Todas las versiones de Ruby 1.8
  • Todas las versiones de Ruby 1.9 anteriores a 1.9.3 patchlevel 484
  • Todas las versiones de Ruby 2.0 anteriores a Ruby 2.0.0 patchlevel 353
  • Todas las versiones de Ruby 2.1 anteriores a Ruby 2.1.0 preview2
  • anterior a la revisión 43780

Soluciones

Se recomienda que todos los usuarios actualicen a Ruby 1.9.3 patchlevel 484, Ruby 2.0.0 patchlevel 353 o Ruby 2.1.0 preview2.

También hay que notar que la serie de Ruby 1.8 o cualquier otra version anterior son obsoletas. No hay ningún plan de liberar una versión con este problema corregido para ellas. Se aconseja a todos los usuarios de esas versiones que actualicen cuanto antes ya que no podemos garantizar la disponibilidad de correcciones de seguridad para versiones no soportadas.

Créditos

¡Agradecemos a Charlie Somerville por reportar este problema!

Historia

  • Publicación Original 2013-11-22 04:00:00 UTC
  • Publicaicón Secundaria 2013-11-22 06:46:00 UTC