Кимай до версии 2.56.0 не применяет проверки членства в команде в TimesheetVoter::voteOnAttribute(), который сопоставляет разрешения только с own_timesheet илиother_timesheet. В результате любой прошедший проверку подлинности пользователь с ROLE_TEAMLEAD (или ролью, владеющей edit_other_timesheet/delete_other_timesheet) может читать, изменять и безвозвратно удалять расписания, принадлежащие любому пользователю в масштабе всей системы, через API, независимо от членства в команде. Идентификаторы расписаний представляют собой последовательные целые числа и легко перечисляются.
Учетные записи ROLE_USER правильно ограничены. (Примечание: сопровождающие характеризуют такое поведение как соответствие документированной модели разрешений.)
Показать оригинальное описание (EN)
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.)
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Kimai Kimai
cpe:2.3:a:kimai:kimai:*:*:*:*:*:*:*:*
|
— |
2.56.0
|