
PoC exploits para CVE-2026-52824 (GHSA-jr9p-4h4j-6c58) — bypass de autenticación por APP_SECRET predeterminado en Kimai time-tracking que afecta a las versiones ≤ 2.57.0
Nota: La URL del repositorio contiene un ID de CVE desactualizado (CVE-2026-49865). El CVE correcto y actual rastreado en este repositorio es CVE-2026-52824 (GHSA-jr9p-4h4j-6c58).
Kit de herramientas de exploit de prueba de concepto para la vulnerabilidad del APP_SECRET predeterminado hardcodeado en Kimai time-tracking (versiones ≤ 2.57.0). Permite la omisión de autenticación mediante cookies KIMAI_REMEMBER falsificadas en implementaciones de Docker sin parchear.
Cuando salió CVE-2026-52824 — un crítico CVSS 9.1 con un secreto predeterminado hardcodeado presente en una imagen de Docker utilizada por miles de auto-hospedadores — la comunidad técnica lo conocía, y la corrección se envió en 2.58.0. Pero nadie publicó una prueba de concepto funcional.
Así que la reconstruí solo a partir del aviso.
La cadena: Kimai incluye APP_SECRET=change_this_to_something_unique en Docker y .env.dist. En v2.57.0, las signature_properties para las cookies remember-me están vacías, por lo que el FieldsHash colapsa a una constante (SHA256('')). Combina el secreto conocido con un hash vacío y puedes falsificar una cookie KIMAI_REMEMBER para cualquier id de usuario — incluido el admin (id:1).
Este repositorio es el kit de herramientas funcional completo que va desde el aviso hasta la sesión de admin en cualquier instancia sin parchear.
| Campo | Valor |
|---|---|
| CVE | CVE-2026-52824 |
| GHSA | GHSA-jr9p-4h4j-6c58 |
| CVSS | 9.1 (Crítico) |
| CWE | CWE-1188 — Inicialización insegura de recursos predeterminados |
| Afectados | Kimai ≤ 2.57.0 (imagen Docker / .env.dist) |
| Corregido | 2.58.0 |
| Crédito | Trent M. (AzureADTrent) |
Kimai se distribuye con un APP_SECRET predeterminado hardcodeado en su imagen de Docker y .env.dist:
APP_SECRET=change_this_to_something_unique
En v2.57.0, las signature_properties para las cookies remember-me están vacías, lo que hace que el FieldsHash sea una constante (SHA256('')). Combinado con el secreto conocido, cualquiera puede falsificar una cookie KIMAI_REMEMBER válida para cualquier usuario — incluido el admin.
APP_SECRET conocido → calcular firmas HMAC-SHA256KIMAI_REMEMBER con el user_id + username del admin| Aspecto | v2.57.0 (Vulnerable) | v2.58.0 (Parcheado) |
|---|---|---|
| Dockerfile | ENV APP_SECRET=change_this_to_something_unique | Sin valor predeterminado hardcodeado |
| entrypoint.sh | Sin generación de secreto | Genera bin2hex(random_bytes(32)) en el primer arranque |
| Almacenamiento | N/A | Persiste en /opt/kimai/var/data/.appsecret |
| Archivo | Propósito |
|---|---|
exploit.py | Exploit de objetivo único — falsifica la cookie y autentica |
batch_pwn.py | Explotación por lotes multihilo contra una lista de hosts |
quick_scan.py | Escáner de dos pasadas — filtro rápido y luego sonda profunda |
deep_probe.py | Detección de versión mediante múltiples endpoints |
probe_batch.py | Sondear hosts desde un archivo para versión + vulnerabilidad |
shodan-scanner.py | Integración con Shodan para descubrir instancias de Kimai |
git clone https://github.com/cyeezy08/Kimai-CVE-2026-49865-POC.git
cd Kimai-CVE-2026-49865-POC
pip install -r requirements.txt
python3 exploit.py https://kimai.example.com
python3 exploit.py https://kimai.example.com admin --dump
# From a file of URLs
python3 batch_pwn.py kimai_hosts.txt results.txt 30
export SHODAN_API_KEY="your_key"
python3 shodan-scanner.py --search --output kimai_hosts.txt
python3 deep_probe.py kimai_hosts.txt versioned_results.txt
python3 quick_scan.py hosts_file.txt
requests — cliente HTTPshodan — cliente de la API de Shodan (solo para shodan-scanner.py)Este kit de herramientas se proporciona únicamente para pruebas de seguridad autorizadas e investigación. El acceso no autorizado a sistemas informáticos es ilegal. Obtenga siempre la autorización adecuada antes de realizar pruebas. El autor no asume ninguna responsabilidad por el uso indebido.
MIT idk iam tired ok thx