🇰🇷 한글 설명
Elasticsearch에서 사용자 입력값을 통해 전달된 크기 값을 검증하지 않고 내부 데이터 구조를 위한 메모리 예약에 사용하여 발생합니다. 읽기 권한만 가진 인증된 사용자가 조작된 요청을 보내면 노드가 과도한 메모리 할당을 시도하게 되어 프로세스가 종료되고 서비스 거부(DoS) 상태가 됩니다.
💡 쉬운 설명
해커가 특수하게 조작된 요청을 보내면 서버가 감당할 수 없는 엄청난 양의 메모리를 사용하려고 시도합니다. 이 과정에서 서버가 과부하로 인해 갑자기 꺼져버려 서비스가 중단될 수 있습니다.
🇺🇸 원문 (English)
Elasticsearch does not validate a size value taken from a user-supplied input before that value is used to reserve memory for an internal data structure. An authenticated user holding only read privileges can submit a single small crafted request to a product API endpoint that causes the node to attempt an excessively large allocation. The resulting memory exhaustion raises a fatal error that terminates the Elasticsearch node process, causing a denial of service for the affected node and degrading cluster health. The defect is not volumetric, so a single request is sufficient regardless of the heap size configured on the target node.
📍 영향받는 시스템
Elasticsearch (버전 정보 미기재, 읽기 권한이 있는 인증된 사용자 환경)
⚔️ 공격 벡터
인증된 사용자가 조작된 크기 값을 포함한 API 요청을 전송하여 메모리 고갈 유도
🛡️ 대응 방법
Elasticsearch를 최신 보안 패치가 적용된 버전으로 업데이트하고, 불필요한 API 접근 권한을 최소화합니다.
🔧 검증 코드
API 요청 시 메모리 할당 오류나 프로세스 종료 관련 로그가 발생하는지 확인합니다.
curl -s -u 'user:password' -X GET 'http://localhost:9200/api/endpoint' | grep -i 'error'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
Windows iSCSI Target Service