
Эксплойт для CVE-2025-32023
Удаленное выполнение кода в Redis при операциях HyperLogLog
CVE-2025-32023 — это уязвимость удаленного выполнения кода (RCE) в базе данных Redis, затрагивающая обработку операций со структурой данных HyperLogLog. Эта ошибка позволяет аутентифицированному пользователю спровоцировать запись за пределами границ буфера на стеке или в куче, отправляя специально сформированные строки, что потенциально может привести к произвольному выполнению кода на сервере. Уязвимость вызвана целочисленным переполнением при обработке разреженных кодировок HyperLogLog. Об уязвимости сообщила компания GitHub, Inc. (конкретный исследователь публично не раскрыт), и она присутствует в Redis начиная с версии 2.8.
Аутентифицированный злоумышленник с доступом к уязвимому экземпляру Redis может использовать эту уязвимость для выполнения произвольного кода на сервере, что потенциально может привести к полной компрометации системы. Это может привести к несанкционированному доступу к конфиденциальным данным, установке постоянных бэкдоров или нарушению работы сервисов. Уязвимость особенно критична в средах, где Redis используется для высокопроизводительного кэширования или обработки данных, поскольку она может подвергнуть критическую инфраструктуру атакам.
Этот репозиторий содержит скрипт эксплойта для CVE-2025-32023. Замените команды-заглушки ниже конкретными инструкциями по запуску вашего скрипта.
# Example usage (replace with actual commands for your script):
git clone https://github.com/atomicjjbod/CVE-2025-32023.git
cd CVE-2025-32023
chmod +x exploit
./exploit --host <redis_host> --port <redis_port>
Примечание: Убедитесь, что установлены необходимые зависимости (например, Python, клиентские библиотеки Redis). Тестируйте эксплойт в контролируемой среде, чтобы избежать непреднамеренных последствий.
PFADD, PFCOUNT, PFMERGE). Пример конфигурации ACL:
ACL SETUSER username -~pf*
Уязвимость возникает из-за целочисленного переполнения при обработке разреженных кодировок HyperLogLog. В частности, при итерации по разреженным данным HyperLogLog счетчик длины (int i) из-за некорректного ввода может переполниться до отрицательного значения, что приводит к записи за пределами границ буфера на стеке или в куче. Это может быть использовано для повреждения памяти и выполнения произвольного кода в зависимости от контекста (например, hllMerge использует структуры, размещаемые на стеке, а hllSparseToDense — структуры, размещаемые в куче).
Проблема была исправлена в Redis путем добавления проверок границ и исправления обработки счетчиков длины в операциях HyperLogLog. Исправление включено в следующий коммит: Коммит Redis 50188747.
По состоянию на 10 июля 2025 года сообщений о широкомасштабной эксплуатации CVE-2025-32023 в реальных условиях не поступало. Однако публичный код PoC доступен, что повышает риск целевых атак. Пользователям Redis настоятельно рекомендуется оперативно устанавливать исправления и внедрять рекомендованные меры защиты для обеспечения безопасности своих систем.