
Диагностический и корректирующий скрипт для пяти CVE в Redis, предоставляющий сканирование, смягчение на основе ACL и рекомендации по усилению конфигурации для уязвимостей аутентифицированного удалённого выполнения кода.
Дата выпуска: 2026-05-08 Автор: TonyCao ([email protected]) Источник: Redis Security Advisory
05.05.2026 компания Redis Ltd. опубликовала security advisory о 5 критических уязвимостях безопасности, затрагивающих все версии Redis OSS/CE. Все CVE могут привести к удалённому выполнению кода (RCE) при успешной эксплуатации.
| # | Код CVE | CVSS | Уровень | Тип ошибки | Условия эксплуатации |
|---|---|---|---|---|---|
| 1 | CVE-2026-23479 | 7.7 | HIGH | Use-After-Free | Аутентифицированный доступ, права на выполнение blocking-команд |
| 2 | CVE-2026-25243 | 7.7 | HIGH | Invalid Memory Access | Аутентифицированный доступ, права на выполнение RESTORE |
| 3 | CVE-2026-25588 | 7.7 | HIGH | Invalid Memory Access | Аутентифицированный доступ, права на RESTORE + модуль RedisTimeSeries |
| 4 | CVE-2026-25589 | 7.7 | HIGH | Invalid Memory Access | Аутентифицированный доступ, права на RESTORE + модуль RedisBloom |
| 5 | CVE-2026-23631 | 6.1 | MEDIUM | Use-After-Free | Аутентифицированный доступ, replica с replica-read-only = disabled |
Общее: Все CVE требуют, чтобы атакующий был аутентифицирован (authenticated) в экземпляре Redis. CVE-2026-23631 затрагивает только replica с конфигурацией
replica-read-only disabled.
| Линейка версий | Исправленная версия (минимальная) |
|---|---|
| 6.2.x | 6.2.22 |
| 7.2.x | 7.2.14 |
| 7.4.x | 7.4.9 |
| 8.2.x | 8.2.6 |
| 8.4.x | 8.4.3 |
| 8.6.x | 8.6.3 |
| Модуль | Минимальная версия |
|---|---|
| RedisTimeSeries | 1.12.14 / 1.10.24 / 1.8.23 |
| RedisBloom | 2.8.20 / 2.6.28 / 2.4.23 |
| Версия | Патч |
|---|---|
| 8.0.6 | 8.0.10-64 |
| 7.22.2 | 7.22.2-79 |
| 7.8.6 | 7.8.6-253 |
| 7.4.6 | 7.4.6-279 |
| 7.2.4 | 7.2.4-153 |
Все развёртывания Redis Cloud были автоматически пропатчены на момент публикации advisory.
| Свойство | Значение |
|---|---|
| Название | Use-After-Free в Unblock Client Flow |
| CVSS 4.0 | 7.7 (HIGH) |
| CWE | CWE-416 (Use After Free) |
| Вектор | AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Условие | Аутентифицированный атакующий, права на выполнение blocking-команд |
| Область | Все Redis OSS/CE, Redis Software <= 8.0.6 |
Когда клиент находится в заблокированном состоянии (blocked) — например, ожидает в BLPOP — и происходит evict во время повторного выполнения заблокированной команды, функция processCommandAndResetClient может вернуть ошибку. Текущий код некорректно обрабатывает этот случай, что приводит к указателю, ссылающемуся на уже освобождённую область памяти (use-after-free). Атакующий может использовать UAF для удалённого выполнения кода (RCE).
unblock client, processCommandAndResetClientredis-server выполняет неизвестные командыBLPOP, BRPOP, BRPOPLPUSH, BLMOVE, BLMPOP, BZPOPMIN, BZPOPMAX, BZMPOP, WAIT, WAITAOF, XREAD, XREADGROUP
#### Метод устранения (без обновления)
**Способ 1 — Блокировка через ACL (рекомендуется):**```bash
# Chặn toàn bộ nhóm lệnh blocking
redis-cli ACL SETUSER default -@blocking
# Hoặc chặn từng lệnh cụ thể
redis-cli ACL SETUSER default -BLPOP -BRPOP -BRPOPLPUSH -BLMOVE -BLMPOP \
-BZPOPMIN -BZPOPMAX -BZMPOP \
-WAIT -WAITAOF \
-XREAD -XREADGROUP
# Lưu ACL
redis-cli ACL SAVE
Способ 2 — Отключение через rename-command (требуется перезапуск Redis):```bash
rename-command BLPOP "" rename-command BRPOP "" rename-command BRPOPLPUSH "" rename-command BLMOVE "" rename-command BLMPOP "" rename-command BZPOPMIN "" rename-command BZPOPMAX "" rename-command BZMPOP "" rename-command WAIT "" rename-command WAITAOF "" rename-command XREAD "" rename-command XREADGROUP ""
**Способ 3 — Включение protected-mode и ограничение подключений:**```bash
redis-cli CONFIG SET protected-mode yes
# Trong redis.conf:
protected-mode yes
bind 127.0.0.1
| Атрибут | Значение |
|---|---|
| Заголовок | Неправомерный доступ к памяти в команде RESTORE |
| CVSS 4.0 | 7.7 (ВЫСОКИЙ) |
| CWE | CWE-20 (Некорректная проверка входных данных) + CWE-122 (Переполнение буфера в куче) |
| Вектор | AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Условие | Аутентифицированный атакующий с правом выполнения RESTORE |
| Область | Все Redis OSS/CE, Redis Software <= 8.0.6 |
Уязвимость включает 2 подпроблемы:
Аутентифицированный атакующий отправляет специально созданный payload RESTORE для эксплуатации указанных ошибок, что может привести к RCE в контексте процесса redis-server.