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