Wekan — это инструмент канбана с открытым исходным кодом, созданный с помощью Meteor. Версии 8.32 и 8.33 имеют критическую проблему с небезопасной прямой ссылкой на объект (IDOR), которая может позволить неавторизованным пользователям изменять настраиваемые поля по всем направлениям через конечные точки обновления настраиваемых полей, что потенциально может привести к несанкционированному манипулированию данными. Конечная точка PUT /api/boards/:boardId/custom-fields/:customFieldId в Wekan проверяет, имеет ли аутентифицированный пользователь доступ к указанному BoardId, но последующее обновление базы данных использует только _id настраиваемого поля в качестве фильтра без подтверждения того, что поле действительно принадлежит этой доске.
Это означает, что злоумышленник, владеющий любой доской, может изменить настраиваемые поля на любой другой доске, указав идентификатор внешнего настраиваемого поля. Тот же недостаток существует в конечных точках POST, PUT и DELETE для элементов раскрывающегося списка в настраиваемых полях. Требуемые идентификаторы настраиваемых полей можно получить путем экспорта платы (для которой требуется только доступ для чтения), поскольку экспортированный JSON включает идентификаторы всех компонентов платы.
Проверка авторизации выполняется для неправильного ресурса, что позволяет осуществлять перекрестную манипуляцию настраиваемыми полями. Эта проблема исправлена в версии 8.34.
Показать оригинальное описание (EN)
Wekan is an open source kanban tool built with Meteor. Versions 8.32 and 8.33 have a critical Insecure Direct Object Reference (IDOR) issue which could allow unauthorized users to modify custom fields across boards through its custom fields update endpoints, potentially leading to unauthorized data manipulation. The PUT /api/boards/:boardId/custom-fields/:customFieldId endpoint in Wekan validates that the authenticated user has access to the specified boardId, but the subsequent database update uses only the custom field's _id as a filter without confirming the field actually belongs to that board. This means an attacker who owns any board can modify custom fields on any other board by supplying a foreign custom field ID, and the same flaw exists in the POST, PUT, and DELETE endpoints for dropdown items under custom fields. The required custom field IDs can be obtained by exporting a board (which only needs read access), since the exported JSON includes the IDs of all board components. The authorization check is performed against the wrong resource, allowing cross-board custom field manipulation. This issue has been fixed in version 8.34.
Характеристики атаки
Последствия
Строка CVSS v4.0