
CVE-2021-42717 -> JSON 파싱의 ModSecurity DoS 취약점을 위한 탐지 및 완화 스크립트
CVE-2021-42717 탐지 및 완화 스크립트 -> JSON 파싱의 ModSecurity DoS 취약점
ModSecurity 3.x3.0.5는 과도하게 중첩된 JSON 객체를 잘못 처리합니다. 수만 단계 깊이로 중첩된 조작된 JSON 객체는 웹 서버가 정상적인 요청을 처리하지 못하게 만들 수 있습니다. 적당히 큰(예: 300KB) HTTP 요청조차도 제한된 NGINX 워커 프로세스 중 하나를 수 분 동안 점유하여 머신에서 사용 가능한 CPU를 거의 모두 소비할 수 있습니다. Modsecurity 2도 유사하게 취약합니다. 영향을 받는 버전에는 2.8.02.9.4가 포함됩니다.
가능한 완화 방법: Content-Length가 특정 크기(대부분의 설치 환경에서 10,00020,000바이트가 안전할 가능성이 높음)를 초과하는 경우 JSON 파서를 사용할 요청을 거부하는 phase:1 체인 규칙을 생성합니다. 일부 v2 사용자는 다른 비파일 요청 본문도 유사한 임계값보다 작을 것으로 예상되는 경우 SecRequestBodyNoFilesLimit 구성 항목을 대안으로 사용할 수 있습니다. ModSecurity <v2.9.3 사용자에 대한 특별 참고 사항: v2.9.2와 같은 이전 버전에도 문제가 존재하지만, 문제가 되는 지연을 유발하려면 더 큰 요청 본문 크기가 필요한 것으로 보입니다. 즉, 요청 본문 크기와 관련된 제한을 더 크게(아마도 40,00050,000바이트) 설정하더라도 대부분의 설치 환경에서 적절한 보호를 제공할 수 있음을 의미합니다.
