
PoC-эксплойты для CVE-2026-52824 (GHSA-jr9p-4h4j-6c58) — обход аутентификации в Kimai time-tracking из-за стандартного APP_SECRET, затрагивающий версии ≤ 2.57.0
Примечание: URL репозитория содержит устаревший идентификатор CVE (CVE-2026-49865). Корректный и актуальный CVE, отслеживаемый в этом репозитории, — CVE-2026-52824 (GHSA-jr9p-4h4j-6c58).
Набор инструментов для эксплуатации уязвимости, связанной с жёстко заданным стандартным APP_SECRET в системе учёта рабочего времени Kimai (версии ≤ 2.57.0). Позволяет обойти аутентификацию с помощью поддельных cookie KIMAI_REMEMBER на незащищённых развёртываниях Docker.
Когда вышел CVE-2026-52824 — критическая уязвимость с оценкой CVSS 9.1, вызванная жёстко заданным стандартным секретом в образе Docker, используемом тысячами самостоятельных хостинг-провайдеров, — техническое сообщество знало о ней, и исправление вышло в 2.58.0. Но никто не опубликовал работающий proof-of-concept.
Поэтому я воссоздал его, опираясь только на рекомендации по безопасности.
Цепочка: Kimai поставляет APP_SECRET=change_this_to_something_unique в Docker и .env.dist. В v2.57.0 signature_properties для cookie remember-me пуст, поэтому FieldsHash сводится к константе (SHA256('')). Объединив известный секрет с пустым хешем, можно подделать cookie KIMAI_REMEMBER для любого идентификатора пользователя — включая администратора (id:1).
Этот репозиторий — полный рабочий набор инструментов, который проходит путь от рекомендации по безопасности до сессии администратора на любом незащищённом экземпляре.
| Поле | Значение |
|---|---|
| CVE | CVE-2026-52824 |
| GHSA | GHSA-jr9p-4h4j-6c58 |
| CVSS | 9.1 (Критический) |
| CWE | CWE-1188 — Небезопасная инициализация ресурса по умолчанию |
| Затронуто | Kimai ≤ 2.57.0 (образ Docker / .env.dist) |
| Исправлено | 2.58.0 |
| Автор | Trent M. (AzureADTrent) |
Kimai поставляется с жёстко заданным стандартным APP_SECRET в своём образе Docker и .env.dist:
APP_SECRET=change_this_to_something_unique
В v2.57.0 signature_properties для cookie remember-me пуст, что делает FieldsHash константой (SHA256('')). В сочетании с известным секретом любой может подделать действительный cookie KIMAI_REMEMBER для любого пользователя — включая администратора.
APP_SECRET → вычислить подписи HMAC-SHA256KIMAI_REMEMBER с user_id и именем пользователя администратора| Аспект | v2.57.0 (Уязвимая) | v2.58.0 (Исправленная) |
|---|---|---|
| Dockerfile | ENV APP_SECRET=change_this_to_something_unique | Нет жёстко заданного значения по умолчанию |
| entrypoint.sh | Нет генерации секрета | Генерирует bin2hex(random_bytes(32)) при первой загрузке |
| Хранение | Н/Д | Сохраняется в /opt/kimai/var/data/.appsecret |
| Файл | Назначение |
|---|---|
exploit.py | Эксплуатация одной цели — подделывает cookie и аутентифицируется |
batch_pwn.py | Многопоточная пакетная эксплуатация по списку хостов |
quick_scan.py | Двухпроходный сканер — быстрая фильтрация, затем глубокое зондирование |
deep_probe.py | Определение версии через несколько эндпоинтов |
probe_batch.py | Зондирование хостов из файла на предмет версии и уязвимости |
shodan-scanner.py | Интеграция с Shodan для обнаружения экземпляров 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
# Из файла со списком 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 — HTTP-клиентshodan — клиент Shodan API (только для shodan-scanner.py)Этот набор инструментов предоставляется исключительно для авторизованного тестирования безопасности и исследований. Несанкционированный доступ к компьютерным системам незаконен. Всегда получайте надлежащее разрешение перед тестированием. Автор не несёт ответственности за неправомерное использование.
MIT не знаю, я устал, ок, спасибо