CVE-2022-0543
Redis Debian-specific Redis Servers
2022-03-28
Redis is prone to a (Debian-specific) Lua sandbox escape, which could result in remote code execution.
Технический анализ и план устранения
Суть уязвимости
Уязвимость (CVE-2022-0543) существует только в пакетах Redis, собранных для Debian и производных дистрибутивов (Ubuntu, Mint). Проблема в неправильной изоляции Lua-песочницы. Атакующий, имеющий доступ к Redis-серверу, может выполнить произвольный Lua-скрипт, который обходит песочницу и выполняет системные команды на сервере с правами пользователя Redis (обычно redis). Это приводит к удаленному выполнению кода (RCE).
Как исправить
Обновите пакет redis-server до исправленной версии через менеджер пакетов apt. Исправление было выпущено в конце марта 2022 года.
- Обновите список пакетов:
bash sudo apt update -
Обновите пакет
redis-serverдо одной из безопасных версий:- Для Debian 11 (Bullseye): >= 5:6.0.16-1+deb11u2
- Для Ubuntu 20.04 LTS (Focal): >= 5:5.0.7-2ubuntu0.1
- Для Ubuntu 21.10 (Impish): >= 5:6.0.15-1ubuntu0.1
- Для Ubuntu 22.04 LTS (Jammy): >= 5:6.0.16-1ubuntu1
Выполните команду:
bash sudo apt install --only-upgrade redis-server3. Перезапустите службу Redis:bash sudo systemctl restart redis-server
Временное решение
Если немедленное обновление невозможно, примените следующие меры:
- Ограничьте сетевой доступ. Настройте брандмауэр (
iptables,ufw), чтобы разрешать подключения к порту Redis (по умолчанию 6379) только с доверенных IP-адресов или внутренних сетей.bash # Пример для ufw (разрешить только с IP 192.168.1.100) sudo ufw allow from 192.168.1.100 to any port 6379 - Используйте аутентификацию Redis. Включите и настройте надежный пароль в конфигурационном файле
/etc/redis/redis.conf:requirepass ваш_сложный_пароль_здесьПосле изменения конфигурации перезапустите Redis:sudo systemctl restart redis-server. - Переименуйте или отключите опасные команды. В том же конфигурационном файле можно переименовать команду
EVAL, используемую для выполнения Lua-скриптов, в случайную строку или отключить ее:rename-command EVAL ""Внимание: Это может нарушить работу приложений, использующих Lua-скрипты в Redis.