Winter CMS — это система управления контентом, построенная на PHP-фреймворке Laravel. В версиях до 1.2.13 серверная часть не проверяла имя обработчика, отправленное через поле POST обратной передачи формы _handler, что позволяло аутентифицированному внутреннему пользователю вызывать произвольные методы контроллера, включая защищенные, частные и методы с префиксом действия. В то время как запросы AJAX проверяют, что имена обработчиков соответствуют шаблону on[A-Z][\w+]*, путь обратной передачи передает отправленное значение _handler прямо диспетчеру обработчиков без такой проверки, поэтому любой контроллер, который предоставляет публичное действие или условно ослабляет проверку $requiredPermissions, может быть достигнут, минуя систему ролей и разрешений.
Это повлияло на встроенный контроллер пользователей, поскольку он установил для $requiredPermissions значение null для действия myaccount, позволяя любому аутентифицированному внутреннему пользователю вызывать методы управления пользователями, такие как update_onDelete и update_onManualPasswordReset, без сохранения разрешения backend.manage_users. Эта проблема исправлена в версии 1.2.13.
Показать оригинальное описание (EN)
Winter CMS is a content management system built on the Laravel PHP framework. In versions prior to 1.2.13, the backend did not validate the handler name submitted through the form postback _handler POST field, allowing an authenticated backend user to invoke arbitrary controller methods, including protected, private, and action-prefixed ones. While AJAX requests validate that handler names match the on[A-Z][\w+]* pattern, the postback path passed the submitted _handler value straight to the handler dispatcher with no such check, so any controller that exposes a public action or conditionally relaxes its $requiredPermissions check could be reached, bypassing the roles and permissions system. The built-in Users controller was affected because it set $requiredPermissions to null for the myaccount action, letting any authenticated backend user invoke user-management methods such as update_onDelete and update_onManualPasswordReset without holding the backend.manage_users permission. This issue is fixed in version 1.2.13.
Характеристики атаки
Последствия
Строка CVSS v4.0