Главное
- Для атаки не требовались пароль, согласие или подтверждение выбранного пользователя.
- Уязвимость позволяла загружать, публиковать и удалять образы от имени жертвы.
- Docker изучила около 304 тыс. операций загрузки и не нашла признаков использования ошибки.
Как работала уязвимость
Ошибка возникала при переводе личного аккаунта Docker Hub в учетную запись организации. Владелец такого аккаунта мог назначить руководителем организации любого существующего пользователя.
Вместе с аккаунтом сервис переносил персональный токен доступа новому владельцу. Это секретный ключ с заданным набором прав. При этом Docker Hub не менял секрет и не отключал его прежнее значение.
Злоумышленник мог создать аккаунт и выпустить для него такой токен. Затем он переводил аккаунт в организацию и назначал владельцем выбранную жертву.
После переноса сервис считал токен принадлежащим жертве. Однако исходный секрет оставался у создавшего его человека. Перенос происходил без согласия нового владельца и без отправки ему уведомления.
Токен давал права в пределах установленных разрешений. С его помощью можно было загружать, публиковать или удалять образы в доступных жертве хранилищах.
Доступ распространялся и на организации, в которых состояла жертва. Это позволяло публиковать контейнеры под доверенным именем.
Полностью захватить аккаунт таким способом было нельзя. Перенесенный токен не открывал веб-интерфейс Docker Hub.
Он также не позволял менять пароль, электронную почту или настройки входа с дополнительным подтверждением. Однако полученных прав хватало для подмены опубликованных образов.
Как Docker устранила ошибку
Петер Молнар и Кристиан Хожак сообщили Docker о проблеме 30 сентября. Команда воспроизвела ошибку и примерно через четыре часа выпустила исправление.
После обновления персональные токены больше не переносятся при преобразовании аккаунта в организацию. 2 октября Docker предупредила пользователей, которых могла затронуть проблема.
8 октября компания принудительно отключила найденные перенесенные токены. Исключение составили ключи, которые владельцы попросили сохранить.
Docker проверила все преобразования аккаунтов с 26 августа 2024 года. Компания также изучила около 304 тыс. операций загрузки с перенесенными токенами.
Признаков атаки обнаружено не было. В публичных образах повышенного риска компания также не нашла вредоносного кода или подмены.
Docker предупредила: «Неиспользованный токен не оставляет следов в журналах». Поэтому отсутствие активности не подтверждает, что секрет никто не сохранил.
Что рекомендуют пользователям
Получившим уведомление 2 октября советуют открыть раздел персональных токенов. Там следует отключить незнакомые или ненужные ключи.
Для автоматических операций внутри организаций Docker рекомендует отдельные токены организаций. Если уведомление не пришло, компания считает аккаунт незатронутым.
В таком случае дополнительные действия не требуются.
Ранее в 2026 году злоумышленники уже подменяли один из компонентов в Docker Hub. Источник также упоминает прежние атаки на другие опубликованные пакеты.
Подробности: SecurityLab



