CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

CVE-2026-52825

mediumcovered by 1 sourcefirst seen 2026-07-14
Summary Kimai contains an authenticated improper authorization vulnerability in Team-related assignment APIs. A Teamlead who can edit their own team can use backend API endpoints to add users or activities that fall outside their intended visible or manageable scope, even when the frontend correctly hides those targets. This affects both team member assignment and team activity assignment. The issue is caused by treating "may edit this team" as equivalent to "may attach any referenced object to this team", without performing a second authorization check on the target user or activity. Details The issue affects at least the following API routes: - POST /api/teams/{id}/members/{userId} - POST /api/teams/{id}/activities/{activityId} In both cases, the backend checks whether the caller may edit the Team, but it does not verify whether the referenced User or Activity falls inside the caller's allowed management scope. For team member assignment, the frontend form correctly limits the visible user choices. In src/Form/TeamEditForm.php, the team edit form uses UserType: $builder->add('users', UserType::class, [ 'label' => 'add_user.label', 'help' => 'team.add_user.help', 'mapped' => false, 'multiple' => false, 'expanded' => false, 'required' => false, 'ignore_users' => $team !== null ? $team->getUsers() : [] ]); In src/Form/Type/UserType.php, the user selector is built from UserRepository::getQueryBuilderForFormType(): $query = new UserFormTypeQuery(); $query->setUser($options['user']); $qb = $this->userRepository->getQueryBuilderForFormType($query); $users = $qb->getQuery()->getResult(); And in src/Repository/UserRepository.php, Teamlead-visible candidates are limited to team members from teams they lead: if (null !== $user && $user->isTeamlead()) { $userIds = []; foreach ($user->getTeams() as $team) { if ($team->isTeamlead($user)) { foreach ($team->getUsers() as $teamMember) { $userIds[] = $teamMember->getId(); } } } $userIds = array_unique($userIds); $qb->s

⚡ Watch CVE-2026-52825

Get an email if CVE-2026-52825 is added to CISA KEV, gains public exploit code, or a new advisory cites it — max one per day, one-click unsubscribe.

Advisory coverage (1)

External references

NVD record for CVE-2026-52825

CVE.org record

Embed the live status

CVE-2026-52825 live status badge — this badge updates automatically when the KEV or exploit status changes. How to embed it →

[![CVE-2026-52825 status](https://www.csirts.com/badge/CVE-2026-52825)](https://www.csirts.com/cve/CVE-2026-52825)