Kimai before 2.56.0 does not enforce team-membership...
Critical severity
Unreviewed
Published
Aug 31, 2026
to the GitHub Advisory Database
•
Updated Aug 31, 2026
Description
Published by the National Vulnerability Database
Aug 26, 2026
Published to the GitHub Advisory Database
Aug 31, 2026
Last updated
Aug 31, 2026
Kimai before 2.56.0 does not enforce team-membership checks in TimesheetVoter::voteOnAttribute(), which maps permissions only to own_timesheet or other_timesheet. As a result, any authenticated user with ROLE_TEAMLEAD (or a role holding edit_other_timesheet/delete_other_timesheet) can read, modify, and permanently delete timesheets belonging to any user system-wide via the API, regardless of team membership. Timesheet IDs are sequential integers and trivially enumerable. ROLE_USER accounts are correctly restricted. (Note: the maintainers characterize this behavior as matching the documented permission model.)
References