
CVE-2025-32023에 대한 익스플로잇
Redis HyperLogLog 작업에서의 원격 코드 실행
CVE-2025-32023은 Redis 데이터베이스에서 HyperLogLog 데이터 구조 작업 처리에 영향을 미치는 원격 코드 실행(RCE) 취약점입니다. 이 결함으로 인해 인증된 사용자가 조작된 문자열을 제출하여 스택 또는 힙 기반 경계 초과 쓰기를 유발할 수 있으며, 잠재적으로 서버에서 임의의 코드를 실행할 수 있습니다. 이 취약점은 희소 HyperLogLog 인코딩 처리 과정에서의 정수 오버플로우에서 비롯됩니다. GitHub, Inc.(특정 발견자는 공개되지 않음)에 의해 보고되었으며, Redis 버전 2.8부터 존재해 왔습니다.
취약한 Redis 인스턴스에 접근 권한이 있는 인증된 공격자는 이 취약점을 악용하여 서버에서 임의의 코드를 실행할 수 있으며, 이는 시스템 전체를 손상시킬 수 있습니다. 이로 인해 중요한 데이터에 대한 무단 접근, 지속적인 백도어 설치, 또는 서비스 중단이 발생할 수 있습니다. 이 취약점은 Redis가 고성능 캐싱 또는 데이터 처리에 사용되는 환경에서 특히 심각하며, 중요한 인프라가 공격에 노출될 수 있습니다.
이 저장소에는 CVE-2025-32023에 대한 익스플로잇 스크립트가 포함되어 있습니다. 아래의 플레이스홀더 명령을 스크립트 실행을 위한 구체적인 지침으로 바꾸십시오.
# Example usage (replace with actual commands for your script):
git clone https://github.com/atomicjjbod/CVE-2025-32023.git
cd CVE-2025-32023
chmod +x exploit
./exploit --host <redis_host> --port <redis_port>
참고: 필요한 종속성(예: Python, Redis 클라이언트 라이브러리)이 설치되어 있는지 확인하십시오. 의도하지 않은 결과를 방지하기 위해 통제된 환경에서 익스플로잇을 테스트하십시오.
PFADD, PFCOUNT, PFMERGE)의 실행을 차단하십시오. 예시 ACL 구성:
ACL SETUSER username -~pf*
이 취약점은 희소 HyperLogLog 인코딩 처리 과정에서 정수 오버플로우로 인해 발생합니다. 구체적으로, 희소 HyperLogLog 데이터를 반복할 때 길이 카운터(int i)가 잘못된 입력으로 인해 음수로 오버플로우되어 스택 또는 힙에 경계 초과 쓰기가 발생할 수 있습니다. 이는 메모리를 손상시키고 컨텍스트에 따라 임의의 코드를 실행하는 데 악용될 수 있습니다(예: hllMerge는 스택 할당 구조를 사용하고 hllSparseToDense는 힙 할당 구조를 사용합니다).
이 문제는 Redis에서 HyperLogLog 작업의 길이 카운터 처리에 경계 검사를 추가하고 수정함으로써 해결되었습니다. 수정 사항은 다음 커밋에 포함되어 있습니다: Redis Commit 50188747.
2025년 7월 10일 기준, CVE-2025-32023의 광범위한 악용은 보고되지 않았습니다. 그러나 공개된 개념 증명 코드가 존재하므로 표적 공격의 위험이 증가하고 있습니다. Redis 사용자는 신속하게 패치를 적용하고 권장 완화 방법을 구현하여 시스템을 보호하는 것이 좋습니다.