martes, 26 de noviembre de 2013

Nuevas versiones de Ruby corrigen ejecución remota de código

El lenguaje de programación Ruby ha actualizado sus ramas 2.1x, 2.x y 1.9.x para resolver una vulnerabilidad remota que permitiría realizar una denegación de servicio y potencialmente la ejecución de código arbitrario.

La vulnerabilidad, con CVE-2013-4164, común a todas las versiones indicadas, se debe a un fallo a la hora de procesar valores en coma flotante, localizado en el archivo 'util.c' (función ruby_strtod).

Según su descubridor Charlie Somerville (@charliesome), desarrollador de Ruby, cuando se realiza una conversión de determinadas cadenas a valores en coma flotante se produce un desbordamiento de memoria basado en pila que es potencialmente utilizable para la ejecución remota de código a través de valores especialmente manipulados.

Aunque no existe un exploit por el momento, Charlie ha indicado que cualquier código vulnerable produce el desbordamiento de memoria al utilizar métodos o funciones que conviertan tipos desde orígenes desconocidos a coma flotante, como "to_f" o el habitual "JSON.parse":

  Cadena_vulnerable.to_f

  JSON.parse Cadena_vulnerable

Se trataría de una vulnerabilidad similar a la ya corregida en el CVE-2009-0689.

Las versiones afectadas que deben ser actualizadas urgentemente son:

  • Rama 1.9.x anterior a 1.9.3 p484
  • Rama 2.0.x anterior a 2.0.0 p353
  • Rama 2.1.x anterior a 2.1.0 preview2

Aquellos usuarios que todavía utilicen la rama 1.8 deberán migrar sus sistemas a las nuevas, ya que no hay soporte oficial para la misma.

Más información:

Heap Overflow in Floating Point Parsing (CVE-2013-4164)
  

José Mesa Orihuela

1 comentario: