Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-25589-25588-25243-23631-23479-REDIS — Диагностический и корректирующий скрипт для пяти CVE в Redis, предоставляющий сканирование, смягчение на основе ACL и рекомендации по усилению конфигурации для уязвимостей аутентифицированного удалённого выполнения кода. | Kitploit
Инструменты/GitHubGitHub/mgiay/cve-2026-25589-25588-25243-23631-23479-redis
Анализ уязвимостейАудит конфигурацииОбучение и ОбразованиеПодобранные РесурсыБезопасность Баз Данных
GitHubmgiay/cve-2026-25589-25588-25243-23631-23479-redis

CVE-2026-25589-25588-25243-23631-23479-REDIS

Диагностический и корректирующий скрипт для пяти CVE в Redis, предоставляющий сканирование, смягчение на основе ACL и рекомендации по усилению конфигурации для уязвимостей аутентифицированного удалённого выполнения кода.

Репозиторий
3 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

РУКОВОДСТВО ПО ПРОВЕРКЕ И УСТРАНЕНИЮ 5 CVE REDIS ПО СОСТОЯНИЮ НА 08.05.2026

Дата выпуска: 2026-05-08 Автор: TonyCao ([email protected]) Источник: Redis Security Advisory


ОГЛАВЛЕНИЕ

  1. Обзор
  2. Затронутые версии
  3. Детали по каждому CVE
    • CVE-2026-23479 — Use-after-free в Unblock Client Flow
    • CVE-2026-25243 — Invalid Memory Access в RESTORE
    • CVE-2026-25588 — RESTORE с модулем RedisTimeSeries
    • CVE-2026-25589 — RESTORE с модулем RedisBloom
    • CVE-2026-23631 — Lua Use-After-Free через Master-Replica Sync
  4. Инструкция по использованию скрипта
  5. Общие методы устранения
  6. Оценка риска — внутренние системы Redis / Sentinel
  • Справочник по ACL
  • Процедура периодической проверки
  • Часто задаваемые вопросы (FAQ)

  • ОБЗОР

    05.05.2026 компания Redis Ltd. опубликовала security advisory о 5 критических уязвимостях безопасности, затрагивающих все версии Redis OSS/CE. Все CVE могут привести к удалённому выполнению кода (RCE) при успешной эксплуатации.

    #Код CVECVSSУровеньТип ошибкиУсловия эксплуатации
    1CVE-2026-234797.7HIGHUse-After-FreeАутентифицированный доступ, права на выполнение blocking-команд
    2CVE-2026-252437.7HIGHInvalid Memory AccessАутентифицированный доступ, права на выполнение RESTORE
    3CVE-2026-255887.7HIGHInvalid Memory AccessАутентифицированный доступ, права на RESTORE + модуль RedisTimeSeries
    4CVE-2026-255897.7HIGHInvalid Memory AccessАутентифицированный доступ, права на RESTORE + модуль RedisBloom
    5CVE-2026-236316.1MEDIUMUse-After-FreeАутентифицированный доступ, replica с replica-read-only = disabled

    Общее: Все CVE требуют, чтобы атакующий был аутентифицирован (authenticated) в экземпляре Redis. CVE-2026-23631 затрагивает только replica с конфигурацией replica-read-only disabled.


    ЗАТРОНУТЫЕ ВЕРСИИ

    Redis OSS/CE — все версии до исправления

    Линейка версийИсправленная версия (минимальная)
    6.2.x6.2.22
    7.2.x7.2.14
    7.4.x7.4.9
    8.2.x8.2.6
    8.4.x8.4.3
    8.6.x8.6.3

    Модули — исправленные версии

    МодульМинимальная версия
    RedisTimeSeries1.12.14 / 1.10.24 / 1.8.23
    RedisBloom2.8.20 / 2.6.28 / 2.4.23

    Redis Software (Enterprise)

    ВерсияПатч
    8.0.68.0.10-64
    7.22.27.22.2-79
    7.8.67.8.6-253
    7.4.67.4.6-279
    7.2.47.2.4-153

    Redis Cloud

    Все развёртывания Redis Cloud были автоматически пропатчены на момент публикации advisory.


    ДЕТАЛИ ПО КАЖДОМУ CVE

    CVE-2026-23479

    СвойствоЗначение
    НазваниеUse-After-Free в Unblock Client Flow
    CVSS 4.07.7 (HIGH)
    CWECWE-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).

    Признаки обнаружения

    • Сбой сервера Redis со стеком вызовов, содержащим функции, связанные с unblock client, processCommandAndResetClient
    • Процесс redis-server выполняет неизвестные команды
    • Несанкционированные сетевые подключения к экземпляру Redis

    Затронутые blocking-команды```

    BLPOP, BRPOP, BRPOPLPUSH, BLMOVE, BLMPOP, BZPOPMIN, BZPOPMAX, BZMPOP, WAIT, WAITAOF, XREAD, XREADGROUP

    root@kitploit:~
    #### Метод устранения (без обновления)
    
    **Способ 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

    Thêm vào redis.conf:

    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 ""

    root@kitploit:~
    **Способ 3 — Включение protected-mode и ограничение подключений:**```bash
    redis-cli CONFIG SET protected-mode yes
    # Trong redis.conf:
    protected-mode yes
    bind 127.0.0.1
    

    CVE-2026-25243

    АтрибутЗначение
    ЗаголовокНеправомерный доступ к памяти в команде RESTORE
    CVSS 4.07.7 (ВЫСОКИЙ)
    CWECWE-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 подпроблемы:

    1. Double-free в ядре Redis (обнаружено Эмилем Лернером) — RESTORE обрабатывает специально созданный сериализованный payload, что приводит к двойному освобождению памяти по одному и тому же указателю.
    2. Целочисленное переполнение и чтение за пределами границ в VectorSets (обнаружено Джозефом Сурином) — специально созданный payload вызывает целочисленное переполнение, что приводит к чтению/записи за пределами выделенной памяти.

    Аутентифицированный атакующий отправляет специально созданный payload RESTORE для эксплуатации указанных ошибок, что может привести к RCE в контексте процесса redis-server.

    Признаки обнаружения

    • Необычный сбой сервера Redis
    • Изменение системных файлов (особенно в каталоге, содержащем RDB/AOF/конфигурацию Redis)
    • Несанкционированные сетевые подключения к экземпляру Redis или от него
    • Изменение файла конфигурации Redis

    Методы устранения (без обновления)

    Способ 1 — Блокировка RESTORE через ACL (рекомендуется):```bash

    Chặn lệnh RESTORE

    redis-cli ACL SETUSER default -restore

    Hoặc chặn toàn bộ nhóm lệnh nguy hiểm

    redis-cli ACL SETUSER default -@dangerous

    redis-cli ACL SAVE

    root@kitploit:~
    **Способ 2 — Отключение RESTORE (требуется перезапуск Redis):**```bash
    # Thêm vào redis.conf:
    rename-command RESTORE ""
    

    Способ 3 — Создание отдельного ACL-пользователя для приложения:```bash

    Tao user cho ung dung chi voi quyen doc/ghi co ban

    redis-cli ACL SETUSER app_user on >StrongPass123 ~*
    +@read +@write
    -@dangerous
    -@admin
    -@scripting
    -@blocking
    -restore
    -debug

    redis-cli ACL SAVE

    root@kitploit:~
    ---
    
    ### CVE-2026-25588
    
    | Атрибут        | Значение                                                          |
    | -------------- | ----------------------------------------------------------------- |
    | **Название**   | Недопустимый доступ к памяти в RESTORE с модулем RedisTimeSeries  |
    | **CVSS 4.0**   | **7.7 (HIGH)**                                                    |
    | **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 + **модуль RedisTimeSeries загружен** |
    | **Область**    | Redis OSS/CE + модуль RedisTimeSeries                             |
    
    #### Техническое описание
    
    Когда команда `RESTORE` используется на экземпляре с загруженным **модулем RedisTimeSeries**, специально созданная сериализованная полезная нагрузка может вызвать недопустимый доступ к памяти в процессе обработки данных временных рядов. Уязвимость заключается в том, как модуль RedisTimeSeries десериализует данные из полезной нагрузки RESTORE.
    
    #### Признаки обнаружения
    
    - Сбой Redis с трассировкой стека, связанной с модулем RedisTimeSeries
    - Модуль RedisTimeSeries загружен (`MODULE LIST` показывает timeseries)
    - Непредвиденное выполнение команд процессом redis-server
    
    #### Методы устранения (без обновления)
    
    **Способ 1 — Блокировка RESTORE через ACL:** (как в CVE-2026-25243)```bash
    redis-cli ACL SETUSER default -restore
    redis-cli ACL SAVE
    

    Способ 2 — Удаление модуля RedisTimeSeries (если он не нужен):```bash redis-cli MODULE UNLOAD timeseries

    root@kitploit:~
    Затем удалите следующую строку из `redis.conf`:```
    loadmodule /path/to/redistimeseries.so
    

    Способ 3 — Только обновление модуля (без обновления Redis):

    Загрузите исправленную версию модуля:

    • RedisTimeSeries 1.12.14 (для линейки 1.12)
    • RedisTimeSeries 1.10.24 (для линейки 1.10)
    • RedisTimeSeries 1.8.23 (для линейки 1.8)```bash

    Thay the file .so cu bang phien ban moi

    Sau do restart Redis hoac:

    redis-cli MODULE UNLOAD timeseries redis-cli MODULE LOAD /path/to/new/redistimeseries.so

    root@kitploit:~
    ---
    
    ### CVE-2026-25589
    
    | Атрибут        | Значение                                                                      |
    | -------------- | ----------------------------------------------------------------------------- |
    | **Название**   | Недопустимый доступ к памяти в RESTORE с модулем RedisBloom                   |
    | **CVSS 4.0**   | **7.7 (HIGH)**                                                                |
    | **CWE**        | CWE-20 + CWE-122 + CWE-787 (запись за пределами буфера) + CWE-190 (целочисленное переполнение) |
    | **Вектор**     | `AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`                      |
    | **Условия**    | Аутентифицированный + права RESTORE + **загружен модуль RedisBloom**          |
    | **Область**    | Redis OSS/CE + модуль RedisBloom                                              |
    
    #### Техническое описание
    
    Уязвимость включает несколько подпроблем в модуле RedisBloom при обработке полезной нагрузки RESTORE:
    
    1. **Чтение/запись за пределами буфера** (Daniel Firer) — чтение/запись за пределами выделенной памяти
    2. **Целочисленное переполнение, переполнение кучи и чтение/запись за пределами буфера** (Joseph Surin) — целочисленное переполнение, приводящее к переполнению кучи
    
    Когда модуль RedisBloom загружен, атакующий может отправить специально созданную полезную нагрузку RESTORE для эксплуатации указанных выше ошибок в процессе десериализации данных фильтра Блума, фильтра Cuckoo, Count-Min Sketch или Top-K.
    
    #### Признаки обнаружения
    
    - Сбой Redis со стеком вызовов, связанным с модулем RedisBloom
    - Модуль RedisBloom загружен (`MODULE LIST` показывает bf/bloom)
    - Данные в фильтрах Блума повреждены или изменены необычным образом
    
    #### Методы устранения (без обновления)
    
    **Способ 1 — Блокировка RESTORE через ACL:** (аналогично CVE-2026-25243)```bash
    redis-cli ACL SETUSER default -restore
    redis-cli ACL SAVE
    

    Способ 2 — Удаление модуля RedisBloom (если он не нужен):```bash redis-cli MODULE UNLOAD bf

    root@kitploit:~
    Sau đó xóa dòng sau khỏi `redis.conf`:```
    loadmodule /path/to/redisbloom.so
    

    Способ 3 — Только обновление модуля (без обновления Redis):

    Загрузите исправленную версию модуля:

    • RedisBloom 2.8.20 (для линейки 2.8)
    • RedisBloom 2.6.28 (для линейки 2.6)
    • RedisBloom 2.4.23 (для линейки 2.4)```bash redis-cli MODULE UNLOAD bf redis-cli MODULE LOAD /path/to/new/redisbloom.so
    root@kitploit:~
    ---
    
    ### CVE-2026-23631
    
    | Свойство     | Значение                                                        |
    | ------------ | --------------------------------------------------------------- |
    | **Название** | Lua Use-After-Free через синхронизацию Master-Replica           |
    | **CVSS 4.0** | **6.1 (MEDIUM)**                                                |
    | **CWE**      | CWE-416 (Use After Free)                                        |
    | **Вектор**   | `AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N`        |
    | **Условия**  | Аутентифицированный + **replica** с `replica-read-only` = **disabled** |
    | **Область**  | Все Redis OSS/CE с Lua scripting, ТОЛЬКО на replica             |
    | **Кодовое имя** | "DarkReplica" (Yoni Shiraz, Wiz Zeroday Cloud)                |
    
    #### Техническое описание
    
    Аутентифицированный атакующий может использовать механизм синхронизации master-replica для отправки специальных Lua-скриптов, вызывающих use-after-free в Lua-движке на replica.
    
    **Критическое условие:** Ошибка **влияет только на replica**, настроенную с `replica-read-only disabled` (т.е. replica может выполнять запись). Это НЕ конфигурация по умолчанию — по умолчанию `replica-read-only` = `yes`.
    
    Если replica настроена в режиме read-only (по умолчанию), экземпляр **не подвержен уязвимости**.
    
    #### Признаки обнаружения
    
    - Сбой Redis на replica со стеком вызовов из Lua-движка
    - Конфигурация `replica-read-only` = `no` на replica
    - Выполнение неизвестных команд на replica
    - Несанкционированные сетевые подключения к replica
    
    #### Методы устранения (без обновления)
    
    **Способ 1 — Включить replica-read-only (рекомендуется, это значение по умолчанию):**```bash
    # Runtime
    redis-cli CONFIG SET replica-read-only yes
    
    # Trong redis.conf:
    replica-read-only yes
    

    Способ 2 — Блокировка Lua-скриптов через ACL:```bash redis-cli ACL SETUSER default -@scripting redis-cli ACL SETUSER default -eval -evalsha -script -function -fcall -fcall_ro redis-cli ACL SAVE

    root@kitploit:~
    **Способ 3 — Отключение команд Lua (требуется перезапуск Redis):**```bash
    # Thêm vào redis.conf:
    rename-command EVAL ""
    rename-command EVALSHA ""
    rename-command SCRIPT ""
    rename-command FUNCTION ""
    rename-command FCALL ""
    rename-command FCALL_RO ""
    

    ИНСТРУКЦИЯ ПО ИСПОЛЬЗОВАНИЮ СКРИПТА

    Принцип работы

    • Без параметров → отображается справка (help)
    • --scan → диагностика, проверка всех CVE
    • --fix-... → применение мер устранения для конкретного CVE``` $ ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh → hiển thị banner + HELP + thoát
    root@kitploit:~
    ### Требования к системе
    
    - **Операционная система:** Linux (Ubuntu, Debian, CentOS, RHEL, ...)
    - **Инструменты:** `redis-cli` (обычно входит в пакет `redis-tools` или `redis`)
    - **Права:** Права на чтение/запись файла `redis.conf` (для исправления)
    - **Подключение:** Сеть до проверяемого экземпляра Redis
    
    ### Установка redis-cli (если ещё не установлен)```bash
    # Ubuntu/Debian
    sudo apt update && sudo apt install -y redis-tools
    
    # CentOS/RHEL 7
    sudo yum install -y redis
    
    # CentOS/RHEL 8+/Fedora
    sudo dnf install -y redis
    
    # Hoặc từ source
    wget https://download.redis.io/releases/redis-stable.tar.gz
    tar xzf redis-stable.tar.gz
    cd redis-stable && make redis-cli
    sudo cp src/redis-cli /usr/local/bin/
    

    Использование

    1. Просмотр справки```bash

    Cấp quyền thực thi

    chmod +x CVE-2026-25589-25588-25243-23631-23479-REDIS.sh

    Chạy không tham số → hiển thị help

    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh

    Hoặc tường minh

    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --help

    root@kitploit:~
    #### 2. Полное сканирование CVE (диагностика)```bash
    # Local Redis
    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan
    
    # Redis từ xa
    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
        -H 192.168.1.100 -p 6379 -a "your_password"
    
    # Với ACL user
    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
        -H 10.0.0.50 -p 6380 -u admin -a "admin_password"
    
    # Qua Unix socket
    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
        -s /var/run/redis/redis-server.sock
    
    # Kèm xuất báo cáo
    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
        -o redis_cve_report_$(date +%Y%m%d).txt
    

    3. Исправление по каждому CVE в отдельности```bash

    Fix tung CVE cu the

    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-cve-23479 ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-cve-25243 -H 10.0.0.1 -a mypassword ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-cve-25588 ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-cve-25589 ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-cve-23631 -c /etc/redis/redis.conf

    root@kitploit:~
    #### 4. Групповое быстрое исправление (рекомендуется)```bash
    # Chan RESTORE → bao ve 3/5 CVE (25243 + 25588 + 25589)
    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-restore
    
    # Chan blocking commands → bao ve CVE-2026-23479
    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-blocking
    
    # Chan Lua + bat replica-read-only → bao ve CVE-2026-23631
    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-lua
    

    5. Полное устранение```bash

    Fix tat ca CVE (co backup config)

    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-all

    Fix all voi file config rieng

    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-all
    -c /etc/redis/redis.conf

    Fix all khong backup (khong khuyen nghi)

    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-all --no-backup

    Fix all Redis tu xa

    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-all
    -H 10.0.0.1 -p 6379 -a mypassword

    root@kitploit:~
    ### Полная таблица параметров
    
    #### Параметр действия (ACTION) — обязательный
    
    | Параметр          | Функция                                      | Количество защищённых CVE      |
    | ----------------- | -------------------------------------------- | ------------------------------ |
    | *(без параметра)* | Показать инструкцию по использованию         | —                              |
    | `--scan`          | Диагностическое сканирование всех 5 CVE      | —                              |
    | `--fix-all`       | Устранить все CVE                            | **5/5**                        |
    | `--fix-restore`   | **[Быстро]** Только блокировка команды RESTORE | **3/5** (25243, 25588, 25589) |
    | `--fix-blocking`  | **[Быстро]** Только блокировка блокирующих команд | **1/5** (23479)           |
    | `--fix-lua`       | **[Быстро]** Блокировка Lua + включение replica-read-only | **1/5** (23631)    |
    | `--fix-cve-23479` | Устранить CVE-2026-23479                     | 1/5                            |
    | `--fix-cve-25243` | Устранить CVE-2026-25243                     | 1/5                            |
    | `--fix-cve-25588` | Устранить CVE-2026-25588                     | 1/5                            |
    | `--fix-cve-25589` | Устранить CVE-2026-25589                     | 1/5                            |
    | `--fix-cve-23631` | Устранить CVE-2026-23631                     | 1/5                            |
    
    #### Параметры подключения
    
    | Параметр             | Описание                 | По умолчанию |
    | -------------------- | ------------------------ | ------------ |
    | `-H, --host HOST`    | Адрес Redis host         | `127.0.0.1`  |
    | `-p, --port PORT`    | Порт Redis               | `6379`       |
    | `-a, --pass PASS`    | Пароль Redis             | *(пусто)*    |
    | `-u, --user USER`    | Имя пользователя ACL     | `default`    |
    | `-s, --socket PATH`  | Путь к Unix-сокету       | *(пусто)*    |
    
    #### Дополнительные параметры
    
    | Параметр             | Описание                                   | По умолчанию             |
    | -------------------- | ------------------------------------------ | ------------------------ |
    | `-h, --help`         | Показать справку                           | —                        |
    | `-c, --config FILE`  | Путь к redis.conf                          | `/etc/redis/redis.conf`  |
    | `-o, --output FILE`  | Записать отчёт в файл (только с `--scan`)  | *(пусто)*                |
    | `--redis-cli PATH`   | Путь к бинарнику redis-cli                 | `redis-cli` (из PATH)    |
    | `--no-backup`        | Не создавать резервную копию конфигурации перед изменением | `false` |
    
    ### Коды выхода (Exit Codes)
    
    | Код | Значение                                                |
    | --- | ------------------------------------------------------- |
    | `0` | Успех — CVE не обнаружены или исправление завершено     |
    | `1` | Ошибка: redis-cli не найден или нет подключения         |
    | `2` | `--scan` обнаружил как минимум 1 CVE — требуется исправление |
    
    ### Результат вывода при сканировании (`--scan`)```
    ╔══════════════════════════════════════════════════════════════════════╗
    ║    REDIS CVE SCANNER & MITIGATION TOOL                               ║
    ╚══════════════════════════════════════════════════════════════════════╝
    
    [*] THONG TIN REDIS INSTANCE
      Host:Port     : 127.0.0.1:6379
      Version       : 7.2.5
      Mode          : standalone
      Role          : master
      Modules       : timeseries bf
    
    ═══════════════════════════════════════════════════════════════════════
      [1/5] CVE-2026-23479 - Use-after-free trong Unblock Client Flow
            CVSS 7.7 (HIGH) | RCE
    ═══════════════════════════════════════════════════════════════════════
    [✗] CO KHA NANG BI ANH HUONG - Redis 7.2.5 (can >= 7.2.14)
    
      ... (CVE 2-5 tuong tu)
    
    ╔══════════════════════════════════════════════════════════════════════╗
    ║                         TOM TAT KET QUA                              ║
    ╚══════════════════════════════════════════════════════════════════════╝
      [✗] CVE-2026-23479 - VULNERABLE
      [✗] CVE-2026-25243 - VULNERABLE
      [✗] CVE-2026-25588 - VULNERABLE
      [✗] CVE-2026-25589 - VULNERABLE
      [✓] CVE-2026-23631 - OK
    
      Ket qua: 1 PASS / 4 VULNERABLE
    
    ═══════════════════════════════════════════════════════════════════════
      [!] Phat hien 4 CVE. Su dung cac tuy chon --fix-... de khac phuc.
      VD: ./script.sh --fix-restore    # Chan RESTORE (3 CVE)
      VD: ./script.sh --fix-blocking   # Chan blocking (1 CVE)
      VD: ./script.sh --fix-lua        # Chan Lua (1 CVE)
      VD: ./script.sh --fix-all        # Khac phuc toan bo
    ═══════════════════════════════════════════════════════════════════════
    

    Результат вывода при исправлении (--fix-restore)```

    ╔══════════════════════════════════════════════════════════════════════╗ ║ REDIS CVE SCANNER & MITIGATION TOOL ║ ╚══════════════════════════════════════════════════════════════════════╝

    [*] THONG TIN REDIS INSTANCE Host:Port : 127.0.0.1:6379 Version : 7.2.5 ...

    ╔══════════════════════════════════════════════════════════════════════╗ ║ FIX NHANH: Chan RESTORE (CVE-2026-25243 + 25588 + 25589) ║ ╚══════════════════════════════════════════════════════════════════════╝ Bao ve 3/5 CVE chi voi 1 lenh chan RESTORE

    [+] Da backup redis.conf toi: /etc/redis/redis.conf.cve-backup-20260508_120000 [*] Chan RESTORE qua ACL (khong can restart) => ACL SETUSER default -restore ... OK => ACL SAVE ... OK

    [*] rename-command RESTORE "" (can restart) => Vo hieu hoa: rename-command RESTORE "" [!] CAN RESTART REDIS de rename-command co hieu luc

    [✓] Da chan RESTORE. Cac CVE duoc bao ve:

    • CVE-2026-25243 (RESTORE double-free/OOB)
    • CVE-2026-25588 (RESTORE + RedisTimeSeries)
    • CVE-2026-25589 (RESTORE + RedisBloom)
    root@kitploit:~
    ---
    
    ## ОБЩИЕ МЕТОДЫ УСТРАНЕНИЯ
    
    ### Метод 1: ACL (Redis >= 6.0) — РЕКОМЕНДУЕТСЯ
    
    Это **самый безопасный и гибкий метод**, не требующий перезапуска Redis.```bash
    # Tao ACL user an toan cho ung dung
    redis-cli ACL SETUSER app_user on >StrongPassword123 ~* \
        +@read \           # Quyen doc du lieu
        +@write \          # Quyen ghi du lieu
        -@dangerous \      # CHAN tat ca lenh nguy hiem (gồm RESTORE)
        -@admin \          # CHAN lenh quan tri
        -@scripting \      # CHAN Lua scripting
        -@blocking \       # CHAN blocking commands
        -@keyspace \       # CHAN keyspace notifications
        -@pubsub           # CHAN pub/sub (neu khong dung)
    
    # Vo hieu hoa default user
    redis-cli ACL SETUSER default off
    
    # Luu ACL vinh vien
    redis-cli ACL SAVE
    

    Метод 2: rename-command — требуется перезапуск Redis

    Добавьте следующие строки в redis.conf:```conf

    Vo hieu hoa RESTORE (CVE-2026-25243, 25588, 25589)

    rename-command RESTORE ""

    Vo hieu hoa blocking commands (CVE-2026-23479)

    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 XREAD "" rename-command XREADGROUP ""

    Vo hieu hoa Lua commands (CVE-2026-23631)

    rename-command EVAL "" rename-command EVALSHA "" rename-command SCRIPT "" rename-command FUNCTION "" rename-command FCALL "" rename-command FCALL_RO ""

    root@kitploit:~
    Затем перезапустите Redis:```bash
    sudo systemctl restart redis-server
    # hoặc
    sudo service redis-server restart
    

    Метод 3: Конфигурация сети + Firewall```bash

    Trong redis.conf:

    protected-mode yes bind 127.0.0.1 192.168.1.10 # Chi lang nghe IP tin cay

    iptables — chi cho phep IP noi bo

    iptables -A INPUT -p tcp --dport 6379 -s 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp --dport 6379 -s 10.0.0.0/8 -j ACCEPT iptables -A INPUT -p tcp --dport 6379 -j DROP

    Luu iptables

    iptables-save > /etc/iptables/rules.v4

    root@kitploit:~
    ### Метод 4: Запуск Redis с минимальными привилегиями```bash
    # Tao user redis khong co shell
    sudo useradd -r -s /bin/false redis
    
    # Chown thu muc Redis
    sudo chown -R redis:redis /var/lib/redis
    sudo chown -R redis:redis /etc/redis
    
    # Chay Redis duoi user redis
    sudo -u redis redis-server /etc/redis/redis.conf
    

    Метод 5: Удаление ненужных модулей```bash

    Kiem tra module dang nap

    redis-cli MODULE LIST

    Go bo module khong can thiet

    redis-cli MODULE UNLOAD timeseries # CVE-2026-25588 redis-cli MODULE UNLOAD bf # CVE-2026-25589

    Xoa loadmodule khoi redis.conf

    Tim va xoa dong:

    loadmodule /path/to/redistimeseries.so

    loadmodule /path/to/redisbloom.so

    root@kitploit:~
    ---
    
    ## ОЦЕНКА РИСКА — ВНУТРЕННЯЯ СИСТЕМА REDIS / SENTINEL
    
    Данный раздел предназначен для кластеров **Redis Sentinel** или автономных Redis, работающих во внутренней сети, защищённых межсетевым экраном (Fortinet, iptables и т. д.) и **не имеющих прямого подключения к Интернету**.
    
    ### Сводка
    
    | Текущий уровень защиты           | Снижение риска?                                             | Требуется ли обновление?                         |
    | ------------------------------- | -------------------------------------------------------------- | ---------------------------------------- |
    | Нет доступа в Интернет         | **Да** — устраняет внешних атакующих                         | Не требуется срочно                            |
    | Fortinet Firewall (с IPS/DPI)  | **Да** — фильтрует исходные IP, IPS может обнаруживать аномальные payload | Не требуется срочно                            |
    | iptables (ограничение исходных IP)    | **Да** — только разрешённые IP могут подключаться к порту Redis           | Не требуется срочно                            |
    | **Комбинация всех трёх мер выше** | **Снижает вероятность эксплуатации до очень низкой**                           | **Не требуется срочно, но желательно иметь план** |
    
    ### Ключевой момент: Почему межсетевого экрана недостаточно?
    
    Все 5 CVE имеют общую черту: атакующий должен быть **уже аутентифицирован** в Redis (PR:L — Privileges Required: Low в векторе CVSS). Межсетевой экран блокирует подключения с неразрешённых IP, но **не защищает** от следующих угроз:
    
    | Угроза                                                                                                         | Вероятность               | Последствия при эксплуатации                                                     |
    | ------------------------------------------------------------------------------------------------------------------ | ----------------------------- | ---------------------------------------------------------------------------- |
    | **Вредоносный внутренний сотрудник** — имеет доступ к внутренней сети + знает пароль Redis                                 | Низкая, но исключать нельзя | **RCE** на сервере Redis, повышение привилегий, кража данных             |
    | **Скомпрометированная внутренняя машина (Lateral Movement)** — атакующий проникает на любую машину в сети, затем атакует Redis | Средняя                    | Все данные Redis украдены/изменены/удалены; атакующий может установить бэкдор |
    | **Ошибка конфигурации межсетевого экрана** — случайное открытие порта Redis наружу из-за неверного изменения правил                                    | Низкая                          | Эквивалентно прямому раскрытию в Интернет                                      |
    | **Supply Chain / Third-Party** — партнёры, вендоры имеют VPN-подключение к внутренней сети                                    | Низкая                          | RCE, утечка данных                                                       |
    | **Уязвимость в самом межсетевом экране/сети** — атакующий обходит межсетевой экран через другую уязвимость                             | Очень низкая                      | Вся внутренняя система затронута                                         |
    
    ### Количественный анализ риска```
    Rủi ro = Xác suất khai thác × Hậu quả
    
    Với firewall + air-gap:
      = (RẤT THẤP: 0.5% - 2%/năm) × (NGHIÊM TRỌNG: RCE toàn hệ thống, mất toàn bộ dữ liệu)
      = RỦI RO TRUNG BÌNH — vẫn đáng quan tâm
    

    Модель угроз для кластера Sentinel

    Кластер Redis Sentinel добавляет собственные риски:

    Вектор атаки SentinelОписаниеСвязанные CVE
    Захват Sentinel — атакующий захватывает узел Sentinel и переключает failover на вредоносную репликуSentinel общается через отдельный порт (обычно 26379), если он не защищён отдельноCVE-2026-23631 (если у реплики replica-read-only no)
    Повышение реплики — захваченная реплика повышается до мастераДанные всего кластера изменяютсяВсе CVE RESTORE (25243, 25588, 25589)
    Синхронизация мастер-реплика — атакующий перехватывает поток синхронизацииДанные похищаются во время синхронизацииCVE-2026-23631

    Рекомендации по приоритету

    ПриоритетДействиеВремя выполненияТребуется downtime?
    P0 — НемедленноЗапустить скрипт проверки всех узлов (master + replica + sentinel): ./CVE-...sh -H <ip> -p <port> -a <pass>2-5 минут / узелНет
    P0 — НемедленноПроверить replica-read-only yes на всех репликах: redis-cli CONFIG GET replica-read-only1 минута / узелНет
    P1 — В течение неделиЗаблокировать RESTORE через ACL (без перезапуска): redis-cli ACL SETUSER default -restore; redis-cli ACL SAVE2 минуты / узелНет
    P1 — В течение неделиЗаблокировать команды @blocking через ACL (CVE-2026-23479)2 минуты / узелНет
    P1 — В течение неделиЗаблокировать команды @scripting через ACL, если Lua не используется (CVE-2026-23631)2 минуты / узелНет
    P2 — До следующего окна обслуживанияДобавить rename-command RESTORE "", rename-command EVAL "", ... в redis.conf10 минут (с перезапуском)Да (перезапуск Redis)
    P2 — До следующего окна обслуживанияОбновить Redis до исправленной версии (6.2.22, 7.2.14, 7.4.9, 8.2.6, 8.4.3, 8.6.3)30-60 минут / кластерДа (перезапуск всего кластера)

    Пример: Защита всего кластера Sentinel с помощью ACL (без downtime)```bash

    ============================================

    Chay tren TUNG node Redis (master + replica)

    ============================================

    1. Tao ACL user an toan cho ung dung

    redis-cli -h <node_ip> -p 6379 -a ACL SETUSER app_user on >StrongPass123 ~*
    +@read +@write
    -@dangerous -@admin -@scripting -@blocking
    -restore -debug

    2. Vo hieu hoa default user

    redis-cli -h <node_ip> -p 6379 -a ACL SETUSER default off

    3. Luu ACL

    redis-cli -h <node_ip> -p 6379 -a ACL SAVE

    4. Kiem tra lai

    redis-cli -h <node_ip> -p 6379 -a --user app_user --pass StrongPass123 PING

    root@kitploit:~
    ## Các tính năng chính
    
    - **Phát hiện và phân loại tự động**: Tự động phát hiện các loại tài liệu khác nhau và phân loại chúng theo nội dung.
    - **Trích xuất dữ liệu thông minh**: Trích xuất thông tin quan trọng từ tài liệu bằng thuật toán học máy tiên tiến.
    - **Hỗ trợ đa định dạng**: Hỗ trợ nhiều định dạng tài liệu phổ biến bao gồm PDF, DOCX, XLSX và TXT.
    - **Giao diện dòng lệnh thân thiện**: Cung cấp CLI trực quan với các tùy chọn linh hoạt để tùy chỉnh quy trình xử lý.
    - **Báo cáo chi tiết**: Tạo báo cáo chi tiết về kết quả phân tích, bao gồm cả số liệu thống kê và biểu đồ trực quan.
    
    ## Cài đặt
    
    Để cài đặt công cụ, bạn có thể sử dụng pip:
    
    ```bash
    pip install doc-analyzer
    

    Hoặc clone từ GitHub:

    root@kitploit:~
    git clone https://github.com/example/doc-analyzer.git
    cd doc-analyzer
    pip install -r requirements.txt
    

    Sử dụng

    Ví dụ cơ bản

    root@kitploit:~
    doc-analyzer analyze --input ./documents --output ./results
    

    Tùy chọn nâng cao

    root@kitploit:~
    doc-analyzer analyze --input ./documents --output ./results --format json --verbose
    

    Xem trợ giúp

    root@kitploit:~
    doc-analyzer --help
    

    Cấu trúc dự án

    root@kitploit:~
    doc-analyzer/
    ├── README.md
    ├── LICENSE
    ├── setup.py
    ├── requirements.txt
    ├── doc_analyzer/
    │   ├── __init__.py
    │   ├── cli.py
    │   ├── core/
    │   │   ├── __init__.py
    │   │   ├── detector.py
    │   │   ├── extractor.py
    │   │   └── classifier.py
    │   └── utils/
    │       ├── __init__.py
    │       └── helpers.py
    └── tests/
        ├── __init__.py
        ├── test_detector.py
        └── test_extractor.py
    

    Đóng góp

    Chúng tôi hoan nghênh mọi đóng góp từ cộng đồng. Vui lòng đọc CONTRIBUTING.md để biết thêm chi tiết về quy trình đóng góp.

    Giấy phép

    Dự án này được phân phối dưới giấy phép MIT. Xem tệp LICENSE để biết thêm chi tiết.```bash

    ============================================

    Chay tren TUNG node Sentinel (port 26379)

    ============================================

    Sentinel thuong khong can RESTORE/EVAL — chan toan bo lenh nguy hiem

    redis-cli -h <sentinel_ip> -p 26379 -a <sentinel_pass> ACL SETUSER default
    -@dangerous -@admin -@scripting -@blocking -restore

    redis-cli -h <sentinel_ip> -p 26379 -a <sentinel_pass> ACL SAVE

    root@kitploit:~
    ### Поток принятия решения: Нужно ли обновляться немедленно?```
    Hệ thống Redis của bạn có public-facing không?
    ├── CÓ → NÂNG CẤP NGAY hoặc áp dụng workaround TRONG 24H
    └── KHÔNG (nội bộ / air-gapped)
        ├── Có dùng Lua scripting (EVAL/EVALSHA)?
        │   ├── CÓ → CVE-2026-23631: Kiểm tra replica-read-only, chặn @scripting qua ACL
        │   └── KHÔNG → Rủi ro thấp hơn
        ├── Có dùng RedisTimeSeries hoặc RedisBloom module?
        │   ├── CÓ → CVE-2026-25588/25589: Chặn RESTORE qua ACL, nâng cấp module
        │   └── KHÔNG → Không bị ảnh hưởng bởi 25588/25589
        ├── Có dùng blocking commands (BLPOP, XREAD, ...)?
        │   ├── CÓ → CVE-2026-23479: Chặn @blocking qua ACL hoặc rename-command
        │   └── KHÔNG → Chặn @blocking để an toàn (không ảnh hưởng)
        └── KẾT LUẬN:
            ├── Áp dụng ACL workaround NGAY TRONG TUẦN (không downtime)
            └── Lên kế hoạch nâng cấp TRONG MAINTENANCE WINDOW TIẾP THEO
    

    Заключение

    Firewall + сетевая изоляция снижают вероятность эксплуатации до очень низкого уровня, но последствия в случае эксплуатации остаются RCE на всю систему. При стоимости устранения, практически равной нулю (добавление нескольких строк ACL без перезапуска), применение мер защиты является выгодным решением с точки зрения управления рисками. Нет необходимости в паническом срочном обновлении, но рекомендуется применить workaround ACL на этой неделе и запланировать обновление в следующее окно технического обслуживания.


    ACL REFERENCE

    Важные группы команд (command categories)

    ГруппаОписаниеВлияние CVE
    @dangerousОпасные команды (включая RESTORE, FLUSHDB, FLUSHALL, KEYS, SHUTDOWN, DEBUG, CONFIG)CVE-2026-25243, 25588, 25589
    @blockingБлокирующие команды (BLPOP, BRPOP, BZPOPMIN, XREAD, WAIT, ...)CVE-2026-23479
    @scriptingLua-скриптинг (EVAL, EVALSHA, SCRIPT, FUNCTION, FCALL)CVE-2026-23631
    @adminАдминистративные команды (CONFIG, ACL, CLIENT, CLUSTER, MONITOR, SHUTDOWN, ...)Общая защита
    @keyspaceКоманды, связанные с keyspace (KEYS, SCAN, FLUSHDB, FLUSHALL, ...)Общая защита
    @readКоманды чтения данных (GET, HGET, LRANGE, SMEMBERS, ZRANGE, ...)Безопасно
    @writeКоманды записи данных (SET, HSET, LPUSH, SADD, ZADD, ...)Безопасно

    Пример полной конфигурации ACL```bash

    1. Tao admin user (day du quyen)

    redis-cli ACL SETUSER admin on >AdminPass123 ~* +@all

    2. Tao app user (quyen gioi han)

    redis-cli ACL SETUSER app on >AppPass123 ~*
    +@read
    +@write
    -@dangerous
    -@admin
    -@scripting
    -@blocking
    -restore
    -debug

    3. Tao readonly user (chi doc)

    redis-cli ACL SETUSER reader on >ReaderPass123 ~*
    +@read
    -@dangerous
    -@admin
    -@scripting

    4. Vo hieu hoa default user

    redis-cli ACL SETUSER default off

    5. Luu ACL

    redis-cli ACL SAVE

    6. Kiem tra ACL

    redis-cli ACL LIST

    root@kitploit:~
    ### Эффективная проверка ACL```bash
    # Liet ke tat ca ACL rules
    redis-cli ACL LIST
    
    # Kiem tra quyen cua mot user
    redis-cli ACL GETUSER app
    
    # Kiem tra user hien tai
    redis-cli ACL WHOAMI
    
    # Xem log vi pham ACL
    redis-cli ACL LOG
    

    ПРОЦЕДУРА ПЕРИОДИЧЕСКОЙ ПРОВЕРКИ

    1. Разовая проверка (ad-hoc)```bash

    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan
    -H <redis_host> -p -a
    -o report_$(date +%Y%m%d_%H%M%S).txt

    root@kitploit:~
    ### 2. Массовая проверка нескольких экземпляров Redis
    
    Создайте файл `redis_hosts.txt`:```
    # Format: host:port:password:user
    10.0.0.1:6379:pass1:default
    10.0.0.2:6379:pass2:default
    10.0.0.3:6380:pass3:admin
    

    Скрипт массовой проверки:```bash #!/bin/bash

    File: batch_check.sh

    BATCH_RESULT="batch_result_$(date +%Y%m%d_%H%M%S).txt"

    while IFS=':' read -r host port pass user; do [[ "$host" =~ ^#.* ]] && continue # Bo qua comment [[ -z "$host" ]] && continue # Bo qua dong trong

    root@kitploit:~
    echo "============================================" | tee -a "$BATCH_RESULT"
    echo "Kiem tra: $host:$port" | tee -a "$BATCH_RESULT"
    echo "============================================" | tee -a "$BATCH_RESULT"
    
    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
        -H "$host" -p "${port:-6379}" \
        -a "${pass:-}" -u "${user:-default}" \
        2>&1 | tee -a "$BATCH_RESULT"
    
    echo "" | tee -a "$BATCH_RESULT"
    

    done < redis_hosts.txt

    echo "Bao cao tong hop: $BATCH_RESULT"

    root@kitploit:~
    ### 3. Интеграция в cron (ежедневная проверка)```bash
    # Them vao crontab (chay hang ngay luc 7:00 AM)
    0 7 * * * /opt/scripts/CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
        -H 127.0.0.1 -p 6379 -a mypassword \
        -o /var/log/redis/cve_report_$(date +\%Y\%m\%d).txt \
        > /dev/null 2>&1
    

    4. Интеграция в CI/CD pipeline```yaml

    GitLab CI example

    redis-security-scan: stage: security image: redis:7-alpine script: - chmod +x CVE-2026-25589-25588-25243-23631-23479-REDIS.sh - ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan
    -H $REDIS_HOST -p $REDIS_PORT -a $REDIS_PASS
    -o cve_report.txt artifacts: paths: - cve_report.txt when: always allow_failure: true

    root@kitploit:~
    ---
    
    ## ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ (FAQ)
    
    ### В: Нужно ли перезапускать Redis после применения `--fix-...`?
    
    **О:** Да, для изменений `rename-command` — они вступают в силу только после перезапуска Redis. Изменения через `CONFIG SET` (например, `protected-mode`, `replica-read-only`) вступают в силу немедленно. Изменения через `ACL SETUSER` + `ACL SAVE` вступают в силу немедленно, **перезапуск не требуется**. Если используются только ACL (`--fix-restore`, `--fix-blocking`, `--fix-lua`), перезапуск не нужен. Скрипт всегда применяет одновременно и ACL (runtime), и rename-command (требует перезапуска) для многоуровневой защиты.
    
    ### В: Влияет ли блокировка RESTORE на нормальную работу?
    
    **О:** Команда `RESTORE` обычно используется только в следующих случаях:
    
    - Восстановление данных из резервной копии
    - Миграция данных между экземплярами
    - Пользовательская синхронизация данных
    
    Если ваше приложение не использует RESTORE, блокировка этой команды безопасна. Если использует, создайте отдельного ACL-пользователя с правами на RESTORE и применяйте его только для административных целей.
    
    ### В: Я использую Redis < 6.0, ACL недоступен. Что делать?
    
    **О:** Для Redis < 6.0 вы можете использовать только `rename-command` для отключения команд. Шаги:
    
    1. Добавьте `rename-command RESTORE ""` в redis.conf
    2. Добавьте команды `rename-command` для блокирующих команд
    3. Включите `protected-mode yes`
    4. Установите `requirepass` с надёжным паролем
    5. Ограничьте подключения через брандмауэр
    6. Перезапустите Redis
    
    ### В: Как узнать, загружены ли модули RedisTimeSeries/RedisBloom?
    
    **О:** Выполните команду:```bash
    redis-cli MODULE LIST
    

    Вывод покажет список загруженных модулей с версиями. Если timeseries или bf отсутствуют, значит модуль не загружен.

    В: Безопасны ли --fix-all / --fix-restore / --fix-... для production?

    О: Команды fix выполняют безопасные изменения:

    • Создают резервную копию redis.conf перед изменением (если не используется --no-backup)
    • ACL (-restore, -@blocking, -@scripting): вступают в силу немедленно, без downtime, легко откатываются
    • rename-command: требует перезапуска Redis для вступления в силу
    • CONFIG SET: применяется на лету, теряется при перезапуске, если не записано в redis.conf

    Рекомендация: Для production сначала используйте --fix-restore, --fix-blocking, --fix-lua (только ACL, без перезапуска). Затем запланируйте окно обслуживания для перезапуска с rename-command.

    В: Как откатить (rollback) изменения, внесённые --fix-...?

    О:

    1. Если есть резервная копия: скопируйте файл резервной копии поверх redis.conf, затем перезапустите Redis
    2. Если использовался CONFIG SET: перезапуск Redis восстановит конфигурацию из файла
    3. Если использовался ACL SETUSER: используйте ACL SETUSER <user> +<cmd> для восстановления прав

    В: Стоит ли мне обновлять Redis?

    О: Да, если возможно. Обновление до исправленной версии — самое радикальное решение. Этот скрипт предназначен для случаев:

    • Невозможно обновиться сразу из-за ограничений приложений
    • Нужно время для тестирования новой версии
    • Нужны временные меры защиты в ожидании окна обслуживания

    В: Redis работает внутри сети, без доступа в Интернет, защищён файрволом — нужно ли обновляться?

    О: Срочное обновление не требуется, но стоит применить workaround и составить план обновления, потому что:

    • Файрвол лишь снижает вероятность атаки, но не устраняет риск полностью
    • Атакующий из внутренней сети (злонамеренный сотрудник, скомпрометированная машина, lateral movement) всё ещё может использовать уязвимость
    • Последствия эксплуатации — RCE на всю систему — самый высокий уровень серьёзности
    • Стоимость workaround очень низкая: добавление ACL -restore -@blocking -@scripting занимает 2 минуты, без downtime

    Рекомендуемый план:

    1. На этой неделе: Применить ACL workaround (без downtime)
    2. В следующее окно обслуживания: Обновить Redis + добавить rename-command

    Подробнее см. в Оценка рисков — Внутренняя система Redis / Sentinel.


    СПРАВОЧНИК

    • Официальный Redis Security Advisory
    • GitHub Advisory — CVE-2026-25243 (RESTORE RCE)
    • GitHub Advisory — CVE-2026-23631 (Lua UAF)
    • Документация Redis ACL
    • Документация Redis rename-command
    • NVD — CVE-2026-25243
    • NVD — CVE-2026-25588
    • OpenCVE — CVE-2026-23479
    • Tenable — CVE-2026-23631

    Отказ от ответственности: Этот документ составлен на основе публичной информации из Redis security advisory и источников NVD. Пользователь несёт ответственность за проверку и подтверждение мер по устранению уязвимостей, соответствующих его среде, перед их применением.

    Скачать инструмент