Анализатор тела запроса API Grocy (controllers/Api/BaseApiController.php, GetParsedAndFilteredRequestBody) очищает значения входящих полей с помощью HTMLPurifier, а затем вручную меняет кодировку HTML-объекта результирующего вывода, заменяя &lt;, &gt; и &amp; вернуться к <, > и & сразу после очистки. Это двойное декодирование реконструирует живые теги HTML/script из закодированной сущности формы, созданной HTMLPurifier для их нейтрализации, повторно вводя сохраненный XSS в поля, доступные для записи через API (продукты, рецепты, запасы, пользователи, работы по дому и другие), которые отображаются в другом месте без повторной очистки.
Показать оригинальное описание (EN)
Grocy's API request-body parser (controllers/Api/BaseApiController.php, GetParsedAndFilteredRequestBody) purifies incoming field values with HTMLPurifier, then manually reverses HTML-entity encoding of the resulting output by replacing &lt;, &gt;, and &amp; back to <, >, and & immediately after purification.
Характеристики атаки
Последствия
Строка CVSS v3.1