🇰🇷 한글 설명
Apache NiFi 1.5.0부터 2.10.0 버전까지 REST API에서 gzip 인코딩된 HTTP 요청을 처리할 때 발생하는 취약점입니다. 프레임워크가 압축된 페이로드 크기만 제한하고 압축 해제된 데이터 크기를 제한하지 않아, 악의적인 요청을 통해 과도한 메모리를 소비하게 만들 수 있습니다.
💡 쉬운 설명
압축된 파일을 보낼 때 실제 풀었을 때의 크기를 체크하지 않아 발생하는 문제입니다. 공격자가 아주 작은 압축 파일을 보내면 서버가 이를 풀다가 메모리가 꽉 차서 멈출 수 있습니다.
🇺🇸 원문 (English)
Apache NiFi 1.5.0 through 2.10.0 support gzip-encoded HTTP requests for the application REST API using a Jersey encoding filter. The framework enforced a configurable maximum request size on the compressed payload rather than the decompressed output, allowing a malicious client to send crafted requests that could consume excessive amounts of memory. Upgrading to Apache NiFi 2.11.0 is the recommended mitigation, which relocates response compression to Jetty Server and disables decompression of gzip-encoded HTTP requests.
📍 영향받는 시스템
Apache NiFi 1.5.0 ~ 2.10.0
⚔️ 공격 벡터
gzip으로 압축된 대용량 데이터가 포함된 특수하게 제작된 HTTP REST API 요청 전송
🛡️ 대응 방법
Apache NiFi 2.11.0 이상 버전으로 업그레이드
🔧 검증 코드
출력된 버전 정보가 2.11.0 미만인지 확인하여 취약 여부를 판단합니다.
curl -s http://<NIFI_HOST>:<PORT>/nifi-api/version | grep -E '"version":"[0-9]+\.[0-9]+\.[0-9]+"'