
PoC d'exploits pour CVE-2026-52824 (GHSA-jr9p-4h4j-6c58) — contournement d'authentification via l'APP_SECRET par défaut de Kimai time-tracking affectant les versions ≤ 2.57.0
Remarque : L'URL du dépôt contient un identifiant CVE obsolète (CVE-2026-49865). Le CVE correct et actuel suivi dans ce dépôt est CVE-2026-52824 (GHSA-jr9p-4h4j-6c58).
Boîte à outils d'exploitation proof-of-concept pour la vulnérabilité du APP_SECRET par défaut codé en dur dans Kimai time-tracking (versions ≤ 2.57.0). Permet un contournement d'authentification via des cookies KIMAI_REMEMBER falsifiés sur des déploiements Docker non corrigés.
Quand CVE-2026-52824 est tombé — un critique CVSS 9.1 avec un secret par défaut codé en dur présent dans une image Docker utilisée par des milliers d'auto-hébergeurs — la communauté technique était au courant, et le correctif a été livré dans la 2.58.0. Mais personne n'a publié de proof-of-concept fonctionnel.
Je l'ai donc reconstruit à partir de l'avis seul.
La chaîne : Kimai livre APP_SECRET=change_this_to_something_unique dans Docker et .env.dist. Dans la v2.57.0, les signature_properties pour les cookies remember-me sont vides, donc le FieldsHash se réduit à une constante (SHA256('')). Combinez le secret connu avec un hash vide et vous pouvez falsifier un cookie KIMAI_REMEMBER pour n'importe quel id utilisateur — y compris admin (id:1).
Ce dépôt est la boîte à outils complète et fonctionnelle qui va de l'avis à la session admin sur toute instance non corrigée.
| Champ | Valeur |
|---|---|
| CVE | CVE-2026-52824 |
| GHSA | GHSA-jr9p-4h4j-6c58 |
| CVSS | 9.1 (Critique) |
| CWE | CWE-1188 — Initialisation non sécurisée de ressource par défaut |
| Affecté | Kimai ≤ 2.57.0 (image Docker / .env.dist) |
| Corrigé | 2.58.0 |
| Crédit | Trent M. (AzureADTrent) |
Kimai est livré avec un APP_SECRET par défaut codé en dur dans son image Docker et .env.dist :
APP_SECRET=change_this_to_something_unique
Dans la v2.57.0, les signature_properties pour les cookies remember-me sont vides, ce qui fait du FieldsHash une constante (SHA256('')). Combiné au secret connu, n'importe qui peut falsifier un cookie KIMAI_REMEMBER valide pour n'importe quel utilisateur — y compris admin.
APP_SECRET connu → calculer les signatures HMAC-SHA256KIMAI_REMEMBER avec le user_id + username de l'admin| Aspect | v2.57.0 (Vulnérable) | v2.58.0 (Corrigé) |
|---|---|---|
| Dockerfile | ENV APP_SECRET=change_this_to_something_unique | Aucun défaut codé en dur |
| entrypoint.sh | Aucune génération de secret | Génère bin2hex(random_bytes(32)) au premier démarrage |
| Stockage | N/A | Persiste dans /opt/kimai/var/data/.appsecret |
| Fichier | Objectif |
|---|---|
exploit.py | Exploit ciblé unique — falsifie le cookie et s'authentifie |
batch_pwn.py | Exploitation par lots multi-thread contre une liste d'hôtes |
quick_scan.py | Scanner en deux passes — filtre rapide puis sonde approfondie |
deep_probe.py | Détection de version via plusieurs endpoints |
probe_batch.py | Sonde les hôtes depuis un fichier pour la version + vulnérabilité |
shodan-scanner.py | Intégration Shodan pour découvrir des instances 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 — client HTTPshodan — client API Shodan (uniquement pour shodan-scanner.py)Cette boîte à outils est fournie pour les tests de sécurité et la recherche autorisés uniquement. L'accès non autorisé à des systèmes informatiques est illégal. Obtenez toujours une autorisation appropriée avant de tester. L'auteur n'assume aucune responsabilité en cas de mauvaise utilisation.
MIT idk iam tired ok thx