Плагин Code Embed для WordPress уязвим к хранимому межсайтовому сценарию через метазначения настраиваемых полей во всех версиях до 2.5.1 включительно. Это связано с тем, что функция очистки плагина `sec_check_post_fields()` работает только с хуком `save_post`, в то время как WordPress позволяет добавлять пользовательские поля через конечную точку AJAX `wp_ajax_add_meta` без запуска `save_post`. The `ce_filter()` function then outputs these unsanitized meta values directly into page content without escaping.
Это позволяет злоумышленникам, прошедшим проверку подлинности, с доступом на уровне участника и выше, внедрять произвольные веб-скрипты на страницы, которые будут выполняться всякий раз, когда пользователь обращается к внедренной странице.
Показать оригинальное описание (EN)
The Code Embed plugin for WordPress is vulnerable to Stored Cross-Site Scripting via custom field meta values in all versions up to, and including, 2.5.1. This is due to the plugin's sanitization function `sec_check_post_fields()` only running on the `save_post` hook, while WordPress allows custom fields to be added via the `wp_ajax_add_meta` AJAX endpoint without triggering `save_post`. The `ce_filter()` function then outputs these unsanitized meta values directly into page content without escaping. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
Характеристики атаки
Последствия
Строка CVSS v3.1