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.
| Producto | Ruby on Rails, Ruby-on-Rails |
| Fecha | 2025-07-09 07:36:20 |
| Información |
|
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
- Aplique el parche inmediatamente: actualice a una versión de Ruby on Rails 5.2.2.1 o superior.
- Firewall de aplicaciones web (WAF): implemente reglas de WAF para filtrar los encabezados Accept maliciosos.
- Aplicar permisos: limite los permisos del sistema de archivos para reducir la exposición de archivos sensibles.
[Callforaction-THREAT-Footer]