Insufficient access control checks in ProjectUsersAddCommand (used in manage_proj_user_add.php and REST API endpoint PUT /project/{id}/users) allows users having manage_project_threshold access level (manager by default) to grant project-level administrator access to any user (including themselves) in any Project they have manager rights in.
The normal project-user add form does restrict the selectable access levels to the actor's own project role or below. However, the backend handler still accepts a forged higher access_level value and writes it.
Impact
Privilege escalation.
The consequences of the privilege escalation are not as bad as it may sound, because having administrator access at Project level is effectively not very different from being manager, it does not actually give administrator privileges on the whole MantisBT instance. In particular, it does not let the upgraded user delete the Project or grant them any access to global administrative functions such as managing Users, Projects, Plugins, Custom Fields, etc.
Patches
- 69e0180f180ed5acf48a8d281a73683a7bf32461
Workarounds
None
Credits
Thanks to the following security researchers for independently discovering and responsibly reporting the issue:
References
Insufficient access control checks in ProjectUsersAddCommand (used in manage_proj_user_add.php and REST API endpoint
PUT /project/{id}/users) allows users having manage_project_threshold access level (manager by default) to grant project-level administrator access to any user (including themselves) in any Project they have manager rights in.The normal project-user add form does restrict the selectable access levels to the actor's own project role or below. However, the backend handler still accepts a forged higher access_level value and writes it.
Impact
Privilege escalation.
The consequences of the privilege escalation are not as bad as it may sound, because having administrator access at Project level is effectively not very different from being manager, it does not actually give administrator privileges on the whole MantisBT instance. In particular, it does not let the upgraded user delete the Project or grant them any access to global administrative functions such as managing Users, Projects, Plugins, Custom Fields, etc.
Patches
Workarounds
None
Credits
Thanks to the following security researchers for independently discovering and responsibly reporting the issue:
References