Тема Divi для WordPress уязвима для хранимых межсайтовых сценариев через атрибут короткого кода `skype_url` модуля Social Media Follow во всех версиях до 4.27.6 включительно. Это связано с ошибкой трехчастной очистки: (1) поле `skype_url` не включено в белый список `$url_options` в `class-et-builder-element.php`, поэтому оно никогда не вызывает `esc_url_raw()` во время обработки короткого кода, (2) код рендеринга в `SocialMediaFollowItem.php` явно пропускает `esc_url()` для URL-адресов Skype (`! $is_skype ? esc_url( $url ) : $skype_url`), и (3) применяется только `sanitize_text_field()`, который сохраняет символы одинарных и двойных кавычек, позволяя разбивать атрибуты. Необработанное значение интерполируется непосредственно в атрибут href, заключенный в одинарные кавычки (`href='{$social_network_link_url}'`).
Это позволяет злоумышленникам, прошедшим проверку подлинности, с доступом на уровне участника и выше, внедрять произвольные веб-скрипты на страницы, которые будут выполняться всякий раз, когда пользователь взаимодействует с внедренным элементом.
Показать оригинальное описание (EN)
The Divi theme for WordPress is vulnerable to Stored Cross-Site Scripting via the `skype_url` shortcode attribute of the Social Media Follow module in all versions up to, and including, 4.27.6. This is due to a three-part sanitization failure: (1) the `skype_url` field is not included in the `$url_options` whitelist in `class-et-builder-element.php`, so it never invokes `esc_url_raw()` during shortcode processing, (2) the render code in `SocialMediaFollowItem.php` explicitly skips `esc_url()` for Skype URLs (`! $is_skype ? esc_url( $url ) : $skype_url`), and (3) only `sanitize_text_field()` is applied, which preserves single and double quote characters allowing attribute breakout. The unsanitized value is interpolated directly into a single-quoted `href` attribute (`href='{$social_network_link_url}'`). 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 interacts with the injected element.
Характеристики атаки
Последствия
Строка CVSS v3.1