🇰🇷 한글 설명
Redis 2.8.x 및 3.0.x의 lua_struct.c에서 getnum 함수 정수 오버플로우 취약점으로, Lua 코드 실행 권한이 있는 공격자가 큰 숫자를 입력하여 스택 기반 버퍼 오버플로우를 유발할 수 있습니다. 이를 통해 메모리 손상, 애플리케이션 충돌, Lua 샌드박스 제한 우회가 가능합니다.
💡 쉬운 설명
Redis에서 매우 큰 숫자를 처리할 때 메모리 오버플로우가 발생하여 서버가 강제 종료될 수 있습니다. Redis 접근 권한이 있는 사람이 악의적인 Lua 스크립트를 실행할 때 이 문제가 발생합니다.
🇺🇸 원문 (English)
Integer overflow in the getnum function in lua_struct.c in Redis 2.8.x before 2.8.24 and 3.0.x before 3.0.6 allows context-dependent attackers with permission to run Lua code in a Redis session to cause a denial of service (memory corruption and application crash) or possibly bypass intended sandbox restrictions via a large number, which triggers a stack-based buffer overflow.
📍 영향받는 시스템
Redis 2.8.x (< 2.8.24) 및 3.0.x (< 3.0.6)
⚔️ 공격 벡터
Redis 접근 권한이 있는 공격자가 getnum 함수에 대한 큰 정수값을 포함하는 Lua 스크립트를 실행하여 버퍼 오버플로우 트리거
🛡️ 대응 방법
Redis를 2.8.24 또는 3.0.6 이상으로 업그레이드하고, Lua 스크립트 실행 권한을 신뢰할 수 있는 사용자만으로 제한
🔧 검증 코드
출력된 버전이 2.8.24 이상(2.8.x) 또는 3.0.6 이상(3.0.x)인 경우 패치됨, 미만인 경우 취약함
redis-server --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'