HashiCorp раскрыла сведения о трёх уязвимостях в своих продуктах для управления инфраструктурой. Речь идёт о Consul, Consul Enterprise и consul-template. Две проблемы позволяют обойти проверку прав доступа, третья ведёт к раскрытию секретов. Исправления вошли в Consul 2.0.4, Consul Enterprise 1.21.18, 1.22.12 и 2.0.4, а также в consul-template 0.43.0. Продукты этой линейки применяют для управления сервисами и секретами в крупных распределённых системах. Затронуты прежде всего организации, которые полагаются на списки контроля доступа (ACL) и сервисную сетку Connect внутри Consul.
Детали уязвимостей
Consul представляет собой систему для обнаружения служб и управления ими. Она хранит каталог узлов, их служб и проверок работоспособности. Агенты и операторы добавляют записи в этот каталог через отдельный программный интерфейс. Доступ к операции регулируют политики ACL. Такая политика выдаёт право записи на конкретные имена узлов. Права при этом выдаются токенами, а сами политики привязывают к именам объектов. Помимо этого, Consul отслеживает каждый узел по постоянному идентификатору. Этот идентификатор сохраняется даже после переименования узла и служит его основным признаком в операциях каталога. Именно на нём строится проверка прав при записи.
Первая уязвимость получила идентификатор CVE-2026-87090. Обработчик регистрации узлов проверял права токена не полностью. Он не убеждался, что запрос затрагивает только те узлы, на которые у токена есть разрешение. Поэтому владелец ограниченного права записи мог составить специальный запрос. При применении такой запрос затрагивал узел за пределами разрешённой зоны. В результате узел терял регистрацию в каталоге вместе со связанными службами и проверками работоспособности. Затем злоумышленник мог зарегистрировать себя под идентификатором этого узла и выдать себя за него. Для эксплуатации нужен действующий токен ACL с правом записи хотя бы на один узел. Кроме того, требуется знать идентификатор узла, которым злоумышленник не управляет. Развёртывания без ACL под угрозу не попадают. Не попадают под неё и среды, где все операторы обладают неограниченным правом записи на узлы.
Вторая уязвимость, CVE-2026-88021, затрагивает сервисную сетку Connect. Она определяет, какие службы вправе обращаться друг к другу. Эти правила описывают в виде намерений (intentions). Намерения задают операторы вручную, и они служат основой доверия внутри сетки. При настройке прокси Consul формирует правила управления доступом на основе ролей (RBAC) для Envoy. Такие правила сверяют идентификатор вызывающей стороны с разрешёнными идентификаторами службы назначения. Шаблоны для сверки строятся из имён служб, пространств имён и разделов, зарегистрированных в каталоге. Consul не экранировал должным образом отдельные символы, которые могут встречаться в этих именах. Из-за этого сгенерированные правила совпадали с более широким набором идентификаторов, чем предполагал оператор. Следовательно, вызывающая сторона могла достичь службы назначения по существующему намерению, созданному не для неё. Проблема проявляется только там, где Connect включён и намерения активны. Если имена в каталоге не содержат таких символов, последствий на практике не возникает.
Третья уязвимость связана с библиотекой consul-template. Она подставляет секреты Vault в файлы конфигурации с помощью шаблонов. Когда выражение в шаблоне даёт ошибку, библиотека пытается удалить известные значения секретов из текста сообщения. Затем это сообщение попадает в журналы или возвращается вызывающей стороне. Механизм удаления неверно обрабатывал часть форм ответа Vault. Поэтому отдельные значения полей секретов не вычищались и попадали в сообщения об ошибках дословно. Такие сообщения могут записываться в журналы. При совместном использовании с Nomad они могут попадать в события задач, доступные обладателям права чтения заданий. Развёртывания, которые работают только с секретами Vault KV v1, под угрозу не попадают.
В бюллетенях нет сведений об эксплуатации этих уязвимостей в реальных атаках. Однако все три требуют определённых условий. Для первой нужен действующий токен и знание идентификатора чужого узла. Вторая срабатывает при включённом Connect и специфических именах в каталоге. Третья зависит от формы секретов Vault. Поэтому приоритет мер зависит от конфигурации конкретной среды. Среди пользователей Consul преобладают компании с микросервисной архитектурой, операторы облачных платформ и государственные организации. Наиболее чувствительны первые две проблемы. Обе связаны с обходом авторизации, а значит, злоумышленник с минимальными правами получает доступ за пределами своих полномочий. Для инфраструктур, где Consul управляет связями между службами, последствия включают лишние сетевые соединения и подмену узла. Утечка секретов Vault добавляет риск компрометации учётных данных и ключей. Такие данные нередко открывают доступ к базам, внешним сервисам и системам хранения.
Администраторам стоит оценить риск для своих сред и обновить компоненты. Consul и Consul Enterprise закрывают проблему в версии 2.0.4, а ветки Enterprise также в 1.21.18 и 1.22.12. Библиотека consul-template обновлена до 0.43.0. Если немедленное обновление невозможно, разумно ограничить выдачу права записи на узлы. Помогает и отказ от избыточных разрешений. Проверить стоит и ранее выданные токены. Отдельного внимания требуют имена служб, пространств имён и разделов на предмет символов, которые расширяют правила Connect. Для третьей уязвимости полезно ограничить доступ к журналам и событиям задач Nomad.
Обход авторизации остаётся распространённым классом уязвимостей в системах управления инфраструктурой. Ошибка в одной проверке прав способна открыть доступ к объектам за пределами выданных полномочий. Чем больше служб и секретов связывает такая система, тем шире последствия. Регулярное обновление и продуманная модель прав снижают этот риск.
Ссылки
- https://discuss.hashicorp.com/t/hcsec-2026-37-consul-vulnerable-to-an-authorization-bypass-in-the-connect-service-mesh/77739
- https://discuss.hashicorp.com/t/hcsec-2026-38-consul-template-vulnerable-to-an-information-disclosure-issue-in-error-handling/77740
- https://discuss.hashicorp.com/t/hcsec-2026-34-consul-vulnerable-to-an-authorization-bypass-in-the-catalog-node-write-path/77736