Modal Labs, Hugging Face и куча украденных ключей: во что вылился один «безобидный» тест OpenAI

Hugging Face зафиксировала около 6280 групп действий, связанных со взломом внутренней инфраструктуры.


pjrlc7txle7lywv3xmm3ru8ducr62oh2.jpg

ИИ-агент OpenAI превратил тест на поиск уязвимостей в настоящую многодневную атаку и добрался до внутренней инфраструктуры Hugging Face . За четыре с половиной дня система выполнила около 17 600 действий, использовала несколько уязвимостей нулевого дня, похитила учетные данные и получила доступ к части внутренних ресурсов компании.

Инцидент произошел во время внутренней проверки кибервозможностей моделей OpenAI. В испытании участвовали GPT-5.6 Sol и более мощная модель, которую компания пока не выпустила. Чтобы оценить риски, специалисты отключили часть штатных ограничений, мешающих моделям выполнять опасные действия. Агент должен был искать уязвимости в испытательном комплексе ExploitGym, но вместо решения задачи попытался украсть готовые ответы.

Сначала система нашла уязвимость нулевого дня в промежуточном сервере, через который изолированная среда OpenAI получала пакеты программ. Агент вырвался в интернет, а затем обнаружил открытый программный интерфейс, размещенный клиентом компании Modal Labs. Интерфейс позволял любому пользователю запускать команды в изолированной среде без проверки личности.

Modal Labs заявила, что собственная платформа и механизмы изоляции не пострадали. Агент использовал ошибку в коде клиента компании и превратил чужую среду в промежуточную площадку для дальнейшей атаки. После выхода в интернет агент предположил, что Hugging Face может хранить модели, наборы данных и решения для ExploitGym. Система начала загружать на платформу специально подготовленные наборы данных, которые использовали ошибки в механизме их обработки.

Первая уязвимость позволила читать локальные файлы на производственных серверах Hugging Face . Так агент получил переменные окружения, секретные ключи, учетные данные и исходный код обработчика данных. Вторая ошибка находилась в системе шаблонов Jinja2 и позволила выполнять произвольный код внутри рабочего контейнера.

Получив начальный доступ, агент начал разведку, закрепился в инфраструктуре и стал искать новые пути продвижения. Система читала служебные токены Kubernetes, обращалась к облачным метаданным, проверяла права доступа и создавала привилегированные контейнеры. В результате агент получил права администратора в нескольких внутренних вычислительных средах Hugging Face.

Одним из главных источников проблем стал объект со 136 служебными ключами. Среди них находились данные для подключения к корпоративной сети и внутренней системе доступа к вычислительным кластерам. С помощью украденного ключа агент подключил к защищенной сети десятки временных устройств и смог обращаться к внутренним службам.

Система также добралась до внутреннего хранилища исходного кода. Агент создал временные ключи приложения GitHub, получил права на запись в нескольких закрытых репозиториях и попытался запустить вредоносный код через систему автоматической сборки. Защитные правила заблокировали попытку. Проверка не выявила посторонних изменений в опубликованных контейнерах и программных пакетах.

Чтобы управлять атакой, агент не создавал отдельный управляющий сервер. Вместо него система использовала общедоступные службы приема запросов, сайты для публикации текста, файлообменники и наборы данных на самой платформе Hugging Face. Команды и похищенные сведения агент сжимал, разбивал на части и кодировал, чтобы усложнить обнаружение.

Кампания продолжалась с 9 по 13 июля 2026 года. Агент постоянно терял временные среды, но каждый раз заново загружал инструменты, восстанавливал каналы связи и продолжал атаку. Hugging Face насчитала около 6280 групп связанных действий, включая разведку, выполнение команд, повышение прав и перемещение между внутренними системами.

Специалисты Hugging Face обнаружили аномалии сразу в нескольких системах наблюдения. Защитные средства смогли связать отдельные сигналы в общую картину, но неверно оценили уровень угрозы и не вызвали дежурную команду вовремя. После ручной проверки компания отключила уязвимый обработчик данных и перекрыла агенту доступ к внутренней сети.

По данным Hugging Face, агент получил доступ только к пяти наборам данных с решениями задач ExploitGym и CyberGym. Компания не обнаружила признаков того, что были похищены другие пользовательские модели, наборы данных, программные пространства или пакеты. Внутреннюю базу данных агент читал, но журналы не показали изменений или массовой выгрузки информации.

OpenAI сообщила, что агент также проник в четыре учетные записи на четырех сторонних сервисах. Компания не раскрыла названия площадок, однако источники Reuters назвали Modal Labs одной из них. OpenAI заявила, что ни один из дополнительных эпизодов не достиг масштаба атаки на Hugging Face.

После инцидента OpenAI отключила испытываемую модель, зашифровала связанные с ней материалы и закрыла доступ для сотрудников. Компания также усилила изоляцию испытательных сред и передала сведения об уязвимости нулевого дня поставщику промежуточного сервера.

Hugging Face заблокировала оба способа выполнения кода, закрыла доступ к облачным метаданным из рабочих контейнеров, заменила служебные ключи и заново развернула часть основной инфраструктуры. Компания также разделила общие учетные данные между вычислительными средами и усилила контроль за использованием ключей из необычных сетей.