
Скрипт обнаружения и смягчения последствий для CVE-2021-42717 -> уязвимость DoS в ModSecurity при разборе JSON
Скрипт обнаружения и смягчения для CVE-2021-42717 -> Уязвимость DoS в ModSecurity при парсинге JSON
ModSecurity 3.x до 3.0.5 некорректно обрабатывает чрезмерно вложенные JSON-объекты. Специально созданные JSON-объекты с вложенностью в десятки тысяч уровней могут привести к тому, что веб-сервер не сможет обслуживать легитимные запросы. Даже умеренно большой (например, 300 КБ) HTTP-запрос может занять один из ограниченных рабочих процессов NGINX на несколько минут и потребить почти все доступные ресурсы процессора на машине. Modsecurity 2 также уязвим: затронутые версии включают 2.8.0 – 2.9.4.
Возможное смягчение: Создайте цепное правило фазы 1, которое будет отклонять запросы, использующие парсер JSON, если Content-Length превышает определенный размер (10 000 – 20 000 байт, вероятно, безопасно в большинстве установок). Некоторые пользователи v2 могут альтернативно использовать элемент конфигурации SecRequestBodyNoFilesLimit, если другие тела запросов, не связанные с файлами, также ожидаются ниже аналогичных порогов. Особое примечание для пользователей ModSecurity <v2.9.3: хотя проблема существует в более ранних версиях, таких как v2.9.2, для возникновения проблемных задержек, по-видимому, требуется больший размер тела запроса, что означает, что ограничения, связанные с размером тела запроса, вероятно, могут быть больше (возможно, 40 000 – 50 000 байт) и по-прежнему обеспечивать надлежащую защиту в большинстве установок. https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/modsecurity-dos-vulnerability-in-json-parsing-cve-2021-42717/
