Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-80202

CVE-2026-80202: Kimai Authentication Bypass Vulnerability

CVE-2026-80202 is an authentication bypass flaw in Kimai that allows team leads to access timesheets across all teams. This post explains the technical details, affected versions, impact, and mitigation steps.

Published:

CVE-2026-80202 Overview

CVE-2026-80202 is an authorization bypass vulnerability in Kimai, an open-source time-tracking application, affecting all versions before 2.56.0. The flaw resides in the TimesheetVoter::voteOnAttribute() method, which maps permissions only to own_timesheet or other_timesheet without enforcing team-membership checks. Any authenticated user holding ROLE_TEAMLEAD (or any role granting edit_other_timesheet or delete_other_timesheet) can read, modify, or permanently delete timesheets belonging to any user across the system via the API. Timesheet IDs are sequential integers, making enumeration trivial. The maintainers characterize this behavior as matching the documented permission model.

Critical Impact

Team leads can access, alter, and delete timesheet records for any user system-wide, regardless of team membership, enabling data tampering and destruction of billing records.

Affected Products

  • Kimai time-tracking application, all versions prior to 2.56.0
  • Deployments exposing the Kimai API to authenticated users with ROLE_TEAMLEAD
  • Multi-tenant Kimai instances relying on team boundaries for data isolation

Discovery Timeline

  • 2026-08-26 - CVE-2026-80202 published to NVD
  • 2026-08-26 - Last updated in NVD database

Technical Details for CVE-2026-80202

Vulnerability Analysis

The vulnerability is a broken access control issue classified under CWE-863: Incorrect Authorization. Kimai uses Symfony's voter mechanism to determine whether an authenticated user may perform an action on a timesheet. The TimesheetVoter::voteOnAttribute() implementation resolves each request into one of two permission buckets: own_timesheet for records owned by the caller, or other_timesheet for records owned by anyone else.

The voter grants access whenever the caller holds a permission such as view_other_timesheet, edit_other_timesheet, or delete_other_timesheet. It never checks whether the target timesheet's owner belongs to a team led by the caller. ROLE_TEAMLEAD accounts are granted these permissions by default, so a team lead can operate on the timesheets of users outside their own team.

Standard ROLE_USER accounts are correctly restricted to their own records.

Root Cause

The root cause is a missing scope check in the authorization decision. The voter conflates the capability to act on other users' timesheets with unlimited scope over all such timesheets. Team membership, which the product documentation implies as an isolation boundary, is not evaluated inside the voter.

Attack Vector

An authenticated attacker with ROLE_TEAMLEAD sends authenticated requests to the Kimai REST API endpoints for timesheet retrieval, modification, and deletion. Because timesheet identifiers are sequential integers, the attacker enumerates IDs directly and issues GET, PATCH, or DELETE calls against arbitrary records. No additional privileges, user interaction, or network position beyond API reachability are required.

Exploitation details are described in the GitHub Security Advisory GHSA-9g2q-w3w2-vf7q and the VulnCheck Advisory on Kimai Bypass.

Detection Methods for CVE-2026-80202

Indicators of Compromise

  • API requests from ROLE_TEAMLEAD accounts to /api/timesheets/{id} targeting sequential ID ranges outside their team scope
  • Unexpected PATCH or DELETE operations against timesheet records owned by users in other teams
  • Bulk enumeration patterns showing many GET /api/timesheets/{id} requests with incrementing integer IDs
  • Audit log entries showing timesheet modifications by team leads who do not manage the affected user

Detection Strategies

  • Correlate the acting user's team membership with the target timesheet's owner and alert when they do not match
  • Baseline typical API call volume per team lead and flag deviations consistent with ID enumeration
  • Monitor web server logs for high-rate sequential access to /api/timesheets/ endpoints

Monitoring Recommendations

  • Enable and centralize Kimai application and API access logs in a SIEM for long-term retention
  • Alert on any DELETE /api/timesheets/{id} operation performed by non-admin accounts
  • Track the ratio of other_timesheet to own_timesheet operations per user to identify outliers

How to Mitigate CVE-2026-80202

Immediate Actions Required

  • Upgrade Kimai to version 2.56.0 or later on all instances
  • Audit accounts holding ROLE_TEAMLEAD and revoke the role from users who do not require it
  • Review recent timesheet modifications and deletions for unauthorized changes and restore from backup where needed
  • Restrict network exposure of the Kimai API to trusted networks or authenticated VPN users

Patch Information

The issue is addressed in Kimai 2.56.0. Refer to the GitHub Security Advisory GHSA-9g2q-w3w2-vf7q for the fix commit and release notes. Note that the maintainers state this behavior matches the documented permission model, so administrators should validate that the updated behavior aligns with their operational expectations.

Workarounds

  • Remove edit_other_timesheet and delete_other_timesheet permissions from ROLE_TEAMLEAD until upgrade is possible
  • Create a custom role with only view_other_timesheet where write access to peer timesheets is not required
  • Enforce reverse-proxy access controls that restrict /api/timesheets/ endpoints to admin accounts pending patch deployment
bash
# Example: upgrade Kimai via composer to the fixed release
composer require kimai/kimai:^2.56.0
php bin/console kimai:update
php bin/console cache:clear --env=prod

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.