
Redis Lua unpack 정수 오버플로우(CVE-2025-46817)에 대한 개념 증명으로, Redis 8.2.1에서 스택 폭발 및 잠재적 RCE를 시연합니다.
unpack 정수 오버플로 (잠재적 RCE)Redis Lua unpack 정수 오버플로 PoC로, 8.2.1에서 스택 폭주 및 크래시를 유발합니다.
Redis 8.2.1은 부호 있는 정수를 사용하여 결과 개수를 계산하는 unpack 구현이 포함된 Lua 5.1을 탑재합니다. 신중하게 선택된 start/end 인덱스가 산술 연산을 래핑하여 lua_checkstack을 우회하고, Lua가 수십억 개의 결과를 푸시하도록 강제합니다. 테이블 인덱스 래핑과 결합하면 힙 메모리를 손상시키고 RCE로 이어질 수 있습니다.
redis-cliCVE-2025-46817.lua – 부호 있는 산술 연산을 오버플로시키는 범위로 unpack을 호출합니다.redis-cli -h localhost -p 6379 --eval CVE-2025-46817.lua
예상 결과:
8.2.1에서 서버는 일반적으로 과도한 스택 증가로 인해 연결을 종료하거나 크래시가 발생합니다. Redis 8.2.2 (커밋 fc9abc775e308374f667fdf3e723ef4b7eb0e3ca)는 "ERR Error running script (too many results to unpack)" 오류로 해당 호출을 거부합니다.
luaB_unpack 및 luaH_getnum을 강화한 Redis 8.2.2 이상으로 업그레이드하거나, 신뢰할 수 없는 사용자에 대해 Lua 스크립팅을 비활성화하십시오.