La banda de ransomware Clop trasladó su sitio de filtración de datos a una nueva dirección Tor después de confirmar que el servidor anterior había sido pirateado y desfigurado mediante una vulnerabilidad sin parchear en el sistema de gestión de contenidos Grav CMS. BleepingComputer determinó que el fallo era una vulnerabilidad de recorrido de rutas no documentada que requería acceso al sitio sin autenticación.
El ataque ocurrió a principios de septiembre, cuando el grupo de extorsión ShinyHunters subió un pequeño archivo de texto al sitio y después sustituyó su contenido por una página de desfiguración completa que incluía el logotipo del personaje Umbreon de Pokémon y un enlace a su sitio de filtraciones. Posteriormente, el grupo afirmó que había robado el código fuente, los complementos de Grav, los registros del servidor y las claves privadas utilizadas para el servicio Tor de Clop, y exigió un rescate a cambio de no publicar los archivos.
¿Qué ocurrió en el servidor de Clop?
Clop reconoció que la instalación de Grav en el servidor no estaba completamente actualizada, pero negó que los servidores contuvieran datos operativos o financieros importantes. Afirmó que el servidor solo albergaba el contenido del sitio y también negó que existiera una relación o negociaciones en curso con ShinyHunters. Según el informe, ShinyHunters eliminó posteriormente el nombre de Clop de su sitio, sin que el grupo ofreciera una explicación adicional al respecto.
El servidor ejecutaba Grav 1.7.43. Según los detalles proporcionados por ShinyHunters, se explotó el método de procesamiento de carga de archivos de Grav mediante el envío de un valor inseguro en el parámetro __unique_form_id__. Este valor se utilizaba para crear una ruta temporal con el formato tmp/forms/<session_id>/<unique_id> sin comprobar primero que fuera un componente seguro para una ruta de archivos.
Al introducir secuencias de recorrido como ../../../shhq, era posible obligar a Grav a crear una ruta fuera del directorio destinado a los archivos cargados, lo que permitía escribir el archivo subido en otra ubicación dentro de la instalación del sistema.
Confirmación del fallo y publicación de la corrección
Grav revisó los detalles técnicos compartidos por BleepingComputer, y los desarrolladores del sistema confirmaron que la descripción del fallo realizada por el atacante era precisa. La vulnerabilidad se registró con el identificador CVE-2026-42608 y es una vulnerabilidad de recorrido de rutas que se corrigió primero en Grav 2.0, la versión de prueba 2.0.0-beta.2, mientras que el aviso de seguridad se publicó el 27 de abril.
La corrección añadió la función sanitizeId(), que solo acepta identificadores que coincidan con la lista de permitidos [A-Za-z0-9,_-]{1,64}. Grav aclaró que el fallo se encuentra en el núcleo del sistema, no en el complemento Form; por ello, la versión del complemento, incluida la versión 7.3.0 mencionada en el caso, no determina si el sitio está expuesto.
¿Qué cambia en la práctica?
Las versiones actuales de Grav 2.x estaban protegidas desde hacía meses, pero la corrección aún no se había trasladado a la rama 1.7, que muchos sitios siguen utilizando. Después de compartir los detalles de la explotación con los desarrolladores, Grav publicó la versión 1.7.53.4 para la rama 1.7 e instó a los usuarios de esta rama a actualizarse a ella.
El incidente demuestra que depender de una rama antigua de un sistema de gestión de contenidos puede dejar una vulnerabilidad conocida en el componente principal incluso cuando el complemento relacionado con la función está actualizado. Asimismo, trasladar el sitio de filtraciones a una nueva dirección soluciona el impacto operativo del ataque contra Clop, pero por sí solo no demuestra si los archivos que ShinyHunters afirmó haber robado incluían realmente datos sensibles; Clop lo negó y la fuente no aportó pruebas independientes que resuelvan la afirmación.