Record summary

EIP currently links 2 repository PoCs and 1 Nuclei template to CVE-2026-52824.

Description

### Summary The official Kimai Docker image ships with `APP_SECRET=change_this_to_something_unique` as the default environment variable. The Docker entrypoint does not override or validate this value. Any Kimai instance deployed using the Docker image without explicitly setting `APP_SECRET` runs with a publicly-known Symfony `kernel.secret`, enabling an unauthenticated attacker to forge HMAC-signed cookies and login links to take over any account including super_admin. ### Details `Dockerfile:263` sets `ENV APP_SECRET=change_this_to_something_unique`. This value is consumed by `config/packages/framework.yaml:7` as `kernel.secret`, which Symfony uses to HMAC-sign: - The `KIMAI_REMEMBER` remember-me cookie - LoginLink signatures - Password reset URLs - CSRF tokens The `.docker/entrypoint.sh` does not check for or replace the default sentinel value. The bare-metal `.env.dist:38` ships the same default. No startup-time guard exists anywhere in the codebase that refuses to start when `APP_SECRET` equals the sentinel. User IDs are sequential integers starting from 1. The first super_admin account is almost always `id=1`. User IDs are visible in some URLs and API responses. *A PoC was provided, but removed for security reasons.* ### Impact Any Kimai instance deployed via the official Docker image without overriding `APP_SECRET` can be compromised from the internet. An unauthenticated attacker who can reach the Kimai URL can forge authentication tokens and log in as any user if: - a username is known AND - the correct account ID for this username is guessed AND - the account has no active 2FA (two factor) authentication ## Solution - The entrypoint.sh file is updated and now contains a script that generates a random `APP_SECRET` via `bin2hex(random_bytes(32))` which will be stored in `/opt/kimai/var/data/.appsecret` - The entrypoint.sh will create the file `/opt/kimai/.env.local` containing the `APP_SECRET`, either fetched from the Docker Environment or from the newly created secret file - The documentation was updated to highlight the importance of using a random secret for `APP_SECRET` - The Dockerfile removed default `APP_SECRET=change_this_to_something_unique` - Login links now contain more entropy (see GHSA-m492-gv72-xvxj) - so even without all previous changes, attackers won't be able to generate Login links even for installations that have a hard-coded `APP_SECRET=change_this_to_something_unique` See [https://www.kimai.org/en/security/ghsa-jr9p-4h4j-6c58](https://www.kimai.org/en/security/ghsa-jr9p-4h4j-6c58) for more information.

Description source: GitHub Advisory

Exploitation context

Available material

Repository PoCs
2
Nuclei templates
1

Affected products and versions

1
ProductSourceVersion rangeStatus
GitHub AdvisoryBefore 2.58.0 · Fixed in 2.58.0affected

Proofs of concept

2

Repository PoCs

GitHubcyeezy08/Kimai-CVE-2026-49865-POCRepository PoCby cyeezy08Stars: 0Exploit10 files

71.4 KiB · linked to 2 vulnerabilities

GitHub

PoC details
Analysisdeepseek-v4-pro:cloud ·

Technical assessment

The artifact is a complete exploit toolkit for CVE-2026-52824, a critical authentication bypass in Kimai. It includes a Python script (exploit.py) that forges a KIMAI_REMEMBER cookie using a hardcoded default APP_SECRET and an empty signature_properties hash, then uses the cookie to authenticate against a target instance and access protected pages.

Backdoor review

No backdoor observed in reviewed code

The reviewed text files (README.md, exploit.py, requirements.txt) describe and implement a proof-of-concept exploit for CVE-2026-52824, a known vulnerability in Kimai. The code forges a remember-me cookie using a hardcoded default secret and attempts to access protected pages. No concealed backdoor, credential exfiltration, persistence mechanism, or unrelated payload was observed. The behavior is consistent with the stated exploit purpose.

ClassificationExploit
Model confidence100%
AuthenticationNot required
LanguagesPythonMarkdown
Target softwareKimai
Attack typesauthentication bypassaccount takeovercookie forgery
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The primary artifact is classified as an exploit because the main Python script (exploit.py) contains code that forges a valid authentication cookie and uses it to gain unauthorized access to a target application, which is the definition of an exploit. The README explicitly describes it as a 'Proof-of-concept exploit toolkit' and details the attack chain from advisory to admin session.

README.md:5README.md:15exploit.py:223-365

Requirements

  • Target must be a Kimai instance ≤ 2.57.0 using the default APP_SECRET (change_this_to_something_unique) as shipped in Docker or .env.dist.README.md:5exploit.py:8-11
  • The attacker must know or guess a valid username (e.g., admin, super_admin) and the corresponding user ID is sequential (admin = id:1).README.md:13README.md:42

