
Доказательство концепции эксплуатации для CVE-2025-46819 — выхода за границы чтения при обработке длинных строк-разделителей в Redis Lua, демонстрирующее сбой через некорректный ввод.
Некорректный длинный разделитель строк, вызывающий чтение за пределами буфера в Lua-лексере Redis 8.2.1.
Парсер длинных строк Lua в Redis 8.2.1 некорректно обрабатывает повреждённые последовательности [=..., возвращая служебные значения, которые приводят к переполнению буфера снизу или чрезмерной рекурсии. Злоумышленники могут заставить 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 для недоверенных пользователей.