Уязвимости в Nomad и Boundary дают доступ к файлам хоста и внутренней сети

HashiCorp

Nomad и Nomad Enterprise позволяют вредоносной задаче записывать файлы за пределами своего рабочего каталога, а Boundary и Boundary Enterprise - направлять запросы контроллера на произвольные внутренние адреса. В Nomad это даёт выполнение кода с правами root, когда агент клиента запущен от этого пользователя. В Boundary уязвимость раскрывает сетевые узлы, доступные только с хоста контроллера. Затронуты обе редакции каждого продукта, исправления уже вышли.

Символьные ссылки в Nomad и подделка серверных запросов в Boundary

Nomad - планировщик задач, который распределяет нагрузку по клиентским хостам. Для каждой задачи он создаёт отдельный рабочий каталог, где лежат её файлы и журналы. Этот каталог и должен оставаться границей записи, но уязвимость её нарушает. Оценка по CVSS - 8.4 из 10, уровень High по классификации вендора.

Символическая ссылка (symlink) - это файл, который указывает на другой файл в системе. При записи полезной нагрузки диспетчеризации и журналов исполнителя Nomad не всегда проверяла, куда такая ссылка ведёт. Поэтому автор нагрузки мог поставить ссылку в каталоге задачи и перенаправить запись за его пределы. В результате файл хоста получалось создать, перезаписать или дополнить с правами агента клиента.

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

Boundary - продукт для организации доступа к инфраструктуре; учётные данные он выдаёт через интеграцию с HashiCorp Vault. Хранилище учётных данных настраивается адресом и токеном Vault, а библиотеки ссылаются на пути, которые контроллер запрашивает сам. Уязвимость в том, что контроллер не ограничивал адресатов таких исходящих запросов.

Пользователь с правами на хранилища и библиотеки учётных данных в проекте мог указать внутренний адрес и получить ответ от контроллера. Так открываются узлы, видимые только с хоста контроллера, включая службу метаданных облачного экземпляра. Оценка - 8.7 из 10, уровень High. Анонимный пользователь такую атаку провести не может: нужен аутентифицированный субъект с правами в проекте.

Исправление вышло в Nomad 2.1.1 и в Nomad Enterprise 2.1.0, 1.11.12 и 1.10.18. Для Boundary вендор называет исправленными Boundary Enterprise 1.0.2 и 0.21.6. Сводный перечень затронутых версий включает Boundary до 1.0.2, то есть открытая редакция продукта тоже подразумевается, но отдельный номер для неё в разделе с исправлениями прямо не назван - его стоит уточнить в самом уведомлении.

Списки версий расходятся на одну ступень. Сводный перечень указывает Nomad до 2.1.0, тогда как в разделе с исправлениями названа версия 2.1.1; в записи CVE затронутыми считаются версии ниже 2.1.1. До следующего обновления уведомления надёжнее ориентироваться на 2.1.1.

Обходных мер вендор не приводит. Остаются установка исправленных версий и отслеживание обновлений бюллетеней HCSEC-2026-52 и HCSEC-2026-54. Записи CVE исправленную версию не содержат, номера взяты из уведомлений HashiCorp.

Сведений об эксплуатации в реальных атаках ни одно из уведомлений не приводит. Проблему в Nomad сообщили Yonghwa Lee (Theori) и Habib (Syndicat3 Security Research Team), проблему в Boundary - Owais Lone.

Обе уязвимости требуют прав внутри продукта, поэтому внешний анонимный доступ к ним не ведёт. Значимость Nomad определяется привилегиями агента: под root последствия выходят далеко за границы кластера.

Ссылки

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