Skip to main content

Kimai CVE-2026-52823

MEDIUM
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-07-14 https://github.com/kimai/kimai GHSA-r8vr-m544-qh4h
5.3
CVSS 4.0 · Vendor: https://github.com/kimai/kimai
Share

Severity by source

Vendor (https://github.com/kimai/kimai) PRIMARY
5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/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
5.4 MEDIUM

Attacker needs no privileges (PR:N) but victim must visit a malicious page (UI:R); impact is confined to timesheet data integrity and stopping active tracking, with no confidentiality impact.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:L/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
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

3
CVSS changed
Sep 15, 2026 - 11:22 NVD
5.3 (MEDIUM)
Source Code Evidence Fetched
Jul 14, 2026 - 00:31 vuln.today
Analysis Generated
Jul 14, 2026 - 00:31 vuln.today

DescriptionCVE.org

Summary

Kimai 2.56.0 contains authenticated cross-site request forgery issues in its timesheet state-changing API endpoints. The application reuses the browser's existing session for /api/* requests, and both the stop and restart operations are exposed through GET and PATCH routes that directly modify business state.

As a result, an attacker can trick a logged-in user into visiting a malicious page and cause unauthorized timesheet actions without the victim's consent. Depending on the endpoint, this can stop a running timesheet or create and start a new one from historical data.

Details

The issue affects at least the following API routes:

  • GET /api/timesheets/{id}/stop
  • GET /api/timesheets/{id}/restart

Both routes are non-read-only operations but are still exposed as GET. In src/API/TimesheetController.php.

*A PoC was provided, but removed for security reasons.*

Impact

This vulnerability allows an attacker to trigger unauthorized business-state changes as a logged-in victim. In the validated stop case, a running timesheet can be stopped, affecting time tracking integrity and potentially availability of ongoing work tracking. In the restart case, a historical timesheet can be restarted and a new record can be created without the victim's knowledge.

These actions can corrupt time records, distort billing and reporting, interfere with approvals or audits, and create persistent database-side side effects. Because exploitation requires only that the victim visit a malicious page while authenticated, the attack barrier is low.

Solution

The GET routes were removed, both stop and restart are only available via PATCH.

See https://www.kimai.org/en/security/ghsa-r8vr-m544-qh4h for more information.

AnalysisAI

Cross-site request forgery in Kimai's timesheet API allows an unauthenticated attacker to trigger unauthorized state changes against any logged-in victim by embedding malicious GET requests in attacker-controlled pages. Kimai versions up to and including 2.57.0 expose the stop and restart timesheet operations as HTTP GET routes, which browsers will follow automatically using the victim's active session cookie - no CSRF token is required. Impact is limited to timesheet data integrity and availability (corrupted time records, unauthorized entries, billing distortion), not system compromise; no public exploit is confirmed at time of analysis, and no active exploitation has been reported by CISA KEV.

Technical ContextAI

Kimai is a PHP-based open-source time tracking application distributed via Composer (pkg:composer/kimai/kimai). The root cause is CWE-352 (Cross-Site Request Forgery): the application reuses the browser session for API calls under /api/* but fails to enforce HTTP method semantics for state-changing operations. Specifically, GET /api/timesheets/{id}/stop and GET /api/timesheets/{id}/restart in src/API/TimesheetController.php perform mutations that should only be triggered by non-idempotent methods (POST/PATCH). Because browsers automatically attach session cookies to GET requests triggered by <img> tags, <a> hrefs, <script> src attributes, or redirects, an attacker page can silently invoke these endpoints without any user consent or CSRF token. The fix in 2.58.0 removes the GET routes entirely, confining both operations to PATCH, which browsers do not invoke passively.

RemediationAI

Upgrade Kimai to version 2.58.0 or later; this release removes the vulnerable GET routes for stop and restart, restricting both operations exclusively to PATCH requests and eliminating the CSRF attack surface by design. The vendor advisory at https://www.kimai.org/en/security/ghsa-r8vr-m544-qh4h confirms this fix. If immediate upgrade is not possible, configure a reverse proxy or WAF to block GET requests matching the patterns /api/timesheets/*/stop and /api/timesheets/*/restart - note this may break any third-party integrations or scripts that currently rely on the GET form of these endpoints. Additionally, enforcing SameSite=Strict on session cookies at the web server or application layer would prevent cross-origin GET requests from carrying the session, though this is a defense-in-depth measure and not a substitute for patching.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

Share

CVE-2026-52823 vulnerability details – vuln.today

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