Wekan — это канбан с открытым исходным кодом, созданный с помощью Meteor. До версии 9.89 второе правило Boards.allow({ update }) в server/permissions/boards.js называлось canUpdateBoardSort в server/lib/utils.js, которое разрешало любому члену правления всякий раз, когда поля Names включали сортировку. Поскольку Meteor сочетает в себе правила разрешения с семантикой OR и применяет модификатор Complete, участник с правами только для комментариев или только для чтения может отправить один Boards.update со значениями $set для сортировки, участников, разрешения и заголовка, сделать себя единственным администратором доски, открыть частную доску и выселить законного владельца; правило запрета последнего администратора проверяло только $pull и не блокировало полный $набор участников.
Версия 9.89 требует, чтобы sort была единственным изменяемым полем, и отклоняет массивы элементов $set, которые удаляют последнего активного администратора. Эта проблема исправлена в версии 9.89.
Показать оригинальное описание (EN)
Wekan is open source kanban built with Meteor. Prior to 9.89, the second Boards.allow({ update }) rule in server/permissions/boards.js called canUpdateBoardSort in server/lib/utils.js, which authorized any board member whenever fieldNames included sort. Because Meteor combines allow rules with OR semantics and applies the complete modifier, a comment-only or read-only member could send one Boards.update with $set values for sort, members, permission, and title, make themselves the sole board administrator, expose a private board, and evict the legitimate owner; the last-admin deny rule inspected only $pull and did not block a wholesale $set of members. Version 9.89 requires sort to be the only modified field and rejects $set member arrays that remove the last active administrator. This issue is fixed in version 9.89.
Характеристики атаки
Последствия
Строка CVSS v3.1