Progress выпустила исправления для Kemp LoadMaster, закрывающие критическую уязвимость удалённого выполнения кода (RCE) до аутентификации, отслеживаемую как CVE-2026-8037. Проблема затрагивает версии General Availability (GA) 7.2.63.1 и более ранние, а также Long-Term Support Fix (LTSF) 7.2.54.17 и более ранние при включённом API. Уязвимость была обнаружена исследователем Саедом Ибрагимом Ахмедом из TrendAI Research и задокументирована в бюллетене Zero Day Initiative (ZDI-26-342).
Уязвимость CVE-2026-8037
CVE-2026-8037 представляет собой нестандартную ошибку внедрения команд, возникающую из-за комбинации неинициализированной кучи и неправильной работы функции экранирования строк escape_quotes(). Эта функция применяется для обработки значений apiuser и apipass в запросах к эндпоинту /accessv2. В уязвимой реализации escape_quotes() выделяет буфер с помощью malloc(), что оставляет память неинициализированной, и не записывает нулевой терминатор в конце преобразованной строки.
Когда escape_quotes() возвращает указатель на такую строку, она передаётся в цепочку вызовов sprintf() и system() для построения и выполнения команды проверки учётных данных. Из-за отсутствия нулевого терминатора функция sprintf() продолжает чтение за пределы выделенного буфера в соседние области кучи. Если в эти смежные блоки предварительно поместить управляемые данные, злоумышленник может добиться включения в команду произвольных команд.
Сложность эксплуатации заключается в том, что freed-блоки (освобождённые ранее) содержат метаданные аллокатора, которые могут включать нулевые байты, обрывающие чтение. Однако механизм эксплуатации использует саму функцию экранирования: четыре одинарные кавычки в поле apiuser расширяются ровно в 16 байт (по четыре байта на каждую), что позволяет перезаписать первые 16 байт соседнего freed-блока, удаляя метаданные и создавая непрерывную строку без нулевых символов. Для повышения вероятности того, что нужный блок с командами окажется рядом, атакующий может использовать технику heap-spray (заполнение кучи множеством однотипных записей).
Продукт Kemp LoadMaster располагается на границе корпоративных сетей и выполняет функции балансировщика трафика и контроллера доставки приложений. Успешная эксплуатация CVE-2026-8037 позволяет неавторизованному злоумышленнику, имеющему доступ к API устройства, превратить потенциально защитный шлюз в точку входа внутрь сети. Как отмечают исследователи Zero Day Initiative, устройство на границе сети, которое должно защищать, становится вектором атаки. Поскольку патч требует лишь доступа к API без какой-либо аутентификации, риски особенно велики для организаций, где интерфейс управления LoadMaster доступен из ненадёжных сетей.
В обновлении, выпущенном 4 июня 2026 года, Progress изменил реализацию в двух ключевых моментах. Во-первых, malloc была заменена на calloc, что гарантирует обнуление буфера при выделении. Во-вторых, в конце обработанной строки теперь явно записывается нулевой терминатор. Таким образом, даже если другие ошибки приведут к отсутствию терминатора, все данные после полезной нагрузки уже заполнены нулями и чтение не выйдет за границы буфера.
Администраторам рекомендуется как можно скорее установить обновления до версий 7.2.63.2 (GA) или 7.2.54.18 (LTSF) в зависимости от используемой ветки. Если немедленное обновление невозможно, следует отключить доступ к API из ненадёжных сетей, ограничив его с помощью сетевых ACL, VPN или jump-хостов. Дополнительно стоит настроить мониторинг на необычные системные вызовы validuser, аномальное создание процессов и неожиданные исходящие соединения с устройств LoadMaster.
Тенденция к обнаружению критических уязвимостей в пограничных устройствах сохраняется: ошибки в механизмах обработки данных без аутентификации продолжают представлять серьёзную угрозу для корпоративной безопасности.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-8037
- https://community.progress.com/s/article/LoadMaster-Critical-Security-Bulletin-June-2026-CVE-2026-8037-CVE-2026-33691
- https://labs.watchtowr.com/enterprise-tech-in-shell-out-progress-kemp-loadmaster-uninitialized-heap-to-pre-auth-rce-cve-2026-8037/