Обход аутентификации, удаленное выполнение кода и чтение базы данных в Eptura Archibus (ИСПРАВЛЕНО)

Источник: Rapid7•

Обход аутентификации, удаленное выполнение кода и чтение базы данных в Eptura Archibus (ИСПРАВЛЕНО)

Обзор В ходе проведения непрерывных тестов на проникновение с помощью сервиса Vector Command от компании Rapid7 были обнаружены три новые уязвимости в Eptura Archibus . Устаревшая конечная точка API могла быть использована для обхода аутентификации и запуска различных функций без нее (CVSS: 8.6,…

Обзор

В ходе проведения непрерывных тестов на проникновение с помощью сервиса Vector Command от компании Rapid7, специалисты Rapid7 обнаружили три новые уязвимости в Eptura Archibus. Устаревшая конечная точка API могла быть использована для обхода аутентификации и запуска различных функций без прохождения аутентификации (CVSS: 8.6 High). Наиболее опасные функции позволяют производить полное чтение базы данных (CVSS: 8.5, высокая) и небезопасную загрузку файлов (CVSS: 9.6, критическая). Небезопасная загрузка файлов приводит к удаленному выполнению кода.

Описание продукта

Archibus помогает организациям администрировать физические здания, оборудование и недвижимость из единого центрального центра управления. Пользователи могут отслеживать активы, заказы на техобслуживание, информацию об аренде недвижимости, а также бронировать рабочие места и переговорные комнаты. По данным Eptura, в 2023 году более 16 000 компаний и 40% участников списка Fortune 500 использовали Archibus.

Влияние

Злоумышленник, имеющий сетевой доступ к серверу по протоколу HTTP, может прочитать конфиденциальные данные и пароли из базы данных. Он также может запустить код для выполнения системных команд от имени «NT AUTHORITY/Local Service» и получить контроль над сервером.

Авторство

Эту уязвимость обнаружил Маркус Чанг (Marcus Chang), консультант по безопасности в Rapid7. Информация публикуется в соответствии с политикой Rapid7 в отношении раскрытия уязвимостей.

CVE-2026-107186 — Обход аутентификации в Archibus

Веб-приложение Archibus Web Central использует технологию Java Direct Web Remoting (DWR) для реализации различных функций API, которая позволяет отправлять запросы с несколькими вызовами методов. Метод isPasswordUppercase устанавливает системную сессию в потоке, а метод runWorkflowRule получает установленную сессию для аутентификации. Это позволяет злоумышленникам запускать практически любые правила рабочего процесса (workflow) без предоставления учетных данных. Специалисты Rapid7 протестировали правила рабочего процесса AbCommonResources-writeHTMLtoFile и AbCommonResources-getDataRecords.

Технический анализ

Большинство методов DWR требуют аутентификации, при этом DWR позволяет выполнять несколько вызовов в рамках одного запроса путем изменения параметра callCount и добавления других параметров методов в запрос.

DWR обрабатывает несколько вызовов в одном пакете последовательно в рамках одного и того же потока. Метод SecurityServiceImpl.isPasswordUppercase() добавлен в белый список для предварительной аутентификации и внутренне вызывает метод loadTableDef(), который устанавливает сессию пользователя основной системы в потоко-локальном хранилище ContextStore:

Метод DWRWorkflowService.runWorkflowRule() использует привилегированный контекст, установленный методом isPasswordUppercase. Если метод getUserSession() возвращает недействительное значение, выдается ошибка истечения времени сессии, в противном случае выполнение продолжается. Конечным результатом является выполнение выбранного пользователем рабочего процесса без предоставления каких-либо данных аутентификации:

Эксплуатация

Для эксплуатации требуются параметры scriptSessionId и PROJECT_ID. Запросы к API DWR имеют следующий формат:

Параметр scriptSessionId можно получить с помощью данного запроса DWR. Идентификатор JSESSIONID можно получить, перейдя по адресу /archibus/login.axvw:

Параметр Project_ID можно получить с помощью этого запроса:

Пример доказательства концепции (PoC)

Запрос на запуск правила рабочего процесса без аутентификации

Получите scriptSessionId и Project_ID. Их можно легко получить, отправив запрос на вход из браузера и просмотрев его. Данный запрос к конечной точке DWR определяет два вызова методов DWR, задавая параметр callCount равным 2. Первым вызывается метод isPasswordUppercase. Его параметры в теле POST-запроса начинаются с c0. Он устанавливает сеанс пользователя в хранилище контекста с помощью вызова context.setUserSession(coreUserSession) посредством метода isPasswordUppercase. Вторым вызывается метод runWorkflowRule, который использует контекст сеанса основного пользователя, установленный методом isPasswordUppercase. Его параметры начинаются с c1. В результате любой рабочий процесс может быть запущен в контексте основного сеанса пользователя без предоставления каких-либо учетных данных.

Пример ответа

CVE-2026-107187 — Чтение базы данных в Archibus

Рабочий процесс AbCommonResources-getDataRecords позволяет пользователям читать любые таблицы базы данных, включая имена пользователей и пароли. Эту уязвимость можно объединить с уязвимостью обхода аутентификации для чтения конфиденциальных данных из базы данных без аутентификации.

Технический анализ

Используя ранее описанную уязвимость обхода аутентификации, можно вызывать рабочий процесс AbCommonResources-getDataRecords без аутентификации. Он связан с методом ViewHandlers, который работает с любой таблицей, управляемой Archibus:

Аутентифицированные пользователи также могут отправлять запрос без выполнения обхода аутентификации. Код проверяет, состоит ли пользователь в группе безопасности правил рабочего процесса. Если нет, генерируется исключение. Специалисты Rapid7 не проверяли, можно ли отправить запрос рабочего процесса от имени стандартного пользователя.

Пример доказательства концепции (PoC)

Получив scriptSessionId и Project_ID (что легко сделать, отправив запрос на вход из браузера и просмотрев запрос), злоумышленник может использовать уязвимость обхода аутентификации. Он может настроить второй вызов в запросе DWR для рабочего процесса AbCommonResources-getDataRecords. Можно отправить запрос к таблице afm_users для просмотра имен пользователей и паролей.

Запрос

Ответ

Ниже представлен фрагмент того, как выглядят запрос и ответ в реальной системе. Столбцы user_name, user_pwd, email и role_name извлекаются из таблицы afm_users, где для role_name задано значение «SYSTEM ADMINISTRATOR (ACP)».

Рисунок 1: Чтение паролей и адресов электронной почты в таблице пользователей

CVE-2026-107188 — Неограниченная загрузка файлов в Archibus

Рабочий процесс AbCommonResources-writeHTMLtoFile записывает контролируемый пользователем контент на диск с задаваемым пользователем расширением файла и без какой-либо валидации. Это позволяет пользователям записывать код JSPX в доступные для просмотра через браузер папки, и он будет выполнен при переходе по соответствующей ссылке. Эту уязвимость можно сchained (объединить) с уязвимостью обхода аутентификации для загрузки исполняемого кода без аутентификации.

Технический анализ

Рабочий процесс AbCommonResources-writeHTMLtoFile записывает контролируемый пользователем контент на диск с задаваемым пользователем расширением файла и без какой-либо проверки:

Пример доказательства концепции (PoC)

Шаг 1

Получите scriptSessionId и Project_ID. Их можно легко получить, отправив запрос на вход в браузере и просмотрев его. Эту уязвимую цепочку рабочих процессов можно объединить с уязвимостью обхода аутентификации для загрузки файлов JSPX без аутентификации. Сервер возвращает сгенерированное имя файла вместе с путем к файлу, доступным для просмотра. Переход по ссылкам на файлы, загруженные с расширением JSP, приводил к перенаправлению на страницу аутентификации. Переход по файлам, загруженным с расширением JSPX, не приводил к принудительному перенаправлению, поэтому код злоумышленника в формате JSPX мог быть выполнен без аутентификации при переходе к этому файлу.

Запрос

Ответ включает путь к сгенерированному файлу, доступному для просмотра.

Ответ

Шаг 2

Перейдите по пути к файлу.

Специалисты Rapid7 проэксплуатировали уязвимость на сервере клиента сервиса Vector Command. В качестве первого доказательства концепции был загружен файл JSPX для вывода времени сервера.

Рисунок 2: Внедренный код на Java для вывода времени сервера

Пользователям рекомендуется обновить Archibus до версии 2025.02 или выше. Уязвимый метод DWR, использовавшийся для обхода аутентификации, — moved to a REST API in version 2025.02. Пользователям следует войти в свою учетную запись Eptura для загрузки установщика Archibus.

Клиенты Rapid7

Exposure Management, Vulnerability Management, Nexpose

Клиенты Exposure Management, Vulnerability Management и Nexpose могут оценить уровень подверженности уязвимостям CVE-2026-107186, CVE-2026-107187, CVE-2026-107188 с помощью проверок уязвимостей, которые планируется включить в выпуск контента 21 октября.

Хронология раскрытия информации

  • 25 мая 2026 г.: Проблемы обнаружены Маркусом Чангом (Marcus Chang) и проэксплуатированы на сервере Archibus клиента Vector Command.

25 мая 2026 г.: Проблемы обнаружены Маркусом Чангом (Marcus Chang) и проэксплуатированы на сервере Archibus клиента Vector Command.

  • 2 июля 2026 г.: Первичное обращение к Eptura. Eptura подтверждает получение автоматическим ответом.

2 июля 2026 г.: Первичное обращение к Eptura. Eptura подтверждает получение автоматическим ответом.

  • 14 и 28 июля 2026 г.: Повторные обращения в Eptura с запросом ответа на первичное обращение.

14 и 28 июля 2026 г.: Повторные обращения в Eptura с запросом ответа на первичное обращение.

  • 30 июля 2026 г.: Eptura отвечает, подтверждая готовность принять отчет об уязвимости, и упоминает, что версия, указанная Rapid7 в первичном обращении, больше не поддерживается, а также приводит ссылку на свою политику поддержки.

30 июля 2026 г.: Eptura отвечает, подтверждая готовность принять отчет об уязвимости, и упоминает, что версия, указанная Rapid7 в первичном обращении, больше не поддерживается, а также приводит ссылку на свою политику поддержки.

  • 11 августа 2026 г.: Компания Eptura предоставила документ с описанием уязвимости, а также вопросы относительно планов Eptura по устранению уязвимости. Rapid7 также упоминает, что скоординированное раскрытие информации об уязвимости было бы предпочтительным подходом.

11 августа 2026 г.: Компания Eptura предоставила документ с описанием уязвимости, а также вопросы относительно планов Eptura по устранению уязвимости. Rapid7 также упоминает, что скоординированное раскрытие информации об уязвимости было бы предпочтительным подходом.

  • 18 августа и 1 сентября 2026 г.: Повторное обращение в Eptura с запросом на верификацию отчета с деталями уязвимости и подтверждением предпочтительности скоординированного раскрытия.

18 августа и 1 сентября 2026 г.: Повторное обращение в Eptura с запросом на верификацию отчета с деталями уязвимости и подтверждением предпочтительности скоординированного раскрытия.

  • 8 сентября, 15 сентября и 29 сентября 2026 г.: Повторные обращения в Eptura. Кроме того, Rapid7 отмечает, что 11 октября исполняется 0 дней с момента первичного раскрытия информации, а датой публичного раскрытия станет 12 октября 2026 г.

8 сентября, 15 сентября и 29 сентября 2026 г.: Повторные обращения в Eptura. Кроме того, Rapid7 отмечает, что 11 октября исполняется 60 дней с момента первичного раскрытия информации, а датой публичного раскрытия станет 12 октября 2026 г.

  • 7 октября 2026 г.: Повторное обращение в Eptura с запросом на верификацию отчета с деталями уязвимости и подтверждением предпочтительности скоординированного раскрытия. Кроме того, Rapid7 запрашивает заявление вендора для включения в блог и подтверждает, что идентификаторы CVE были зарезервированы для проблем, раскрытых команде Eptura.

7 октября 2026 г.: Повторное обращение в Eptura с запросом на верификацию отчета с деталями уязвимости и подтверждением предпочтительности скоординированного раскрытия. Кроме того, Rapid7 запрашивает заявление вендора для включения в блог и подтверждает, что идентификаторы CVE были зарезервированы для проблем, раскрытых команде Eptura.

  • 9 октября 2026 г.: Eptura отвечает, уточняя подверженные версии и заявляя, что исправление разрабатывается для версии 2025.01. Eptura запрашивает продление на одну неделю для переноса раскрытия информации на 19 октября.

9 октября 2026 г.: Eptura отвечает, уточняя подверженные версии и заявляя, что исправление разрабатывается для версии 2025.01. Eptura запрашивает продление на одну неделю для переноса раскрытия информации на 19 октября.

  • 12 октября 2026 г.: Rapid7 соглашается на продление на одну неделю и предоставляет зарезервированные идентификаторы CVE компании Eptura.

12 октября 2026 г.: Rapid7 соглашается на продление на одну неделю и предоставляет зарезервированные идентификаторы CVE компании Eptura.

  • 19 октября 2026 г.: Публичное раскрытие информации посредством публикации этой записи в блоге.

19 октября 2026 г.: Публичное раскрытие информации посредством публикации этой записи в блоге.

О чём эта статья

Ещё в разделе «Кибербезопасность»

Все →

Ещё от Rapid7