You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CategoryProductsController::sort проверяет parent => $categoryId. publish / multiple / bulkDelete загружают товар только по id — можно publish/delete товар из другой категории, подставив чужой productId / ids в URL своей категории.
Описание проблемы
CategoryProductsController::sortпроверяетparent => $categoryId.publish/multiple/bulkDeleteзагружают товар только по id — можно publish/delete товар из другой категории, подставив чужойproductId/idsв URL своей категории.Шаги воспроизведения
/api/mgr/categories/{id}/products/*(сейчасview_document, см. [Bug] Manager API: customers CRUD и category publish под view_document #378).POST /api/mgr/categories/1/products/999/publishс{"published":1}, где товар 999 не в категории 1.POST .../products/multipleсmethod=deleteи чужими ids.Ожидаемое поведение
Как в
sort: операции только для товаров сparent = category_id(или явная membership в категории, если multi-category).Фактическое поведение
Окружение
Дополнительный контекст
Отдельно от #378 (слабый permission): даже с «правильным» ACL остаётся IDOR по category boundary.