Плагин ShareOpenly WordPress до версии 1.2.1 содержит уязвимость межсайтового скриптинга, вызванную отсутствием экранирующей функции WordPress `esc_url()` для переменной `$url` перед ее рендерингом в HTML-контент. Эта переменная создается из `home_url( add_query_arg( array(), $wp->request ))` и объединяется непосредственно в HTML-атрибут `href` в каждом отдельном сообщении или странице, где отображается ссылка для совместного использования плагина. Руководство по безопасности WordPress требует, чтобы каждый URL-адрес, помещенный в выходные данные HTML, должен передаваться через `esc_url()`, который одновременно кодирует специальные символы HTML (преобразуя `"`, `<`, `>` в их безопасные эквиваленты HTML-объектов) и удаляет опасные схемы URI, такие как `javascript:` и `data:`.
Отсутствие этой функции означает, что если значение `$url` когда-либо содержит специальные символы HTML или опасную схему URI - через Фильтр WordPress `home_url`, примененный другим плагином или темой, через определенные конфигурации веб-сервера или хостинга или через будущие изменения кода — неэкранированный контент будет дословно вставлен в отображаемый HTML-код каждого сообщения или страницы на сайте. Версия 1.2.1 содержит исправление для этой проблемы.
Показать оригинальное описание (EN)
The ShareOpenly WordPress plugin prior to version 1.2.1 contains a Cross-Site Scripting vulnerability caused by the absence of WordPress's `esc_url()` escaping function on the `$url` variable before it is rendered into HTML content. This variable is constructed from `home_url( add_query_arg( array(), $wp->request ) )` and is concatenated directly into an HTML `href` attribute on every singular post or page where the plugin's sharing link is displayed. WordPress's security handbook mandates that every URL placed in HTML output must be passed through `esc_url()`, which both HTML-encodes special characters (converting `"`, `<`, `>` into their safe HTML entity equivalents) and strips dangerous URI schemes such as `javascript:` and `data:`. The omission of this function means that if the `$url` value ever contains HTML-special characters or a dangerous URI scheme — through a `home_url` WordPress filter applied by another plugin or theme, through certain web server or hosting configurations, or through future code changes — the unescaped content will be injected verbatim into the rendered HTML of every post or page on the site. Version 1.2.1 contains a patch for the issue.
Характеристики атаки
Последствия
Строка CVSS v4.0