jueves, 30 de julio de 2026
Policial

Descubren vulnerabilidad crítica en Ruby on Rails que posibilita el acceso sin autenticación a sistemas

Ruby on Rails ha lanzado correcciones para una vulnerabilidad crítica en Active Storage que podría permitir a atacantes no autenticados leer archivos arbitrarios de servidores de aplicaciones mediante cargas de imágenes manipuladas.

Identificada como CVE-2026-66066 con una puntuación CVSS de 9.5, la vulnerabilidad puede exponer el entorno de procesos de Rails y secretos como `secret_key_base`, la clave maestra de Rails, contraseñas de bases de datos, credenciales de almacenamiento en la nube y tokens de API. Estos secretos podrían facilitar la ejecución remota de código o el movimiento lateral hacia sistemas conectados.

Las aplicaciones afectadas utilizan `libvips` para el procesamiento de imágenes de Active Storage y aceptan cargas de imágenes de usuarios no confiables. Rails selecciona Vips en `load_defaults` 7.0, y las versiones posteriores mantienen esta configuración predeterminada.

Según Ethiack y GMO Flatt Security, las versiones afectadas son Rails 7.0.0 a 7.2.3.1, Rails 8.0.0 a 8.0.5 y Rails 8.1.0 a 8.1.3. Las versiones de Rails 6.0.0 a 6.1.7.10 solo se ven afectadas cuando Active Storage está configurado para usar Vips, que no era el procesador predeterminado en Rails 6.

El equipo de seguridad de Rails explicó que el aviso público abarca las versiones de Rails con soporte de seguridad, es decir, Rails 7.2, 8.0 y 8.1, mientras que Rails 6.x también se ve afectada cuando Vips está habilitado. Rails 7.1 y versiones anteriores han llegado al final de su ciclo de vida y no recibirán actualizaciones. Las aplicaciones afectadas deben actualizarse a Rails 7.2.3.2 o posterior, y los operadores deben actualizar a Rails 7.2.3.2, 8.0.5.1 o 8.1.3.1 y rotar todos los secretos legibles por el proceso de la aplicación. Las instalaciones parcheadas requieren libvips 8.13 o posterior y, si se instala ruby-vips, ruby-vips 2.2.1 o posterior.

Las aplicaciones que usan MiniMagick no están expuestas a través de esta vía de ataque específica.

Ninguno de los equipos de investigación había publicado una prueba de concepto hasta las 17:30 UTC del 29 de julio de 2026. Un repositorio de GitHub de terceros, publicado después de esa verificación, afirma reproducir la cadena completa de lectura arbitraria de archivos para obtener ejecución remota de código en un laboratorio Docker con bucle cerrado utilizando Rails 8.1.3, con Rails 8.1.3.1 como control parcheado. El código utiliza una carga de MATLAB/HDF5 especialmente diseñada para leer el entorno del proceso de Rails, recuperar SECRET_KEY_BASE, firmar una carga útil de Marshal integrada y activar una llamada de retorno curl fuera de banda.

La vulnerabilidad reside en el límite de confianza entre Active Storage y libvips. El aviso de seguridad de Rails indica que libvips admite cargadores, guardadores y otras operaciones, algunas de ellas compatibles con bibliotecas de terceros y marcadas como «no seguras» o «no confiables» por ser vulnerables a entradas maliciosas. Active Storage no las bloqueó, lo que permitió que una carga manipulada invocara una de ellas y revelara archivos legibles por el proceso de Rails.

Una aplicación vulnerable no necesita exponer una operación específica de redimensionamiento o creación de miniaturas. Rails indicó que «generar variantes no es un requisito aparte». El parche público también muestra que tanto el analizador como el transformador de Vips pasaron archivos adjuntos no confiables a las operaciones vulnerables.

Una solicitud exitosa otorga al atacante una primitiva de lectura de archivos arbitraria. La ejecución de código o el movimiento lateral dependerían de lo que extraiga el atacante y de a qué alcancen esas credenciales. Rails indica a los operadores que roten `secret_key_base`, la clave maestra y las credenciales descifradas, las credenciales de la base de datos, las claves del servicio Active Storage y los tokens de terceros.

El equipo de seguridad de Rails informó que no tiene conocimiento de ninguna explotación ni intento de explotación antes o después de la divulgación. También indicó que Rails no dispone de telemetría ni de una estimación razonable sobre cuántas aplicaciones utilizan Active Storage con Vips y aceptan cargas de imágenes no confiables.

Al 29 de julio, la vulnerabilidad CVE-2026-66066 no figuraba en la versión 2026.07.27 del catálogo de Vulnerabilidades Explotadas Conocidas de CISA.

No se dispone de un recuento fiable de las aplicaciones vulnerables ni de las víctimas identificadas. La puntuación de 9.5 describe la gravedad según CVSS, no el número de implementaciones expuestas. Una implementación vulnerable debe utilizar Vips, aceptar cargas de imágenes no confiables e incluir una operación explotable en su compilación de libvips.

Con Información de blog.segu-info.com.ar

Editor

Redacción.

Deja tu comentario