Плагин Perfmatters для WordPress уязвим к произвольной перезаписи файлов посредством обхода пути во всех версиях до 2.5.9 включительно. Это связано с тем, что метод `PMCS::action_handler()` обрабатывает обработчики массовых действий `activate`/`deactivate` без какой-либо проверки авторизации или проверки nonce. Значения `$_GET['snippets'][]` передаются в необработанном виде в `Snippet::activate()`/`Snippet::deactivate()`, которые вызывают `Snippet::update()`, а затем `file_put_contents()` с пройденным путем.
Это позволяет аутентифицированным злоумышленникам с доступом на уровне подписчика и выше перезаписывать произвольные файлы на сервере фиксированным содержимым докблока PHP, что потенциально может вызвать отказ в обслуживании из-за повреждения критически важных файлов, таких как `.htaccess` или `index.php`.
Показать оригинальное описание (EN)
The Perfmatters plugin for WordPress is vulnerable to arbitrary file overwrite via path traversal in all versions up to, and including, 2.5.9. This is due to the `PMCS::action_handler()` method processing the bulk action `activate`/`deactivate` handlers without any authorization check or nonce verification. The `$_GET['snippets'][]` values are passed unsanitized to `Snippet::activate()`/`Snippet::deactivate()` which call `Snippet::update()` then `file_put_contents()` with the traversed path. This makes it possible for authenticated attackers, with Subscriber-level access and above, to overwrite arbitrary files on the server with a fixed PHP docblock content, potentially causing denial of service by corrupting critical files like `.htaccess` or `index.php`.
Характеристики атаки
Последствия
Строка CVSS v3.1