CVE-2026-41498: Kimai missing object-level authorization in Team API

CVE-2026-41498 · Severity: low · CVSS 3.3 · Published 2026-05-08

Kimai is an open-source time tracking application used by businesses to manage employee hours and project teams. A security flaw in the application's programming interface (API) allows certain authorized users to modify team memberships and project assignments they should not have access to. While this requires the attacker to already have specific administrative permissions, it could allow a team lead to improperly alter teams they do not manage, potentially leading to unauthorized data modification or organizational disruption.

Technologies: Kimai, kimai/kimai (Packagist). Vendors: Kimai, Packagist.

Quick answers

Is CVE-2026-41498 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-41498 being exploited in the wild.
How severe is CVE-2026-41498?
Low severity, with a CVSS score of 3.3, published 8 May 2026.
Which products and versions are affected?
Kimai < 2.54.0; kimai/kimai (Packagist) < 2.54.0, ECOSYSTEM:introduced=0,fixed=2.54.0.
Is there a fix for CVE-2026-41498?
Yes. kimai/kimai (Packagist): upgrade to 2.54.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-41498 attacked?
It is attacked over the network, in a network appliance.
Am I affected by CVE-2026-41498?
Check whether you run Kimai or kimai/kimai (Packagist) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • kimai/kimai (Packagist): upgrade to 2.54.0 or later
    composer require kimai/kimai:^2.54.0

Technical details

A missing object-level authorization vulnerability exists in Kimai's Team API endpoints within `src/API/TeamController.php`. The endpoints incorrectly use the `#[IsGranted('edit_team')]` attribute instead of `#[IsGranted('edit', 'team')]`. This causes the Symfony `TeamVoter` to abstain from voting because it does not recognize the single-argument attribute, leaving authorization solely to the `RolePermissionVoter`. Consequently, any user with the global `edit_team` permission (such as a promoted `ROLE_TEAMLEAD`) can bypass ownership checks and modify membership, customer, project, and activity assignments for any team via the API. This issue is patched in version 2.54.0.

Affected products

  • Kimai Kimai < 2.54.0

Identifiers

  • CVE-2026-41498
  • GHSA-jv9x-w4gm-hwcm

Timeline

  • 2026-04-13: patched: Version 2.54.0 released
  • 2026-04-21: advisory: GitHub Security Advisory published
  • 2026-05-08: disclosed: CVE published to NVD

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.