CVE-2026-66066, la vulnerabilidad crítica de Ruby on Rails que expone secretos y credenciales
La falla CVE-2026-66066 en Ruby on Rails permite leer archivos y exponer secretos. Aprende a blindar tu app contra este riesgo de Active Storage.
Imagen ilustrativa generada con IA
Los mantenedores de Ruby on Rails han publicado actualizaciones de seguridad para corregir una grave falla en el componente Active Storage. Identificada como CVE-2026-66066 y con una puntuación CVSS de 9.5, la vulnerabilidad permite a un atacante no autenticado leer archivos arbitrarios del servidor. El mayor riesgo es la exposición del SECRET_KEY_BASE y otras credenciales, con la posibilidad real de ejecutar código de forma remota y moverse lateralmente hacia otros sistemas.
Active Storage no deshabilitaba las operaciones “unfuzzed” de libvips
La raíz del problema está en la interacción entre Active Storage y la librería libvips, utilizada para procesar las imágenes subidas por los usuarios. Dentro de libvips, algunas operaciones se clasifican como unfuzzed, término que indica su peligrosidad cuando se aplican a contenido no confiable. En estos casos, las operaciones deberían desactivarse. Active Storage, sin embargo, no lo hacía.
Un archivo de imagen manipulado puede así forzar la lectura de cualquier archivo accesible para el proceso de la aplicación: variables de entorno, configuraciones y, sobre todo, el SECRET_KEY_BASE de Rails y las credenciales de bases de datos, APIs externas y servicios en la nube. Para lanzar el ataque solo es necesario que un usuario no autenticado pueda cargar una imagen, condición común en muchísimas aplicaciones web.
La versión de libvips es determinante. Solo a partir de la versión 8.13 la librería ofrece un control explícito para deshabilitar las operaciones “unfuzzed”. Las versiones anteriores no permiten esta protección, lo que hace que la actualización sea doblemente necesaria: Active Storage debe ser parcheado para solicitar la deshabilitación y libvips debe ser capaz de aplicarla.
De la lectura de archivos a la ejecución de código: por qué el peligro es máximo
Leer archivos arbitrarios ya es un incidente grave, pero aquí el daño puede ampliarse rápidamente. Con el SECRET_KEY_BASE, un atacante puede falsificar sesiones, generar tokens válidos y, en muchos escenarios, obtener ejecución remota de código aprovechando mecanismos de serialización u otras funcionalidades del framework. Las credenciales para sistemas externos (bases de datos, almacenamiento, APIs) abren luego la puerta al movimiento lateral: desde la aplicación Rails se puede saltar a otros componentes de la infraestructura, extendiendo el compromiso.
La puntuación CVSS de 9.5 refleja precisamente esta cadena: vector de ataque simple (carga de una imagen), sin autenticación requerida, impacto altísimo en confidencialidad, integridad y disponibilidad. Según Rapid7, al 30 de julio no se habían detectado casos de explotación activa en la red. Sin embargo, la ausencia de exploits públicos no reduce la urgencia: el tiempo entre la divulgación y los primeros intentos de ataque puede reducirse a pocas horas.
Cómo proteger su aplicación
Los parches para Active Storage están disponibles en las versiones 7.2.3.2, 8.0.5.1 y 8.1.3.1. Quienes utilicen una versión soportada deben aplicar la actualización de inmediato. Al mismo tiempo, es necesario actualizar libvips a la versión 8.13 o posterior: sin este paso, la corrección en Rails sería ineficaz, ya que la librería no podría deshabilitar las operaciones peligrosas.
Hay un paso crítico adicional: la rotación de secretos. Si la aplicación estuvo expuesta antes de la actualización, todas las credenciales accesibles para el proceso —claves de sesión, SECRET_KEY_BASE, tokens de API, contraseñas de bases de datos, credenciales de nube— deben reemplazarse de inmediato. Aplicar el parche sin rotar los secretos dejaría, de hecho, la puerta abierta a quien ya haya extraído las credenciales anteriormente.
Por último, es recomendable revisar los registros de la aplicación y del sistema en busca de accesos anómalos o cargas de imágenes sospechosas, aunque la naturaleza del ataque (lectura de archivos) puede no dejar rastros evidentes.
Fuentes
Este artículo es una reelaboración original basada en las siguientes fuentes.




