180+ публично доступных серверов под угрозой.

Исследователь из CyberArk Labs обнаружил критическую уязвимость в популярном фреймворке Apache bRPC, которая позволяет выполнять произвольные команды на удаленных серверах. Проблема получила идентификатор CVE-2025-60021 и максимальную оценку серьезности 9.8 по шкале CVSS.
Apache bRPC — это высокопроизводительная библиотека с открытым исходным кодом на C++, которая помогает разработчикам создавать backend-сервисы, взаимодействующие через RPC (удаленный вызов процедур). Фреймворк широко используется для построения микросервисных архитектур, где множество небольших сервисов постоянно обмениваются данными друг с другом. Для отладки и диагностики проблем в продакшене Apache bRPC включает встроенные HTTP-адреса вроде /pprof/*, которые возвращают различную диагностическую информацию — профили процессора, снимки памяти и другую статистику выполнения.
Уязвимость была обнаружена в адресе профилировщика кучи /pprof/heap с помощью Vulnhalla — инструмента на основе искусственного интеллекта, разработанного CyberArk Labs для анализа результатов статического анализатора CodeQL. Проблема затрагивала все версии Apache bRPC до 1.15.0.
Суть уязвимости заключалась в том, что сервис профилирования кучи не проверял пользовательский параметр extra_options перед его включением в командную строку утилиты jeprof. До исправления этот параметр просто добавлялся к команде в формате --<пользовательский_ввод>. Поскольку эта команда затем выполнялась для генерации результатов профилирования, специальные символы оболочки в контролируемом атакующим вводе могли изменить исполняемую команду, что приводило к инъекции команд.
Если адрес /pprof/heap доступен, атакующий может выполнить произвольные команды с привилегиями процесса Apache bRPC. Простой пример эксплуатации выглядит так: /pprof/heap?display=text&extra_options=;touch${IFS}/tmp/new_file. Учитывая, что сервисы bRPC часто работают в привилегированных backend-окружениях, успешная эксплуатация может привести к полной компрометации сервиса.
Хотя адреса профилирования обычно предназначены для внутреннего использования, они могут быть открыты публично из-за неправильной конфигурации. На момент написания статьи поисковик Shodan показывал 181 публично доступный адрес /pprof/heap и в общей сложности 790 адресов /pprof/*. Хотя это не означает, что все эти системы используют уязвимую версию Apache bRPC, цифры показывают масштаб потенциальной проблемы. Но даже когда доступ ограничен внутренней сетью, уязвимость может быть использована вредоносными инсайдерами, скомпрометированными сервисами или атакующими, получившими первоначальную точку входа в инфраструктуру.
Apache устранила проблему в версии bRPC 1.15.0, ограничив параметр extra_options небольшим белым списком поддерживаемых опций jeprof, что не позволяет недоверенному вводу попадать в исполняемую команду. Пользователям рекомендуется обновиться до Apache bRPC 1.15.0 или применить патч из pull request #3101, если немедленное обновление невозможно.
В качестве дополнительных мер защиты эксперты советуют рассматривать все адреса /pprof/* как предназначенные только для администраторов — ограничить доступ на сетевом уровне, привязать к localhost или требовать аутентификацию через обратный прокси. Также стоит отключить адреса профилирования кучи в продакшене, если они не нужны постоянно.
Интересно, что уязвимость была обнаружена с помощью Vulnhalla — инструмента, который запускает CodeQL в масштабе и применяет слой сортировки на основе большой языковой модели для приоритизации находок, которые с большей вероятностью могут быть эксплуатированы. В данном случае Vulnhalla пометила проблему как уязвимость, что инициировало ручную проверку для подтверждения находки.
Временная шкала раскрытия информации выглядит так: уязвимость была сообщена разработчикам Apache bRPC 5 августа 2025 года, исправление было принято 26 сентября 2025 года, версия 1.15.0 с патчем вышла 27 октября 2025 года, а CVE-2025-60021 был опубликован 16 января 2026 года. Исследование было проведено старшим специалистом по кибербезопасности CyberArk Labs Симхой Косманом.