Уязвимость в Docker Hub, реестре, где публикуются и загружаются образы контейнеров, позволяла одному пользователю отправлять, извлекать или удалять образы от имени другого пользователя. Docker устранил уязвимость 30 сентября и утверждает, что не обнаружил доказательств ее эксплуатации.
Уязвимость заключалась в функции, которая преобразует личный аккаунт в организацию, говорится в рекомендациях по безопасности Docker от 12 октября. При преобразовании персональные токены доступа (PAT) аккаунта передавались пользователю, назначенному владельцем организации. PAT используется вместо пароля в реестре, и человек, создавший каждый токен, по-прежнему мог им пользоваться.
Доступ был ограничен реестром. Он не распространялся на веб-интерфейс Docker Hub и не мог быть использован для смены пароля, адреса электронной почты или настроек двухфакторной аутентификации, а также для захвата аккаунта.
Docker отслеживает уязвимость под кодом CVE-2026-105445 и оценил ее как критическую. В записи CVE, опубликованной 13 октября, уязвимости присвоен балл CVSS 4.0 — 9,4.
Уязвимость существовала с 26 августа 2024 года до момента исправления, чуть более двух лет. Docker устранил уязвимость непосредственно в Docker Hub, поэтому обновление устанавливать не требуется.
Docker Hub не может перемещать репозиторий из одного аккаунта в другой. Вместо этого пользователь преобразует личный аккаунт в организацию, которая сохраняет то же имя, и должен назначить существующий аккаунт своим владельцем.
Каждый персональный токен доступа действует как аккаунт, которому он принадлежит, с уровнем разрешений, выбранным при создании токена. Пока уязвимость была активна, преобразование изменяло владельца, зарегистрированного для каждого токена, оставляя его секретный ключ неизменным.
Злоумышленник мог злоупотребить этим, создав токен в аккаунте, который он контролировал, преобразовав этот аккаунт в организацию и назначив другого пользователя ее владельцем. Затем токен работал бы в реестре как этот пользователь.
Назначенному владельцу не требовалось подтверждать изменение, и он не получал уведомлений, согласно Docker и исследователям, сообщившим об уязвимости. Страница преобразования Docker включала предложение «Новый владелец получает уведомление по электронной почте» как минимум с августа 2024 года.
В пределах уровня разрешений токена переданный токен мог извлекать, отправлять или удалять образы в репозиториях назначенного владельца и в организациях, к которым владелец имел доступ.
Docker оценил уязвимость как критическую, поскольку этот доступ «включает публикацию образов под законным именем», говорится в сообщении.
В марте и апреле злоумышленники использовали украденные учетные данные издателей для отправки вредоносных образов Trivy и вредоносных образов KICS в собственные репозитории издателей на Docker Hub, согласно Docker.
Петер Молнар и Кристиан Хозак с mptrdev.com обнаружили уязвимость и сообщили о ней Docker, который утверждает, что устранил ее менее чем за четыре часа после получения их отчета. Они назвали уязвимость GhostPat.
В своем техническом описании они заявляют, что дважды воспроизвели уязвимость на аккаунтах, предоставленных для тестирования. Они вошли в реестр под видом целевого аккаунта, создали и отправили данные в репозиторий в его пространстве имен, отправили данные в организацию, к которой он принадлежал, и извлекли его частные репозитории.
Docker проверил все преобразования аккаунтов, выполненные во время действия уязвимости, и сравнил их с журналами реестра и записями токенов. Компания искала любые токены, использованные под более чем одной учетной записью, и изучила все отправленные данные с использованием переданных токенов — всего около 304 000.
«Мы не обнаружили никаких доказательств того, что уязвимость была использована», — заявила компания.
Все эти отправленные данные были направлены в репозиторий, принадлежащий преобразованной организации или ее назначенному владельцу, согласно Docker. В подавляющем большинстве случаев оба аккаунта принадлежали одному и тому же лицу или команде.
Там, где не удалось подтвердить, что один человек контролировал оба аккаунта, Docker проанализировал общедоступные образы с наивысшим риском, не запуская их, и не обнаружил вредоносного ПО или подмены.
Журналы реестра Docker показывают, когда токен используется, но не его существование, поэтому переданный токен, который никогда не использовался, не оставлял следов в журналах. По этой причине Docker рассматривал каждый токен, переданный в результате преобразования во время действия уязвимости, как потенциально затронутый, независимо от того, использовался он или нет.
В рекомендациях приводятся результаты для отправленных данных. В них не указано, что Docker обнаружил при извлечении или удалении данных с использованием переданных токенов, включая извлечение из частных репозиториев.
2 октября Docker отправил электронные письма пользователям, чьи аккаунты получили переданные токены, и отдельно владельцам задействованных организаций. Каждое письмо содержало список токенов с их описанием и датой создания.
В рекомендациях не указано, сколько пользователей или токенов это затронуло, называя группу лишь «ограниченным числом» пользователей.
Любой, кто не получил письмо, не был затронут и не должен ничего делать, согласно Docker.
8 октября Docker деактивировал выявленные переданные токены. Токены, которые их владельцы попросили сохранить, не были деактивированы.
Тодд Матенс, который публикует линтер Docker Compose под названием compose-lint, написал в своем блоге, что получил два письма 2 октября. Одно было отправлено ему как владельцу организации, а другое — на его пользовательский аккаунт. Он сменил два своих CI-токена и проверил подписи на своих 42 опубликованных образах, отследив каждый до CI-запуска, который его создал.
Docker рекомендует пользователям проверять свои токены, отзывать любые, которые они не узнают или больше не используют, и использовать токены доступа организации, а не PAT одного человека, для автоматизации, принадлежащей организации.
Эти детали помогут при проверке:
Собственная документация Docker описывала передачу токенов примерно в течение 17 из примерно 25 месяцев, когда действовала уязвимость. Изменение в документации от 22 апреля 2025 года добавило примечание на страницу преобразования Docker. В нем говорилось, что назначение пользователя владельцем организации «обеспечит передачу всех PAT, связанных с аккаунтом пользователя, владельцу организации».
Docker удалил примечание 30 сентября, через несколько минут после указанного времени исправления. Даты взяты из общедоступной истории документации Docker, которую изучила The Hacker News.
Docker заявляет, что теперь требует согласия перед назначением пользователя владельцем организации и уведомляет этого пользователя, когда это происходит. Он также регистрирует каждое изменение владения токеном и проверяет другие функции, которые изменяют владельца учетных данных.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Swati Khandelwal




