Red Hat Quay: подмена ключа реестра даёт доступ ко всем приватным образам
Две критические уязвимости в Quay: CVE-2026-123710 с оценкой 9,8 позволяет без аутентификации внедрить свой ключ подписи и читать или перезаписывать приватные образы, CVE-2026-110697 (9,9) — увести токены роботов чужих арендаторов. Исправления вышли для восьми веток Quay 3.
Что случилось
11 ноября Red Hat раскрыла две критические уязвимости в Quay — реестре контейнерных образов, который применяется в OpenShift и в отдельных установках. Первая, CVE-2026-123710 с оценкой 9,8 по CVSS, позволяет постороннему клиенту подменить ключ, которым реестр подписывает токены доступа, и после этого читать либо перезаписывать приватные образы во всех репозиториях инсталляции. Вторая, CVE-2026-110697 с оценкой 9,9, даёт пользователю с правом создать пространство имён доступ к токенам роботов-аккаунтов других арендаторов.
Детали
Обе проблемы нашёл сотрудник Red Hat Дэйв О'Коннор; по данным отчёта об ошибке, логика, лежащая в основе первой уязвимости, присутствовала в Quay с самого первого публичного коммита. Пострадали все версии Quay 3 и Quay 5, включая отдельные инсталляции, развёртывания через Quay Operator в OpenShift и mirror registry для OpenShift. Исправленные сборки вышли для восьми веток Quay 3 — от 3.9 до 3.18; облачный Quay.io уже обновлён, а Quay 5 в базе уязвимостей пока числится затронутым.
Механика первой атаки построена на доверии к подписи:
- Quay выдаёт анонимный токен через эндпоинт /v2/auth, причём аудиторию токена выбирает сам запрашивающий;
- сервер ключей проверяет, что запрос на замену ключа подписан доверенным ключом с ожидаемыми аудиторией и издателем, но не проверяет, что токен выпущен именно для ротации ключей;
- атакующий добавляет собственныйapproved ключ без срока действия и получает возможность подписывать токены, принимаемые для любого репозитория;
- внедрённый ключ переживает перезапуски, пока его не удалят вручную, и позволяет также удалить ключи, которыми пользуются работающие инстансы, — после чего штатные push и pull начинают падать с ошибками аутентификации.
Вторая уязвимость проще: функция вывода списка роботов-аккаунтов собирает шаблон для SQL LIKE из имени пространства имён, не экранируя подстановочные символы, а в LIKE знак подчёркивания совпадает с любым одиночным символом. Пространство имён с подчёркиванием в нужном месте «подхватывает» роботов чужого арендатора вместе с расшифрованными токенами. Удаление пространства имён атакующего при этом удаляет и соответствующие роботы, то есть может отрезать чужие системы, которые на них завязаны.
Что это значит
Реестр — точка, через которую образы попадают в продакшен, поэтому подмена тега бьёт по всей цепочке поставки: изменённый образ разъедется по всем системам, которые его потом скачают, а в связке с OpenShift украденные учётные данные роботов позволяют вбрасывать образы в конвейеры CI/CD. Red Hat прямо предупреждает, что уязвима любая инсталляция Quay, доступная недоверенным клиентам, включая внутренние реестры.
Порядок действий до обновления:
- закрыть эндпоинт /keys на прокси или балансировщике для всех, кроме доверенных внутренних компонентов;
- поискать в журналах аудита события service_key_rotate и service_key_delete с пустым expiration_date;
- удалить незнакомые одобренные сервисные ключи;
- установить исправленный выпуск — без него удаление ключа бесполезно, атакующий добавит новый тем же способом.
Отключение анонимного доступа не защищает: при выключенной анонимности эксплуатировать дыру может любой пользователь с действующей учётной записью, а внедрённый ключ продолжает работать после смены паролей и перевыпуска токенов роботов. Для второй уязвимости до обновления рекомендуют ограничить создание организаций и пространств имён с подчёркиванием, перевыпустить токены роботов в совпадающих пространствах и следить за нехарактерными операциями push и pull.
Комментарии 0
Комментариев пока нет — будьте первым.
Оставить комментарий
Имя и текст — этого достаточно. Комментарий появится сразу; подозрительные сообщения уходят на проверку.