백엔드
Redis와 Valkey를 해킹해 보자(Feat. CVE ID)
두줄요약
Lua 오류 응답 경로의 RESP 인젝션으로 소켓 포이즈닝과 DoS가 가능한 원인을 분석했습니다. CRLF 정제 누락과 RESP 파싱 악용 흐름, 영향 버전 및 패치 정보를 정리했습니다.
문제 상황
- Valkey·Redis Lua 오류 응답 경로의 RESP 인젝션 취약점(CVE-2025-67733)
- 소켓 포이즈닝 기반 응답 변조와 대기 상태 유발 DoS 위험
구조와 흐름
EVAL실행 중redis.error_reply()반환값을error()로 전파하는 오류 처리 경로luaCallFunction()에서 오류 정보 추출 후 RESP Error 응답으로 클라이언트 출력 버퍼 기록- 주입된 CRLF 뒤 응답 조각을 클라이언트가 별도 RESP 메시지로 파싱하는 흐름
원인 분석
luaPushErrorBuff()의sdstrim(msg, "\r\n")가 문자열 양 끝의 CRLF만 제거addReplyErrorSdsEx()부터memcpy()까지 내부 CRLF를 검증·정제 없이 전달하는 경로- Bulk String 길이값 주입 시 클라이언트의 대용량 데이터 대기 상태
주의할 점
- Valkey 9.0.1 이하 및 Redis 8.4.1 이하 영향 범위와 패치 버전 확인
- 오류 메시지 등 프로토콜 응답에 포함되는 외부 입력의 CRLF 검증 필요




