
Kimai-CVE-2026-49865-POC — Updated!
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
Kimai CVE-2026-52824 — Bypass dell'autenticazione con APP_SECRET predefinito
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.
La Storia
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.
Riepilogo della Vulnerabilità
| 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) |
Come Funziona
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.
Catena di Attacco
- Identifica un'istanza Kimai che esegue ≤ 2.57.0
- Gli ID utente sono sequenziali (admin = id:1)
APP_SECRETnoto → calcola le firme HMAC-SHA256- Falsifica il cookie
KIMAI_REMEMBERcon user_id + username di admin - Il server valida l'HMAC → sessione admin completa
- L'accesso admin consente manipolazione dei timesheet, creazione di utenti e potenziale RCE
Cosa è Cambiato nella v2.58.0
| 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 |
Contenuti del Toolkit
| 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 |
Installazione
git clone https://github.com/cyeezy08/Kimai-CVE-2026-49865-POC.git
cd Kimai-CVE-2026-49865-POC
pip install -r requirements.txt
Utilizzo
Exploit su Bersaglio Singolo
python3 exploit.py https://kimai.example.com
python3 exploit.py https://kimai.example.com admin --dump
Sfruttamento Batch
# Da un file di URL
python3 batch_pwn.py kimai_hosts.txt results.txt 30
Scoperta con Shodan
export SHODAN_API_KEY="your_key"
python3 shodan-scanner.py --search --output kimai_hosts.txt
Sondaggio Versioni
python3 deep_probe.py kimai_hosts.txt versioned_results.txt
python3 quick_scan.py hosts_file.txt
Requisiti
- Python 3.8+
requests— client HTTPshodan— client API Shodan (solo pershodan-scanner.py)
Dichiarazione di non responsabilità
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.
Licenza
MIT, non lo so, sono stanco, ok grazie