Тема Divi для WordPress уязвима к хранимому межсайтовому скриптингу через параметр redirect_url короткого кода et_pb_contact_form во всех версиях до 4.27.6 включительно. Это связано с тем, что атрибут redirect_url очищается с помощью esc_attr() вместо esc_url() перед отображением в атрибуте данных HTML data-redirect_url. Кроме того, `redirect_url` отсутствует в жестко закодированном массиве `$url_options` в `class-et-builder-element.php`, поэтому он не получает очистки `esc_url_raw()` во время анализа короткого кода.
После успешной отправки формы клиентский JavaScript считывает этот атрибут данных и передает его непосредственно в Window.location.href, выполняя произвольный JavaScript из URI javascript:. Это позволяет злоумышленникам, прошедшим проверку подлинности, с доступом на уровне участника и выше, внедрять произвольные веб-скрипты на страницы, которые выполняются всякий раз, когда пользователь отправляет контактную форму.
Показать оригинальное описание (EN)
The Divi theme for WordPress is vulnerable to Stored Cross-Site Scripting via the `redirect_url` parameter of the `et_pb_contact_form` shortcode in all versions up to, and including, 4.27.6. This is due to the `redirect_url` attribute being sanitized with `esc_attr()` instead of `esc_url()` before being rendered into the `data-redirect_url` HTML data attribute. Additionally, `redirect_url` is absent from the hardcoded `$url_options` array in `class-et-builder-element.php`, so it does not receive `esc_url_raw()` sanitization during shortcode parsing. After a successful form submission, client-side JavaScript reads this data attribute and passes it directly to `window.location.href`, executing arbitrary JavaScript from a `javascript:` URI. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that execute whenever a user submits the contact form.
Характеристики атаки
Последствия
Строка CVSS v3.1