🇰🇷 한글 설명
Redis의 blocked client 제거 시 unblock flow에서 에러 처리 부족으로 use-after-free 취약점이 발생합니다. 인증된 공격자가 blocked client 제거 중 특정 조건을 트리거하여 원격 코드 실행(RCE)을 수행할 수 있습니다.
💡 쉬운 설명
Redis 서버의 대기 중인 클라이언트 처리 과정에서 메모리 관리 버그가 있습니다. 인증된 공격자가 이를 악용하면 서버를 완전히 제어할 수 있습니다.
🇺🇸 원문 (English)
Redis is an in-memory data structure store. In redis-server from 7.2.0 until 8.6.3, the unblock client flow does not handle an error return from `processCommandAndResetClient` when re-executing a blocked command. If a blocked client is evicted during this flow, an authenticated attacker can trigger a use-after-free that may lead to remote code execution. This has been patched in version 8.6.3.
📍 영향받는 시스템
Redis 7.2.0 ~ 8.6.2 버전 (redis-server 및 관련 패키지)
⚔️ 공격 벡터
인증된 상태에서 blocked client를 제거하는 동안 processCommandAndResetClient 에러 조건을 트리거하여 use-after-free 발생
🛡️ 대응 방법
Redis를 8.6.3 이상으로 즉시 업그레이드
🔧 검증 코드
출력된 버전 번호가 8.6.3 이상이면 안전함. 8.6.2 이하이거나 패키지가 미설치면 취약함.
redis-cli --version 2>/dev/null || dpkg -l redis-server 2>/dev/null | grep redis-server | awk '{print $3}'