Docker Hub: двухлетняя уязвимость с токенами, что проверить

12 октября 2026 года Docker закрыл критическую уязвимость в Docker Hub, которая существовала около двух лет. При превращении личного аккаунта в организацию персональные токены доступа переходили к новому владельцу, и тот мог использовать их против реестра. Уязвимость назвали GhostPat, идентификатор — CVE-2026-105445. Признаков эксплуатации Docker не нашёл, но проверить свои токены стоит.
Что произошло
Docker Hub — крупнейший реестр образов контейнеров. Уязвимость в том, что при конвертации личного аккаунта в организацию персональные токены доступа передавались указанному владельцу, причём без его подтверждения и уведомления. Секреты токенов оставались прежними, поэтому новый владелец мог ими пользоваться.
| Параметр | Значение |
|---|---|
| Сервис | Docker Hub |
| Идентификатор | CVE-2026-105445, оценка 9,4 по CVSS 4.0 |
| Суть | токены доступа переходили к владельцу организации |
| Что давало | действия с реестром: загрузка, выгрузка, удаление образов |
| Чего не давало | смену пароля, почты, двухфакторной аутентификации, захват аккаунта |
| Период | с 26 августа 2024 по 30 сентября 2026 года |
Важно: доступ ограничивался реестром образов. Полного захвата аккаунта или смены учётных данных уязвимость не давала. Docker исправил проблему на своей стороне, устанавливать ничего не нужно.
Кого касается
Тех, кто пользуется Docker Hub и когда-либо превращал личный аккаунт в организацию или мог оказаться указанным владельцем такой организации. Docker уведомил затронутых пользователей по почте 2 октября и деактивировал выявленные токены 8 октября. Токены, которые просили сохранить, остались активными.
Docker подчёркивает, что доступ ограничивался реестром образов и признаков эксплуатации не найдено. Тем не менее два года — большой срок, и для команд, которые активно пользуются Docker Hub, это повод не просто проверить токены разово, а навести в них порядок на будущее. Подмена образа в реестре опаснее, чем кажется: заражённый образ потом скачивают и запускают на серверах, и вредоносный код оказывается в продакшене. Поэтому контроль над тем, кто может публиковать образы, — важная часть безопасности, а не формальность.
Поскольку уязвимость существовала два года, стоит проверить свои токены, даже если письма вы не получали.

Что делать
- Откройте настройки аккаунта Docker Hub, раздел персональных токенов доступа. Проверьте даты создания и последнего использования.
- Отзовите любой токен, который не узнаёте или больше не используете.
- Посмотрите в переключателе аккаунтов, нет ли организаций, в которые вы не помните как вступали.
- Для автоматизации организации используйте токены организации, а не личный токен сотрудника.
- Если вы владелец организации, просмотрите журнал действий на прошлые загрузки образов.
Наше мнение
GhostPat интересен не масштабом (признаков атак нет), а уроком про токены. Токен доступа — это тот же пароль, только для автоматизации, и живёт он часто годами, переживая смену сотрудников и проектов. Про него забывают, а он продолжает работать.
Мы советуем относиться к токенам как к паролям: вести их учёт, периодически пересматривать, отзывать неиспользуемые и предпочитать короткоживущие. Для командной автоматизации лучше использовать токены организации или сервисные учётные записи, а не личные токены людей: когда человек уходит, его личный токен может остаться рабочим и забытым. Это особенно важно для реестров образов и пакетов, откуда код попадает на боевые серверы. Регулярная ревизия токенов — скучная, но полезная привычка, которая закрывает целый класс проблем.
Почему важна гигиена токенов
История Docker Hub — частный случай общей проблемы: токены накапливаются и живут бесконтрольно. У активной команды со временем образуются десятки токенов: для сборки, для реестров, для внешних сервисов, для скриптов. Часть создавалась «на пробу», часть — уволившимися сотрудниками. Каждый такой токен — потенциальный ключ, и чем их больше и дольше они живут, тем выше риск. Регулярная инвентаризация — выписать все токены, понять, зачем каждый, отозвать лишние, сократить срок жизни остальных — приводит этот хаос в порядок. Делать это стоит не только после инцидента, а планово, хотя бы раз в полгода.
Токены против паролей: в чём разница и сходство
Токен доступа часто воспринимают как что-то техническое и безобидное, а зря. По сути это пароль для программ: он даёт доступ к сервису без ввода логина и пароля человеком. Отсюда и сходство — украденный токен работает так же, как украденный пароль. Но есть и отличие: пароль человек хотя бы иногда меняет, а токен живёт, пока его не отзовут, и часто это не делают никогда.
Поэтому к токенам нужно применять те же правила, что к паролям, и даже строже: не хранить в коде и репозиториях, не пересылать в переписке, ограничивать права и срок жизни. А главное — вести их учёт. Пароль привязан к человеку, который о нём помнит; токен легко забыть, потому что он работает сам по себе, молча, пока кто-то им не воспользуется — не обязательно вы.
Материалы для проверки
Если нужна реализация
Состав работ зависит от текущего проекта и подтверждённой причины. Можно обсудить диагностику или разработку подходящего решения.
Вопросы и ответы
Нужно ли мне что-то устанавливать?
Нет. Docker исправил уязвимость на своей стороне. Вам нужно только проверить токены и организации в своём аккаунте.
Как понять, затронут ли я?
Docker уведомил затронутых пользователей по почте и деактивировал выявленные токены. Если письма не было, по данным Docker вы не затронуты. Но проверить токены за два года всё равно полезно.
Что мог сделать тот, к кому ушли токены?
Действия с реестром образов: загрузку, выгрузку, удаление. Сменить пароль, почту или двухфакторную аутентификацию или захватить аккаунт уязвимость не позволяла.
Чем токен организации лучше личного для автоматизации?
Он не привязан к конкретному человеку. Когда сотрудник уходит, его личный токен может остаться рабочим и забытым, а токен организации управляется централизованно.
Как часто пересматривать токены?
Планово, хотя бы раз в полгода, а также после любого инцидента или ухода сотрудника с доступом. Выпишите все токены, отзовите лишние, сократите срок жизни остальных.
Токены ограничивались реестром. Значит, это не страшно?
Доступ был ограничен загрузкой, выгрузкой и удалением образов — захвата аккаунта не было. Но и этого достаточно, чтобы, например, подменить образ. Поэтому проверить токены и навести в них порядок всё равно стоит.