Plane — это инструмент управления проектами с открытым исходным кодом. До версии 1.2.2 метод ProjectAssetEndpoint.patch() в apps/api/plane/app/views/asset/v2.py (строки 579–593) выполняет глобальный поиск актива, используя только идентификатор актива (pk) через FileAsset.objects.get(id=pk), без проверки принадлежности актива рабочей области и проекту, указанным в пути URL. Это позволяет любому аутентифицированному пользователю (в том числе с ролью GUEST) изменять атрибуты и статус is_uploaded активов, принадлежащих любому рабочему пространству или проекту во всем экземпляре Plane, путем угадывания или перечисления UUID активов.
Версия 1.2.2 устраняет проблему.
Показать оригинальное описание (EN)
Plane is an an open-source project management tool. Prior to version 1.2.2, the `ProjectAssetEndpoint.patch()` method in `apps/api/plane/app/views/asset/v2.py` (lines 579–593) performs a global asset lookup using only the asset ID (`pk`) via `FileAsset.objects.get(id=pk)`, without verifying that the asset belongs to the workspace and project specified in the URL path. This allows any authenticated user (including those with the GUEST role) to modify the `attributes` and `is_uploaded` status of assets belonging to any workspace or project in the entire Plane instance by guessing or enumerating asset UUIDs. Version 1.2.2 fixes the issue.
Характеристики атаки
Последствия
Строка CVSS v4.0