
CVE-2025-46819에 대한 개념 증명 익스플로잇으로, Redis Lua 긴 문자열 구분 기호의 경계를 벗어난 읽기(out-of-bounds read) 취약점을 악용하여 잘못된 형식의 입력을 통해 크래시를 유발하는 것을 보여줍니다.
잘못된 형식의 긴 문자열 구분자로 인해 Redis 8.2.1에서 Lua 렉서가 범위 밖 읽기를 수행합니다.
Redis 8.2.1의 Lua 긴 문자열 파서는 잘못된 형식의 [=... 시퀀스를 잘못 처리하여 버퍼 언더플로우나 과도한 재귀를 유발하는 센티널 값을 반환합니다. 공격자는 Redis가 범위 밖을 읽거나 C 스택을 오버플로우하도록 만들 수 있습니다.
redis-cliCVE-2025-46819.lua – 거대한 잘못된 형식의 구분자를 구성하여 loadstring에 전달합니다.redis-cli -h localhost -p 6379 --eval CVE-2025-46819.lua
예상 결과:
취약한 버전에서는 일반적으로 "ERR C stack overflow"가 표시되거나 즉시 크래시가 발생합니다. Redis 8.2.2 (커밋 3a1624da2449ac3dbfc4bdaed43adf77a0b7bfba)는 서버를 불안정하게 만들지 않고 "invalid long string delimiter"로 스크립트를 거부합니다.
Redis 8.2.2 이상으로 업그레이드하거나, 신뢰할 수 없는 사용자에 대해 Lua를 비활성화하십시오.