Уязвимости в Bonita BPM и Apache OFBiz позволяют удалённо выполнить код без аутентификации

Oracle Java

Исследователи компании Novee Security представят на конференции Black Hat 2026 результаты аудита четырёх корпоративных Java-платформ. В общей сложности они выявили 12 уязвимостей, среди которых один обход песочницы и четыре проблемы, позволяющие действовать без предварительной аутентификации. Две из них образуют полноценные цепочки для удалённого выполнения кода, затрагивающие Bonita BPM и Apache OFBiz. Доклад подготовили специалисты Лидор Бен Шитрит и Ассаф Левкович.

Уязвимость CVE-2026-31986

Первая цепочка получила название BadBonita. Она связана с платформой Bonita BPM версии 10.4.3, которая используется для управления бизнес-процессами, человеческими задачами и интеграциями с внешними системами, включая SAP, LDAP, базы данных и Salesforce. Уязвимость позволяет злоумышленнику обойти проверки подлинности и добраться до внутреннего интерфейса, предназначенного только для служебных вызовов. Причиной стало расхождение в обработке URL разными компонентами системы. Один компонент нормализует адрес по стандарту RFC 3986, другой - использует собственную логику. В результате запрос, который выглядит как обращение к публичному API, на самом деле перенаправляется во внутренний.

Кроме того, фильтры безопасности использовали частичное совпадение шаблонов, что позволяло подобрать URL, проходящий проверки. Внутренний интерфейс принимает данные в формате XML и десериализует их без ограничений. Это даёт возможность отправить специально сформированный XML-объект, который приводит к выполнению произвольного кода. По словам исследователей, проблема усугубляется тем, что защита не учитывает все способы пересылки запросов внутри сервера. Достаточно было пропустить запрос через механизм внутреннего перенаправления, и все ограничения теряли силу. В частности, правило безопасности не распространялось на такие типы пересылки, как FORWARD, INCLUDE и ERROR, что и открыло путь к внутреннему API.

Вторая цепочка, названная SSOnOf(a)biz, касается Apache OFBiz 24.09.05 - системы планирования ресурсов предприятия с функциями учёта, складского управления, производства, кадров и электронной коммерции. Здесь основная причина в том, что в открытом исходном коде оказался жёстко заданный ключ подписи токенов JWT (формат токенов для передачи данных между сторонами). Этот ключ одинаков на всех установках, где его не заменили. Злоумышленник, зная ключ, может создать поддельный токен с правами администратора и войти в систему без пароля.

Дальше исследователи обнаружили, что один из параметров токена попадает в шаблонизатор, который умеет выполнять скрипты на языке Groovy. Предусмотренный механизм защиты в виде списка запрещённых выражений оказался неэффективным: он проверяет только точное совпадение с учётом регистра и не учитывает особенности языка, например автоматический импорт классов. В результате атакующему достаточно отправить два запроса, чтобы получить полный контроль над сервером. Этой уязвимости присвоен идентификатор CVE-2026-31986, уровень опасности - критический.

Обе цепочки объединяет общая закономерность. Внутренние компоненты, которые разработчики считали недоступными снаружи, на самом деле достижимы через обход границ доверия. А дальше в дело вступают механизмы выполнения кода - десериализация, шаблонизаторы, скриптовые движки. Каждая отдельная ошибка может показаться незначительной: различие в разборе URL, отсутствие элемента в конфигурации, жёстко заданный ключ. Однако вместе они образуют путь для полного захвата системы. Сканеры уязвимостей не могут выявить такие комбинации, поскольку они возникают на стыке компонентов, а не внутри одного модуля.

Исследователи подчёркивают: нельзя полагаться на то, что внутренние интерфейсы защищены сами по себе. Необходимо воспринимать их как часть внешней поверхности атаки. Для защиты специалисты рекомендуют провести аудит конфигураций веб-приложений. В частности, проверить, распространяются ли ограничения безопасности на все типы внутренних перенаправлений запросов, а не только на прямые обращения. Стоит убедиться, что фильтры используют полное совпадение шаблонов, а не частичное. Также важно отказаться от жёстко заданных ключей подписи в исходном коде и использовать уникальные ключи для разных функций аутентификации. Механизмы десериализации и выполнения скриптов должны быть либо отключены, либо снабжены строгими ограничениями на типы данных.

Разработчики Bonita BPM и Apache OFBiz уже получили отчёты об уязвимостях в рамках скоординированного раскрытия. Пользователям рекомендуется обновить платформы до версий с исправлениями, если они выпущены. В противном случае временной мерой может стать отключение функций, которые задействованы в цепочках, например внутреннего API или SSO. Однако полное устранение проблемы требует изменения архитектуры безопасности, чтобы внутренние компоненты не считались доверенными.

Исследование показывает, что даже зрелые Java-платформы, развивающиеся два десятилетия, сохраняют критические ошибки в связующих звеньях. Уязвимости возникают не из-за отдельной библиотеки, а из-за неверных предположений о том, кто может получить доступ к тому или иному компоненту. Пока такие предположения существуют, цепочки уязвимостей будут находить новые пути от внешнего интерфейса к внутренним исполнительным механизмам.

Ссылки

Комментарии: 0