
Proof-of-concept эксплойт для уязвимости типа «отказ в обслуживании» в JSON-плагине Apache Struts (CVE-2026-73633), демонстрирующий исчерпание CPU и памяти с помощью специально сформированных JSON-массивов.
JSON-заполнение от включённого на сервере JSON body-плагина («JSON-заполнение» — это ключевая функция, предоставляемая JSON-плагином в Struts 2; её можно просто понимать как автоматический механизм преобразования данных.)
Парсер функции JSON-заполнения при обработке JSON-массивов за один раз считывает всё JSON-содержимое тела запроса в память (поэлементная загрузка)
Вызывает расход (и расход CPU)
Я использовал wsl2 и tomcat для развёртывания приложения Struts и создал страницу входа: имя пользователя admin, пароль 123456
В реальном тестировании заметнее всего на компьютере росла загрузка CPU, затем — память, причём после завершения запроса (завершения TCP-соединения) освобождается только загрузка CPU, а память сама по себе не освобождается
(при тестировании в течение 3 минут с конфигурацией по умолчанию загрузка CPU на хосте выросла с 7 до 32, память — с 9.8 ГБ до 11 ГБ) — до краха было далеко
Это приводит лишь к нехватке ресурсов сервера контейнера; после достижения фиксированного значения потребления памяти рост прекращается, и это фиксированное значение прямо пропорционально значению заполнения (--size)