Executive brief
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.
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
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