CVE-2026-5217

HIGH CVSS 3.1: 7,2 EPSS 0.08%
Обновлено 11 апреля 2026
WordPress
Параметр Значение
CVSS 7,2 (HIGH)
Тип уязвимости CWE-79 (Межсайтовый скриптинг (XSS))
Поставщик WordPress
Публичный эксплойт Нет

Optimole – Оптимизация изображений | Конвертировать WebP и AVIF | CDN и отложенная загрузка | Плагин оптимизации изображений для WordPress уязвим к хранимым межсайтовым сценариям во всех версиях до 4.2.2 включительно. Это связано с недостаточной очисткой ввода и экранированием вывода в предоставленном пользователем параметре 's' (дескрипторе srcset) в неаутентифицированной конечной точке REST /wp-json/optimole/v1/optimizations. Конечная точка проверяет запросы, используя подпись HMAC и метку времени, но эти значения отображаются непосредственно в HTML-коде внешнего интерфейса, что делает их доступными для любого посетителя.

Плагин использует sanitize_text_field() для значения дескриптора rest.php, который удаляет HTML-теги, но не экранирует двойные кавычки. Отравленный дескриптор затем сохраняется через переходные процессы (поддерживаемые таблицей параметров WordPress), а затем извлекается и дословно вводится в атрибут srcset файла tag_replacer.php без надлежащего экранирования. Это позволяет неаутентифицированным злоумышленникам внедрять произвольные веб-скрипты на страницы, которые будут выполняться всякий раз, когда пользователь обращается к внедренной странице.

Показать оригинальное описание (EN)

The Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization plugin for WordPress is vulnerable to Stored Cross-Site Scripting in all versions up to, and including, 4.2.2. This is due to insufficient input sanitization and output escaping on the user-supplied 's' parameter (srcset descriptor) in the unauthenticated /wp-json/optimole/v1/optimizations REST endpoint. The endpoint validates requests using an HMAC signature and timestamp, but these values are exposed directly in the frontend HTML making them accessible to any visitor. The plugin uses sanitize_text_field() on the descriptor value of rest.php, which strips HTML tags but does not escape double quotes. The poisoned descriptor is then stored via transients (backed by the WordPress options table) and later retrieved and injected verbatim into the srcset attribute of tag_replacer.php without proper escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts into pages that will execute whenever a user accesses the injected page.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Низкое
Частичная утечка данных
Целостность
Низкое
Частичная модификация данных
Доступность
Нет
Нет нарушения работы

Строка CVSS v3.1