Плагин WC Product Table Lite для WordPress уязвим к внедрению CSS в версиях до 5.6.0 включительно через атрибут короткого кода «laptop_scroll_offset», предоставляемый через неаутентифицированный обработчик AJAX wcpt_ajax(). Обработчик зарегистрирован для wp_ajax_nopriv_wcpt_ajax, JSON-декодирует атрибуты, предоставленные злоумышленником, добавляет в список разрешенных только имена ключей (а не значения), применяет preg_replace, который удаляет только [ ] < >, и передает значение через do_shortcode в wcpt_style__sticky_sidebar(), где оно дословно интерполируется во встроенный CSS ('top: {$top}px;' и 'max-height:calc(100vh - {$top}px);') без числового приведения или экранирования CSS. Это позволяет неаутентифицированным злоумышленникам внедрять произвольные декларации CSS и правила на страницы, отображающие таблицу продуктов с включенной прикрепленной боковой панелью, что можно использовать для кражи данных (через URL-адреса выбора атрибута + фонового изображения), исправления пользовательского интерфейса и фишинга в обход CSP, разрешающих встроенные стили.
Показать оригинальное описание (EN)
The WC Product Table Lite plugin for WordPress is vulnerable to CSS Injection in versions up to, and including, 5.6.0 via the 'laptop_scroll_offset' shortcode attribute exposed through the unauthenticated wcpt_ajax() AJAX handler. The handler is registered for wp_ajax_nopriv_wcpt_ajax, JSON-decodes attacker-supplied attributes, only allowlists key names (not values), applies a preg_replace that strips only [ ] < >, and passes the value through do_shortcode into wcpt_style__sticky_sidebar(), where it is interpolated verbatim into inline CSS ('top: {$top}px;' and 'max-height: calc(100vh - {$top}px);') with no numeric casting or CSS escaping. This makes it possible for unauthenticated attackers to inject arbitrary CSS declarations and rules on pages rendering a product table with sticky sidebar enabled, which can be leveraged for data exfiltration (via attribute-selector + background-image URLs), UI redressing, and phishing that bypasses CSPs permitting inline styles.
Характеристики атаки
Последствия
Строка CVSS v3.1