Полный контроль над Redis. Патч или PoC: выбор за вами

В сети опубликован PoC-эксплоит для уязвимости


352j4hlwhw97g8zw4dga4dz9imwqs5f7.jpg

Специалисты Wiz недавно выявили критическую уязвимость в Redis, затрагивающую версию 8.2.1 и более ранние релизы. Проблема ( CVE-2025-49844 , оценка CVSS: 10) кроется в небезопасной работе с памятью при разборе Lua-скриптов — в частности, в функции luaY_parser, которая не закрепляет имя загружаемого чанка на стеке перед запуском лексера. Это открывает окно для атаки типа use-after-free (UAF), способной привести к удалённому выполнению произвольного кода .

Суть уязвимости кроется в следующем: Redis использует Lua 5.1 для выполнения встроенных скриптов. В уязвимых версиях можно подготовить специальный скрипт, в котором имя чанка инициирует сборку мусора (GC) в момент, когда парсер всё ещё обращается к освободившейся строке. Это создаёт гонку, позволяющую злоумышленнику внедрить произвольный код на уровне C.

Для эксплуатации проблемы необходимо : Redis-сервер версии 8.2.1 или ниже; Доступ к Redis по локальной сети; Возможность выполнения Lua-скриптов (например, через redis-cli).

Эксплойт использует файл CVE-2025-49844.lua, который многократно вызывает loadstring с триггером GC в имени чанка. Пример цикла атаки:

while redis-cli -h localhost -p 6379 --eval CVE-2025-49844.lua >/dev/null; do printf '.' done При успешной атаке Redis-сервер может упасть или сбросить соединение.

Проблема устранена в версии Redis 8.2.2, где имя чанка жёстко закрепляется на Lua-стеке до завершения разбора. Соответствующее исправление доступно в коммите d5728cb . Специалисты рекомендуют обновиться до Redis 8.2.2 или более новой версии. При невозможности обновления — отключить возможность выполнения Lua-скриптов для ненадёжных пользователей.