Vulnerabilidad CVE-2019-5418 en Ruby on Rails: Guía de mitigación

CVE-2019-5418 es una vulnerabilidad de exposición de contenido de archivos descubierta en el componente Action View de Ruby on Rails en marzo de 2019. Esta vulnerabilidad afecta a las versiones de Action View anteriores a 5.2.2.1, 5.1.6.2, 5.0.7.2, 4.2.11.1 y a todas las versiones de la serie v3.

ProductoRuby on Rails, Ruby-on-Rails
Fecha2025-07-09 07:36:20
Información
  • Corrección disponible
  • Explotación activa

Resumen técnico

  • Detalles: La vulnerabilidad aprovecha un fallo de recorrido de rutas (path traversal) en el proceso de renderizado de Action View, específicamente en el método find_file en template_renderer.rb. Cuando el método render procesa vistas fuera del ámbito de la aplicación, utiliza el método find_templates de PathResolver para resolver la ruta. Este método acepta un patrón para resolver y localizar la ruta; la vulnerabilidad se deriva de la posibilidad de manipular e inyectar un payload utilizado para construir este patrón en el método build_query: Por ejemplo, el patrón: template.:variants y la variable variants como [‘mobile’, ‘tablet’, ‘desktop’] producirá: template.{mobile,tablet,desktop} La variable variants puede ser manipulada a través del encabezado Accept: Accept: ../../../../../../../../../etc/passwd{{

  • Ataque no autenticado: no se requiere ninguna autenticación previa.

Esta debilidad de diseño en el mecanismo de resolución de plantillas permite a los atacantes leer archivos sensibles del sistema manipulando los encabezados Accept para activar la ruta vulnerable del código, omitiendo de hecho los controles de acceso a archivos a nivel de aplicación a través del sistema de renderizado de plantillas.

Recomendaciones

  1. Aplique el parche inmediatamente: actualice a una versión de Ruby on Rails 5.2.2.1 o superior.
  2. Firewall de aplicaciones web (WAF): implemente reglas de WAF para filtrar los encabezados Accept maliciosos.
  3. Aplicar permisos: limite los permisos del sistema de archivos para reducir la exposición de archivos sensibles.

[Callforaction-THREAT-Footer]