Skip to main content

Docker CVE-2026-52824

CRITICAL
Initialization of a Resource with an Insecure Default (CWE-1188)
2026-07-14 https://github.com/kimai/kimai GHSA-jr9p-4h4j-6c58
9.1
CVSS 4.0 · Vendor: https://github.com/kimai/kimai
Share

Severity by source

Vendor (https://github.com/kimai/kimai) PRIMARY
9.1 CRITICAL
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
vuln.today AI
8.1 HIGH

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (https://github.com/kimai/kimai).

CVSS VectorVendor: https://github.com/kimai/kimai

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

6
Analysis Updated
Sep 15, 2026 - 11:28 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Sep 15, 2026 - 11:22 vuln.today
cvss_changed
CVSS changed
Sep 15, 2026 - 11:22 NVD
9.1 (CRITICAL)
Source Code Evidence Fetched
Jul 14, 2026 - 00:32 vuln.today
Analysis Generated
Jul 14, 2026 - 00:32 vuln.today
CVE Published
Jul 14, 2026 - 00:07 cve.org
CRITICAL

DescriptionCVE.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_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 for more information.

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

More in Docker

View all
CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2019-5736 HIGH POC
8.6 Feb 11

runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac

CVE-2023-32077 HIGH POC
7.5 Aug 24

Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2023-5815 HIGH POC
8.1 Nov 22

The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post

CVE-2026-66384 MEDIUM POC
5.3 Aug 12

Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten

CVE-2014-9357 CRITICAL
10.0 Dec 16

Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build

CVE-2026-52806 CRITICAL POC
9.9 Jun 23

Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config

CVE-2026-56274 HIGH POC
8.7 Jun 23

Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per

CVE-2026-34156 CRITICAL POC
9.9 Mar 30

Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l

CVE-2019-15752 HIGH POC
7.8 Aug 28

Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c

CVE-2025-34221 CRITICAL POC
10.0 Sep 29

Vasion Print (formerly PrinterLogic) Virtual Appliance Host prior to version 25.2.169 and Application prior to version 2

Share

CVE-2026-52824 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy