
Exploit PoC per CVE-2026-52824 (GHSA-jr9p-4h4j-6c58) — bypass di autenticazione dovuto all'APP_SECRET predefinito di Kimai time-tracking, che interessa le versioni ≤ 2.57.0
Nota: L'URL del repository contiene un ID CVE obsoleto (CVE-2026-49865). Il CVE corretto e attuale tracciato in questo repository è CVE-2026-52824 (GHSA-jr9p-4h4j-6c58).
Toolkit proof-of-concept per l'exploit della vulnerabilità APP_SECRET predefinito hardcoded in Kimai time-tracking (versioni ≤ 2.57.0). Consente il bypass dell'autenticazione tramite cookie KIMAI_REMEMBER contraffatti su deployment Docker non patchati.
Quando è stato divulgato CVE-2026-52824 — un critico CVSS 9.1 con un segreto predefinito hardcoded presente in un'immagine Docker usata da migliaia di self-hoster — la comunità tecnica ne era a conoscenza, e la correzione è stata rilasciata nella 2.58.0. Ma nessuno ha pubblicato un proof-of-concept funzionante.
Così l'ho ricostruito partendo solo dall'advisory.
La catena: Kimai distribuisce APP_SECRET=change_this_to_something_unique nel Docker e in .env.dist. Nella v2.57.0 le signature_properties per i cookie remember-me sono vuote, quindi il FieldsHash collassa in una costante (SHA256('')). Combinando il segreto noto con un hash vuoto, puoi contraffare un cookie KIMAI_REMEMBER per qualsiasi user id — incluso admin (id:1).
Questo repo è il toolkit funzionante completo che va dall'advisory alla sessione admin su qualsiasi istanza non patchata.
| Campo | Valore |
|---|---|
| CVE | CVE-2026-52824 |
| GHSA | GHSA-jr9p-4h4j-6c58 |
| CVSS | 9.1 (Critico) |
| CWE | CWE-1188 — Inizializzazione insicura di risorse predefinite |
| Affette | Kimai ≤ 2.57.0 (immagine Docker / .env.dist) |
| Corretta | 2.58.0 |
| Crediti | Trent M. (AzureADTrent) |
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, le signature_properties per i cookie remember-me sono vuote, rendendo il FieldsHash una costante (SHA256('')). Combinato con il segreto noto, chiunque può contraffare un cookie KIMAI_REMEMBER valido per qualsiasi utente — incluso admin.
APP_SECRET noto → calcolare le firme HMAC-SHA256KIMAI_REMEMBER con lo user_id + username dell'admin| Aspetto | v2.57.0 (Vulnerabile) | v2.58.0 (Patchata) |
|---|---|---|
| Dockerfile | ENV APP_SECRET=change_this_to_something_unique | Nessun default 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 su singolo target — contraffà il cookie e autentica |
batch_pwn.py | Sfruttamento batch multi-thread contro una lista di host |
quick_scan.py | Scanner a due passaggi — filtro rapido poi sonda approfondita |
deep_probe.py | Rilevamento versione tramite molteplici endpoint |
probe_batch.py | Sonda gli host da file per versione + vulnerabilità |
shodan-scanner.py | Integrazione Shodan per scoprire istanze 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
# 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 l'autorizzazione appropriata prima di testare. L'autore non si assume alcuna responsabilità per uso improprio.
MIT non lo so sono stanco ok grazie