Publicado por tenderlove el 2013-11-22
Traducción de David Padilla
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