
PoC-Exploits für CVE-2026-52824 (GHSA-jr9p-4h4j-6c58) — Kimai-Zeiterfassung: Authentifizierungsumgehung durch Standard-APP_SECRET, betrifft Versionen ≤ 2.57.0
Hinweis: Die Repository-URL enthält eine veraltete CVE-ID (CVE-2026-49865). Die korrekte und aktuelle, in diesem Repository verfolgte CVE ist CVE-2026-52824 (GHSA-jr9p-4h4j-6c58).
Proof-of-Concept-Exploit-Toolkit für die hartcodierte Standard-APP_SECRET-Schwachstelle in Kimai-Zeiterfassung (Versionen ≤ 2.57.0). Ermöglicht die Umgehung der Authentifizierung über gefälschte KIMAI_REMEMBER-Cookies auf ungepatchten Docker-Deployments.
Als CVE-2026-52824 veröffentlicht wurde — ein kritischer CVSS-9.1-Fehler mit einem hartcodierten Standard-Secret in einem Docker-Image, das von Tausenden Self-Hostern verwendet wird — wusste die technische Community davon, und der Fix wurde in 2.58.0 ausgeliefert. Aber niemand veröffentlichte einen funktionierenden Proof-of-Concept.
Also habe ich ihn allein aus dem Advisory rekonstruiert.
Die Kette: Kimai liefert APP_SECRET=change_this_to_something_unique in Docker und .env.dist mit. In v2.57.0 ist die signature_properties für Remember-Me-Cookies leer, sodass der FieldsHash zu einer Konstante kollabiert (SHA256('')). Kombiniert man das bekannte Secret mit einem leeren Hash, kann man ein KIMAI_REMEMBER-Cookie für jede Benutzer-ID fälschen — einschließlich Admin (id:1).
Dieses Repo ist das vollständige funktionierende Toolkit, das von Advisory zu Admin-Session auf jeder ungepatchten Instanz führt.
| Feld | Wert |
|---|---|
| CVE | CVE-2026-52824 |
| GHSA | GHSA-jr9p-4h4j-6c58 |
| CVSS | 9.1 (Kritisch) |
| CWE | CWE-1188 — Unsichere Standard-Ressourceninitialisierung |
| Betroffen | Kimai ≤ 2.57.0 (Docker-Image / .env.dist) |
| Behoben | 2.58.0 |
| Credit | Trent M. (AzureADTrent) |
Kimai wird mit einem hartcodierten Standard-APP_SECRET in seinem Docker-Image und .env.dist ausgeliefert:
APP_SECRET=change_this_to_something_unique
In v2.57.0 ist die signature_properties für Remember-Me-Cookies leer, wodurch der FieldsHash zu einer Konstante wird (SHA256('')). In Kombination mit dem bekannten Secret kann jeder ein gültiges KIMAI_REMEMBER-Cookie für jeden Benutzer fälschen — einschließlich Admin.
APP_SECRET → HMAC-SHA256-Signaturen berechnenKIMAI_REMEMBER-Cookie mit der user_id + dem Benutzernamen des Admins fälschen| Aspekt | v2.57.0 (Anfällig) | v2.58.0 (Gepatcht) |
|---|---|---|
| Dockerfile | ENV APP_SECRET=change_this_to_something_unique | Kein hartcodierter Standard |
| entrypoint.sh | Keine Secret-Generierung | Generiert bin2hex(random_bytes(32)) beim ersten Start |
| Speicherung | N/A | Persistiert in /opt/kimai/var/data/.appsecret |
| Datei | Zweck |
|---|---|
exploit.py | Einzelziel-Exploit — fälscht Cookie und authentifiziert |
batch_pwn.py | Multithreaded-Batch-Exploitation gegen eine Liste von Hosts |
quick_scan.py | Zwei-Pass-Scanner — schneller Filter, dann tiefgehende Prüfung |
deep_probe.py | Versionserkennung über mehrere Endpunkte |
probe_batch.py | Hosts aus Datei auf Version + Anfälligkeit prüfen |
shodan-scanner.py | Shodan-Integration zum Auffinden von Kimai-Instanzen |
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 — HTTP-Clientshodan — Shodan-API-Client (nur für shodan-scanner.py)Dieses Toolkit wird ausschließlich für autorisierte Sicherheitstests und Forschung bereitgestellt. Unbefugter Zugriff auf Computersysteme ist illegal. Holen Sie stets eine ordnungsgemäße Autorisierung ein, bevor Sie Tests durchführen. Der Autor übernimmt keine Haftung für Missbrauch.
MIT idk iam tired ok thx