Docker
CVE-2026-52824
CRITICAL
Severity by source
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Remote unauthenticated (AV:N/PR:N/UI:N) but AC:H due to required username knowledge, account-ID guessing, absence of 2FA and the default-secret condition; full account takeover gives C:H/I:H/A:H.
Primary rating from Vendor (https://github.com/kimai/kimai).
CVSS VectorVendor: https://github.com/kimai/kimai
Lifecycle Timeline
6DescriptionCVE.org
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_REMEMBERremember-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_SECRETviabin2hex(random_bytes(32))which will be stored in/opt/kimai/var/data/.appsecret - The entrypoint.sh will create the file
/opt/kimai/.env.localcontaining theAPP_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 for more information.
Articles & Coverage 1
AnalysisAI
We need produce JSON object per schema. Need synthesize data. We need read all. Need be careful: Every field plain string, not array. data_quality_flags is array though schema says JSON array? User says every field below must be plain text string, but data_quality_flags is "JSON array of CONCRETE..." Contradiction? It explicitly says Return JSON object with fields and data_quality_flags is array. In PRECISION maybe. Need output valid JSON. So data_quality_flags should be array, not string. But initial "Every field below MUST be a plain text string — NOT an array" might include data_quality_flags? It says data_quality_flags: "JSON array..." Specific overrides? Need likely return array for data_quality_flags. But "Every field below MUST be plain text string"— maybe they expect field as string? It says JSON array, but top says not array. Hmm. We need follow schema: data_quality_flags is array. In prior tasks, data_quality_flags is array. We'll output array. Need ensure other fields strings.
Need fill all fields based on data.
CVE-2026-52824 Kimai default APP_SECRET in Docker image.
Product_name: Kimai (1-3 words). Could be "Kimai" or "Kimai Docker image"? product_name specific product/service, 1-3 words. "Kimai" best.
Summary: 2-3 sentence plain-language. Should not copy desc. Start with specific impact verb and product. e.g. "Account takeover in Kimai time-tracking deployments using the official Docker image stems from a static default APP_SECRET..." Mention affected versions <=2.57.0, fixed 2.58.0. PoC publicly available, no KEV, EPSS not provided? Data includes no EPSS, no KEV. Need mention if actively exploited? KEV absent; use "no active exploitation status in CISA KEV" perhaps? Summary should mention if actively exploited (KEV), if POC exists, EPSS risk if notable. EPSS missing. So say "Public exploit/PoC templates exist (Nuclei), but no CISA KEV listing is provided." Need not use forbidden phrase. Could say "Account takeover in Kimai (<=2.57.0) results from
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac
Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post
Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten
Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build
Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l
Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c
Vasion Print (formerly PrinterLogic) Virtual Appliance Host prior to version 25.2.169 and Application prior to version 2
Share
External POC / Exploit Code
Leaving vuln.today
GHSA-jr9p-4h4j-6c58