
Script de detección y mitigación para CVE-2021-42717 - Vulnerabilidad DoS en ModSecurity en el análisis JSON
Script de detección y mitigación para CVE-2021-42717 -> Vulnerabilidad DoS de ModSecurity en el análisis de JSON
ModSecurity 3.x hasta 3.0.5 maneja incorrectamente objetos JSON excesivamente anidados. Objetos JSON diseñados con anidamiento de decenas de miles de niveles podrían provocar que el servidor web no pueda atender solicitudes legítimas. Incluso una solicitud HTTP moderadamente grande (por ejemplo, 300KB) puede ocupar uno de los limitados procesos de trabajo de NGINX durante minutos y consumir casi toda la CPU disponible en la máquina. Modsecurity 2 es igualmente vulnerable: las versiones afectadas incluyen 2.8.0 hasta 2.9.4.
Posible mitigación: Crear una regla encadenada de fase:1 que rechace las solicitudes que usarían el analizador JSON si el Content-Length excede un cierto tamaño (10,000 a 20,000 bytes es probablemente seguro en la mayoría de las instalaciones). Algunos usuarios de v2 pueden alternativamente hacer uso del elemento de configuración SecRequestBodyNoFilesLimit si se espera que otros cuerpos de solicitud que no sean archivos también estén por debajo de umbrales similares. Nota especial para usuarios de ModSecurity <v2.9.3: aunque el problema existe en versiones anteriores como v2.9.2, parece requerir un tamaño de cuerpo de solicitud más grande para desencadenar retrasos problemáticos, lo que significa que los límites relacionados con el tamaño del cuerpo de la solicitud probablemente pueden ser más grandes (quizás 40,000 a 50,000 bytes) y aún así proporcionar una protección decente en la mayoría de las instalaciones. https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/modsecurity-dos-vulnerability-in-json-parsing-cve-2021-42717/
