Rancher закрыл две уязвимости: SAML-реплей с рейтингом 9.5 и ошибку разрешений PSA

Rancher

Rancher Labs выпустила обновления для платформы управления Kubernetes Rancher, устраняющие две уязвимости, одна из которых получила критический уровень опасности. Патчи затронули версии 2.11, 2.12, 2.13 и 2.14. Пользователям настоятельно рекомендуется установить свежие сборки - 2.14.3, 2.13.7, 2.12.11 и 2.11.15.

Детали уязвимостей

Первая и наиболее серьёзная проблема описана под идентификатором CVE-2026-44946. Она связана с механизмом аутентификации через SAML. Уязвимость затрагивает обработчик Assertion Consumer Service (ACS) - компонент, отвечающий за приём и проверку SAML-утверждений, поступающих от внешних провайдеров. Выяснилось, что Rancher не контролирует одноразовость использования таких утверждений. Иными словами, один и тот же подписанный SAML-ответ от поставщика удостоверений (IdP) можно отправить несколько раз, и каждый раз система создаст новую аутентифицированную сессию.

Для успешной эксплуатации злоумышленнику необходимо перехватить валидный SAML-ответ во время легитимного входа пользователя. Это может произойти, например, при атаке "человек посередине" (man-in-the-middle), через доступ к логам, содержащим артефакты аутентификации, или при использовании другой уязвимости, такой как межсайтовый скриптинг. Кроме того, атакующему требуется заполучить соответствующий предварительный SAML-куки (state cookie). Если все условия соблюдены, отправка захваченного SAML-ответа вместе с куки создаёт новую сессию, полностью идентичную сессии жертвы. Таким образом, злоумышленник получает все права, назначенные учётной записи, включая административные, и может действовать от её имени - управлять кластерами, изменять конфигурации, получать доступ к данным.

Уязвимость затрагивает все SAML-провайдеры, поддерживаемые Rancher: Okta, Ping, ADFS, Keycloak и Shibboleth, поскольку все они используют один и тот же код ACS-обработчика. Разработчики оценили CVE-2026-44946 по шкале CVSS v4 в 9,5 балла - это критический уровень. Атака возможна удалённо, не требует прав и взаимодействия пользователя, хотя сложность атаки (Attack Complexity) оценена как высокая из-за необходимости перехвата трафика.

В патче добавлена серверная проверка идентификаторов SAML-утверждений: каждый обработанный ID сохраняется во внутреннем кэше на время действия утверждения (или на один час, если срок не указан). Повторная отправка того же ID отклоняется. Кроме того, теперь строго контролируются временные метки NotBefore и NotOnOrAfter - утверждения за пределами своего окна валидности отвергаются. Эти изменения сразу защищают все SAML-провайдеры.

Вторая уязвимость, CVE-2026-44947, получила более низкий рейтинг - 6,9 балла (умеренный уровень). Она связана с некорректной очисткой разрешений при изменении ролей. Проблема проявляется в устаревшем механизме Project Role Template Binding (PRTB), который используется по умолчанию, если не включена функция aggregated-roletemplates. Когда администратор создаёт RoleTemplate, предоставляющую право updatepsa (изменение политик безопасности подов в рамках проекта), а затем удаляет это право из шаблона, Rancher не удаляет соответствующие ClusterRole и ClusterRoleBinding. В результате пользователь, которому ранее была назначена такая роль, продолжает обладать возможностью менять настройки Pod Security Admission (PSA) в пространствах имён проекта - даже после явного отзыва привилегии. Связки остаются активными бессрочно, сохраняясь как при понижении версии RoleTemplate, так и после удаления самого связывания.

Эксплуатация требует, чтобы Rancher работал в режиме legacy-реконсилера (настройка по умолчанию), администратор ранее создал RoleTemplate с разрешением updatepsa, а затем удалил это разрешение, не удалив при этом ClusterRoleBinding вручную. Атака возможна из сети, требует прав администратора (для изменения RoleTemplate), но не требует взаимодействия с пользователем. Последствия - сохранение несанкционированного доступа к изменению политик безопасности, что может позволить ослабить контроль над подами в проектах, затронув инфраструктуру других команд или клиентов в мультитенантной среде.

Разработчики обновили функцию ensurePSAPermissions() в реконсилере, добавив очистку устаревших связок при обнаружении отсутствия права updatepsa в RoleTemplate. Вручную администраторы могут смягчить проблему, удалив ClusterRoleBinding вида <projectID>-namespaces-psa и соответствующие ClusterRole для ролей, которые больше не должны давать такое разрешение.

Обе уязвимости были обнаружены и сообщены независимыми исследователями. CVE-2026-44946 зафиксирована командой из Калифорнийского университета в Беркли (Austin Chu, Sohee Kim, Corban Villa). CVE-2026-44947 выявлена исследователями bugbunny.ai. Полные технические детали и бюллетени доступны в репозитории Rancher на GitHub (GHSA-c5jm-xcmq-9j95 и GHSA-c4rp-wgqc-mfhc).

Для пользователей, которые не могут немедленно обновиться, частичной мерой защиты от SAML-реплей служит сокращение времени жизни SAML-утверждений на стороне Identity Provider, а также ограничение доступа к ACS-эндпоинту и принудительное использование TLS-инспекции между клиентами и Rancher. Однако полного обходного пути не существует.

Выход патчей подчёркивает важность двух аспектов в разработке платформ управления контейнерами: корректной реализации криптографических протоколов аутентификации с обязательным контролем одноразовости токенов и своевременной очистки разрешений при изменении ролевых моделей. Rancher продолжает оставаться одной из самых популярных систем для работы с Kubernetes, и подобные обновления безопасности обязательны для всех, кто использует решение в корпоративной среде.

Ссылки

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