Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Exploit en Discourse usa JPEG, GhostScript e ImageMagick para leer archivos


Se ha descubierto un exploit en la carga de imágenes de Discourse que permitía a usuarios básicos leer archivos del servidor. Esto se logró mediante la combinación de un retraso en el procesamiento de JPEG, la ejecución de Ghostscript y funciones de ImageMagick. Además, se identificó una falla de envenenamiento de caché que podría ejecutar JavaScript para visitantes anónimos. Ambos problemas fueron reportados en junio de 2026 y solucionados antes de su publicación.





Un exploit de carga de imágenes de Discourse permitió que usuarios básicos leyeran archivos del servidor encadenando un retraso en el procesamiento de JPEG, la ejecución de Ghostscript y funciones de ImageMagick.

La investigación también expuso un fallo independiente de envenenamiento de caché que podría ejecutar JavaScript para visitantes anónimos. Los investigadores informaron de ambos problemas en junio de 2026 y los parchearon antes de la publicación.

El informe técnico de Searchlight Cyber describe las pruebas contra configuraciones predeterminadas. Discourse impulsa más de 22,000 comunidades, lo que convierte su gestión de cargas en un objetivo de seguridad valioso.

Los hallazgos son independientes de la investigación de OpenAI de Hacktron, que involucró diferentes errores de decodificador de imágenes y de inicio de sesión, cubiertos previamente. La cadena de lectura de archivos solo requirió una cuenta de Nivel de Confianza 0, el nivel de confianza de usuario más bajo.

Exploit del Pipeline de Imágenes de Discourse

Los investigadores examinaron el flujo de carga de fotos de perfil y descubrieron que la política de seguridad de ImageMagick bloqueaba los formatos PostScript, pero seguía permitiendo que Ghostscript procesara PDFs. Esto creó una brecha entre el formato bloqueado y la herramienta utilizada para procesarlo.

Final full chain script execution  (source : slcyber )
Ejecución final del script de cadena completa (fuente: Slcyber)

Un archivo manipulado combinaba bytes de identificación de JPEG XL con contenido PostScript válido. FastImage, la biblioteca que verifica las cargas, reconoció las dimensiones de la imagen, mientras que la extensión PDF del archivo dirigió a ImageMagick hacia Ghostscript.

Ghostscript interpretó entonces el contenido como PostScript. Los investigadores lograron esto sin utilizar una vulnerabilidad de Ghostscript ni romper su sandbox parcheado.

Esa primera etapa llegó al cálculo de color dominante de Discourse, que pasaba la ruta del archivo temporal a ImageMagick sin forzar un decodificador de imagen específico.

La cobertura de vulnerabilidades relacionadas de ImageMagick resalta por qué estas herramientas de procesamiento necesitan una revisión de seguridad minuciosa. Aquí, sin embargo, la cadena dependía de cómo varios componentes manejaban el mismo archivo cargado.

Complete Chain  (source : slcyber )
Cadena Completa (fuente: Slcyber)

El siguiente paso explotó una carrera entre la verificación de un archivo y su uso posterior, conocido como un fallo de tiempo de verificación al tiempo de uso (time-of-check to time-of-use). Los investigadores cargaron contenido JPEG válido con una extensión .msvg, y luego reemplazaron el archivo temporal después de que FastImage lo verificara, pero antes de que ImageMagick procesara su color dominante.

La ventana de tiempo normal era demasiado corta para una explotación fiable. Un JPEG especialmente acolchado ralentizó la etapa de procesamiento de jpegoptim a unos 25 segundos en las pruebas.

La operación de renombrado de PostScript reemplazó entonces el archivo de forma atómica, manteniendo los manejadores de archivo existentes vinculados al JPEG original mientras que las lecturas posteriores llegaban al SVG de reemplazo.

Flujo de carga de foto de perfil de Discourse (fuente: Slcyber)

El analizador interno de MSVG de ImageMagick siguió una referencia embebida al Lenguaje de Scripting de Magick, o MSL. Ese script leyó un archivo local y guardó su contenido como una imagen.

Una segunda pasada colocó esa imagen en el flujo de almacenamiento de carga, que devolvió una URL de descarga normal. Los investigadores demostraron la divulgación de archivos, no la ejecución completa de código en el servidor.

El fallo de caché independiente reflejaba una cookie de esquema de colores no verificada en el HTML y almacenaba la respuesta en la caché anónima. Un cargador de complementos confiable importó entonces un módulo controlado por el atacante, eludiendo la Política de Seguridad de Contenido del sitio.

Discourse parcheó ambos problemas. La corrección de imagen bloquea los delegados y permite solo los decodificadores necesarios. El manejo de cookies ahora utiliza una validación estricta de enteros e incluye el valor en las claves de caché.

El aviso CVE-2026-55420 del proveedor enumera las versiones parcheadas 2026.6.0, 2026.5.1, 2026.4.2 y 2026.1.5. Su descripción se refiere a configuraciones de PDF no predeterminadas, que son más limitadas que la cadena de configuración predeterminada de los investigadores. Deberías actualizar en lugar de confiar únicamente en las restricciones de extensión.



Fuentes:
https://cybersecuritynews.com/discourse-image-pipeline-exploit/

0 comments :

Post a Comment

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.