Publicado por usa el 2014-11-13
Traducción de David Padilla
La expansión de entidades en XML sin restricciones puede llegar a causar una vulnerabilidad por negación de servicio (DoS) en REXML, similar a la “Vulnerabilidad DoS por expansión de entidades en REXML” y a “CVE-2014-8080: Negación de Servicio (DoS) por Expansión de XML”. A esta vulnerabilidad se le ha asignado el identificador CVE-2014-8090. Te recomendamos actualizar tu versión de Ruby lo antes posible.
Detalles
Esta es una corrección aparte de CVE-2013-1821 y CVE-2014-8080. En los parches anteriores se corrigieron expansiones recursivas en varias partes y en el tamaño total de las cadenas creadas. Sin embargo, no se tomó en cuenta el limite anterior utilizado para la expansión de entidades. Puede darse el caso en que la utilización del CPU ascienda al 100% como resultado de la expansión de entidades con una cadena vacía. Cuando se está leyendo los nodos de un documento XML el intérprete de REXML puede ser forzado a apartar cantidades enormes de memoria lo cual puede terminar consumiendo toda la memoria de la máquina, resultando en una negación del servicio.
Código afectado sería similar a esto:
Todos los usuarios que están utilizando una versión afectada de Ruby deberían actualizar o utilizar una de las soluciones alternas cuanto antes.
Versiones afectadas
- Todas las versiones de Ruby 1.9 anteriores a 1.9.3 patchlevel 551
- Todas las versiones de Ruby 2.0 anteriores a 2.0.0 patchlevel 598
- Todas las versiones de Ruby 2.1 anteriores a 2.1.5
- Todo código en trunk anterior a la revisión 48402
Soluciones alternas
Si por alguna razón no puedes actualizar Ruby, este parche puede ser usado como solución alterna:
Creditos
Gracias a Tomas Hoger por reportar el problema.
Historia
- Publicado originalmente 2014-11-13 12:00:00 UTC