vulnerabilidad crítica en Ruby on Rails permite acceso sin autenticación ~ Segu-Info

Ruby on Rails ha publicado correcciones para una
vulnerabilidad crítica de 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 (CVSS: 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 permitir la
ejecución remota de código (RCE) 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.

Ethiack y GMO Flatt Security indican que 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, lo cual no era la configuración predeterminada en ese momento.

Las aplicaciones que usan MiniMagick no están expuestas a través de esta vía
de ataque específica. Rails 7.1 y versiones anteriores han llegado al final de
su ciclo de vida y no recibirán actualizaciones, por lo que las aplicaciones
afectadas deben actualizarse a Rails 7.2.3.2 o posterior. 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.

Ninguno de los equipos de investigación había publicado una prueba de concepto
(PoC) 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 RCE 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. «Generar variantes no es un
requisito aparte», afirmó Rails. 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 reveló que 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.

Fuente:
THN


Ver fuente

Related Post