Observed behavior

  • The exploit script computes a constant FieldsHash (SHA256 of empty string) and uses the known default APP_SECRET to compute an HMAC-SHA256 signature, then assembles a forged KIMAI_REMEMBER cookie.exploit.py:70-100exploit.py:103-130
  • The script sets the forged cookie in an HTTP session and attempts to access protected paths (e.g., /en/dashboard, /en/admin/user/) to verify successful authentication bypass.exploit.py:311-365
  • The README describes the toolkit as containing a single-target exploit, a multi-threaded batch exploitation script, a scanner, version probes, and a Shodan discovery script.README.md:56-65
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Exploit Behavior
Payload withheldThis is the normal, documented behavior of the PoC exploit.exploit.py:103-130exploit.py:223-365
Network Activity
Payload withheldThis is expected for a PoC that validates the vulnerability on a target instance.exploit.py:137-190exploit.py:327-360
File Write
Payload withheldThis is a convenience feature for saving the cookie, not a persistence mechanism.exploit.py:292-295
Review boundaries

What the analysis did not establish

  • Only 3 of 10 files in the repository are included as readable text; the other 7 files (including batch_pwn.py, quick_scan.py, deep_probe.py, probe_batch.py, shodan-scanner.py) are omitted, so the full toolkit behavior cannot be confirmed.
  • The evidence packet reports complete_artifact_coverage as false, indicating that not all files were analyzed.
  • The CVE records for CVE-2026-49865 and CVE-2026-52824 are absent from the acquired CVEList, so the official vulnerability description cannot be cross-referenced.
  • 7 files (53,755 bytes) were omitted from the evidence packet and not reviewed. Their content is unknown.
  • The analysis is limited to static review of the provided text; no dynamic execution was performed.
Model interpretation

This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.

GitHubAzureADTrent/CVE-2026-52824Repository PoCby AzureADTrentStars: 0Writeup1 file

5.2 KiB

GitHub

PoC details
Analysisdeepseek-v4-pro:cloud ·

Technical assessment

A technical writeup for CVE-2026-52824 detailing how a hardcoded APP_SECRET in Kimai Docker images allows forging login links. It includes a PHP code snippet demonstrating the forgery logic but the artifact itself is a README.md document providing analysis, detection, and remediation guidance.

Backdoor review

No backdoor observed in reviewed code

The artifact is a single README.md file documenting CVE-2026-52824. It contains a proof-of-concept PHP script that demonstrates forging a login link for a known-vulnerable Kimai instance. The script uses a hardcoded default secret to compute a valid HMAC and constructs a URL. No backdoor, deceptive payload, or concealed executable behavior targeting the reviewer is present. The PoC is transparently described and serves only to illustrate the vulnerability.

ClassificationWriteup
Model confidence98%
AuthenticationNot required
LanguagesMarkdownPHP
Target softwareKimai
Attack typesAuthentication BypassInsecure Default
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The artifact is a README.md file containing a technical analysis of CVE-2026-52824, including root cause, proof-of-concept code snippet, detection commands, and remediation steps. It does not function as a standalone exploit or scanner; it is a documentation writeup.

README.md:1-118

Requirements

  • Target Kimai instance uses the default APP_SECRET 'change_this_to_something_unique'README.md:21-25
  • Attacker knows or guesses a valid username and user IDREADME.md:79-81

Observed behavior

  • Describes forging a login link by computing an HMAC with the known secret and user IDREADME.md:42-67
  • Explains that a successful forged request returns a 302 redirect and sets a KIMAI_REMEMBER cookieREADME.md:69
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Proof Of Concept Code
Payload withheldDemonstrates the CVE-2026-52824 vulnerability by forging a login link. The code is presented as a static example and does not perform any hidden or harmful action against the reviewer.README.md:42-67
Review boundaries

What the analysis did not establish

  • Only one file (README.md) is provided; no other repository files were inspected.
  • The artifact is a writeup, not executable code; classification is based on its stated purpose and content.
  • Only the README.md file was reviewed; no other files were present in the evidence packet.
  • The analysis scope confirms no binary files were inspected, but none were identified in the artifact.
Model interpretation

This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.

Nuclei templates

1
ProjectDiscoveryCRITICALKimai <= 2.57.0 - Default APP_SECRET Authentication BypassCVSS 9.1

Kimai Docker images <= 2.57.0 ship with a hardcoded APP_SECRET of "change_this_to_something_unique". This default secret is used by Symfony's SignatureHasher to HMAC-sign login links and remember-me cookies. An unauthenticated attacker who knows this default secret can forge valid authentication tokens and hijack any user account, including the super-admin.

Impact

An unauthenticated remote attacker can forge valid login-link URLs to authenticate as any user (including administrators) without knowing their password, achieving full account takeover.

Remediation

Upgrade to Kimai >= 2.58.0 which generates a random APP_SECRET on first boot. Alternatively, manually set a unique APP_SECRET in your .env.local file.

WeaknessesCWE-1188
AuthorsDhiyaneshDK
Template tagscvecve2026kimaidefault-secretauth-bypassaccount-takeover
CVSS vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Shodan: title:"Kimai"
FOFA: title="Kimai"

Source: ProjectDiscovery

References

2