Vikunja — это автономная платформа управления задачами с открытым исходным кодом. В версиях с 0.24.6 по 2.4.0 команда DELETE /api/v1/projects/:project/views/:view позволяет аутентифицированному пользователю предоставить идентификатор представления из другого проекта, авторизуясь только на основе идентификатора проекта, контролируемого злоумышленником. ProjectView.CanDelete в pkg/models/project_view_permissions.go не устанавливает, что представление принадлежит проекту пути, а ProjectView.Delete в pkg/models/project_view.go продолжается после того, как удаление project_views с ограниченной областью действия не влияет на строки. При его последующих удалениях Task_buckets и Task_positions выбираются только по project_view_id, что позволяет уничтожать назначения и упорядочивание Канбана между арендаторами, оставляя при этом представление жертвы и задачи нетронутыми.
Эта проблема исправлена в версии 2.4.0.
Показать оригинальное описание (EN)
Vikunja is an open-source self-hosted task management platform. From 0.24.6 until 2.4.0, DELETE /api/v1/projects/:project/views/:view permits an authenticated user to supply a view identifier from another project while authorizing only against an attacker-controlled project identifier. ProjectView.CanDelete in pkg/models/project_view_permissions.go does not establish that the view belongs to the path project, and ProjectView.Delete in pkg/models/project_view.go continues after the scoped project_views delete affects no rows. Its subsequent deletes select task_buckets and task_positions only by project_view_id, allowing cross-tenant destruction of Kanban assignments and ordering while leaving the victim view and tasks intact. This issue is fixed in version 2.4.0.
Характеристики атаки
Последствия
Строка CVSS v3.1