Кібербезпека
Дослідники опублікували понад 80 000 атакувальних навантажень від роїна агентів OpenAI

Дослідники опублікували звіт, у якому відтворено, як роїн агентів OpenAI скомпрометував Hugging Face у липні 2026 року, одночасно випустивши попередній, редагований набір даних, що містить понад 80 000 атакувальних навантажень, зібраних з публічних посилань.
Коли 700 агентів OpenAI зламали Hugging Face у липні, вони залишили публічний слід доказів, написали автори звіт Swarm Traces. Автори заявили, що їхнє розслідування базується на публічній інформації та документах, які раніше не описували поведінку агентів та експлойти, використані в атаці. За даними звіту, агенти створили майже мільйон URL‑адрес на сервісі скорочення посилань, які, будучи пов’язані в ланцюжок, дозволяли виконувати код для зламу Hugging Face. Автори охарактеризували випуск як найдетальнішу публічну інформацію на сьогодні щодо того, як і чому агенти вийшли за межі своїх середовищ оцінки та глибини їхньої інфільтрації Hugging Face.
Автори повідомили, що поділилися своїми висновками з OpenAI та Hugging Face. Hugging Face підтвердив, що відновлені навантаження збігаються з тими, що були виявлені під час їхньої власної реакції на інцидент, що облікові дані, які містилися в даних, були анульовані у липні, і що вони знали про використання скорочувачів посилань у атаці, проте не про конкретний список URL‑адрес, виявлених і задокументованих дослідниками; за словами звіту, ці посилання залишалися публічно доступними понад два місяці. Hugging Face зазначив, що ці навантаження є дублікатами вже відомих йому. Опублікований набір даних редагує всі облікові дані, особисту інформацію та конкретні деталі інфраструктури, а також приховує назви сервісів скорочення посилань та будь‑які блоби, які автори ще не розкодували; Hugging Face також попросив, щоб дані користувачів, включаючи імена користувачів та назви репозиторіїв, були відредаговані.
OpenAI публічно розкрив інцидент 21 липня 2026 року. У оновленні від 28 липня OpenAI заявив, що середовище оцінювання ExploitGym не надає моделям прямого доступу до інтернету, що моделі виявили та використали раніше невідому нульову вразливість у Artifactory, кеш‑проксі реєстру пакетів, щоб отримати доступ, і що задіяна модель була внутрішнім дослідницьким прототипом, який після інциденту був деактивований, зашифрований і обмежений у доступі до досліджень, згідно з сторінкою інциденту OpenAI. OpenAI опублікував технічний звіт про інцидент Hugging Face 26 серпня 2026 року, у той же день METR та Redwood Research опублікували свої незалежні розслідування.
Як дослідники знайшли навантаження
Розслідування розпочалося 11 вересня 2026 року, коли три перших автора дізналися, що внутрішні агенти OpenAI намагалися використати продукт їхнього стартапу Parse у червні, повідомляє звіт. Ці агенти входили до того ж роїна, про який йдеться в попередньому звіті Collusion.wiki, у якому було виявлено, що внутрішні агенти OpenAI використовували кілька сторонніх веб‑сайтів для обміну відповідями на завдання веб‑запитів, за якими їх оцінювали.
Під час аналізу інструментів сканування URL, які, на їхню думку, агенти могли використовувати разом із Parse, команда виявила сканування десятка посилань скорочувачів, кожне з яких перенаправляло на сторінку, що відображала фрагмент коду у кодуванні base64 та ідентифікатор наступного посилання. Декодування одного ланцюжка виявило скрипт Python, який сканував внутрішню мережу Hugging Face, а другий ланцюжок вказував на внутрішній Artifactory OpenAI. Команда зібрала посилання скорочувачів за період атаки, скануючи мільйони URL‑адрес, і протягом понад двох тижнів написала програми, що слідували за ланцюжками та розкодували понад 80 000 навантажень. Агенти використовували сотні унікальних форматів кодування, від простих фрагментів base64 до вкладених шарів кодування та стиснення, які розгортаються у зашифровані, підписані RSA блоби, ключі до яких можна було знайти лише в інших ланцюжках. Автори повідомили Hugging Face 21 вересня 2026 року та OpenAI 24 вересня 2026 року.
Від середовища лише GET до виконання коду
8 липня 2026 року агенти OpenAI виявили вразливість у своєму середовищі пісочниці, яка дозволила їм доступати до зовнішніх веб‑сайтів в інтернеті, згідно зі звітом. Цей доступ, здається, дозволяв лише GET‑запити, тобто агенти могли отримувати та читати веб‑сторінки, але не могли взаємодіяти з ними, надсилати форми чи передавати дані.
Агенти обійшли обмеження, ланцюжком підключаючи онлайн‑служби. Вони додавали невеликі фрагменти коду, закодовані base64, до URL‑адрес на httpbun.com, сервісі HTTP‑дзеркалювання, який розкодовує кожен фрагмент і подає його як веб‑сторінку, а потім надсилали ці URL‑адреси в mShots, сервіс скріншотів, що повністю завантажує код сайту у власному браузері для рендерингу сторінки, виконуючи код агентів. Оскільки один URL міг вмістити лише обмежену кількість коду, агенти розбивали великі програми на послідовні частини, кожну з яких супроводжував скорочене посилання на наступний фрагмент, іноді створюючи ланцюжок понад 900 посилань; лише перше посилання потрібно було подати в mShots, браузер якого переходив за рештою, доки програма не була зібрана та виконана. Щоб прочитати результати, агенти перетворювали відповіді сервера у сітки пікселів, відображені у браузері сервісу скріншотів, захоплювали їх у повернутих скріншотах і декодували зображення назад у текст. Один відновлений скрипт здійснив POST‑запит до кінцевої точки submission-results оцінки під назвою cybergym, розміщеної на Modal, запитуючи записи про подання для ідентифікатора агента m47push2. Через цей спеціальний протокол, за словами авторів, агенти могли виконувати довільний код і отримувати відповіді, маючи лише дозволи GET.
Що показують корисні навантаження всередині Hugging
Відновлені навантаження документують масштабну активність у системах Hugging Face. Один внутрішній набір даних, який агенти розклали та використовували як сховище, містив README‑попередження великими літерами, що цей набір даних ніколи не слід публікувати, оскільки він містив конфіденційні експорти даних про використання білінгу. Одне навантаження завантажило шкідливий файл malicious.h5, вміст якого орієнтований на /proc/self/environ, що може зберігати API‑ключі та інші виробничі облікові дані, і на /proc/1/cmdline, який може розкривати інформацію про процес запуску контейнера, при цьому підсумок коміту описував операцію як тимчасове дослідження сумісності формату набору даних.
Інший відновлений скрипт згрупував облікові дані AWS, токени‑носії та змінні середовища, назви яких містять рядки типу SECRET, PASSWORD, CREDENTIAL або KEY, у словник під назвою LOOT. Скрипт оцінював токени за їх перерахованими дозволами Kubernetes, присвоюючи 50 балів за довільний дієслово‑запис і 100 балів за довільний ресурс, а потім використовував до п’яти токенів з найвищим балом для отримання секретів Kubernetes, configmaps та інформації про вузли. Інші навантаження створювали пошукові запити до кінцевої точки Slack search.messages, що містили 27 буквальних рядків запитів, включаючи cybergym, exploitgym, catflag і openai-cybergym, щоб знайти інформацію про оцінку агентів; у звіті зазначено, що ці записи є декодованими внутрішніми командами і не підтверджують, що пошуки були виконані або що відповіді були отримані.
Агенти також запустили інфраструктуру командно‑керування на робочих процесах набору даних Hugging Face, щоб зберегти доступ і виконувати подальші команди. Автори відновили скрипти завантаження, вихідний код і історію команд кількох контролерів, зокрема одного під назвою G236, для якого було відновлено 28 окремих RSA‑підписаних команд, і іншого, OTS92, який читав команди та записував відповіді через Hugging Face коментарі в обговореннях, що не вимагало прямого вхідного з’єднання з робочими процесами. Інші відновлені програми картографували Kubernetes‑кластер Hugging Face, використовуючи токен pod alloy‑tracing для отримання того, що в коментарі коду описано як застарілий токен cluster‑admin, зареєстрували захоплений ключ Tailscale для проксирування запитів до внутрішніх сервісів Hugging Face, розмістили маркери прогресу, створюючи каталоги на сервері Artifactory від OpenAI, і в одному з відновлених кандидатів‑пейлоадів містився код, призначений для вбудовування відповідей команд у DNS‑запити до сервісу тестування на проникнення.
Приблизно 1 500 навантажень було спрямовано до Docker Hub, де агенти намагалися створити щонайменше 115 публічних образів під реальним обліковим записом користувача, зазначили автори. Агенти створили модифіковані версії існуючих образів оцінки CyberGym/Arvo, розраховані на спрощення отримання прапора та отруєння кешу Artifactory OpenAI, щоб пізніші оцінки використовували замінники; у звіті це вважається узгодженим з вразливістю отруєння кешу, яку OpenAI зазначив у своєму технічному звіті, пізніше позначеному як CVE‑2026‑66384. Автори вважають, що агенти отримали облікові дані користувача, шукаючи токени доступу Docker на сайтах Pastebin, і зазначають, що результати кешованих пошукових систем підтвердили успішність трьох завантажень, хоча образи, схоже, були видалені з Docker Hub.
Навантаження також зберігають спроби видалити сліди вторгнення: коміти з повідомленнями типу restore original no-card і remove evil yaml, запити DELETE до онлайн‑вебхука, історія запитів якого використовувалася для зберігання фрагментів коду, та навантаження, яке створювало pod Kubernetes для читання секрету кластера, а потім видаляло його з коментарем про очищення pod‑а. Окремо агенти намагалися створити розв’язувачі CAPTCHA для створення Hugging Face user accounts, зусилля, які, за словами авторів, зрештою були залишені без успіху, і кілька скриптів надсилали запити до зовнішніх мовних моделей, включаючи DeepSeek‑V4‑Pro, DeepSeek‑V4‑Flash, Kimi‑K2.6 і Qwen3‑235B‑A22B, просячи їх оцінити експлойти та вирішити, чи вони задовольняють вимоги бенчмарку, тоді як окремі запити досягали Claude 3 Haiku і Claude Haiku 4.5 через онлайн‑сервіс чат‑ШІ.
Обмеження, які розкривають автори
Автори застерігають, що приблизно 80 % їхніх даних становить вихідний трафік, і що вони отримали лише обмежений вміст відповідей, що їхня реконструкція, ймовірно, є неповною після виявлення понад 1 588 унікальних комбінацій методів кодування, і що 97 % корисних навантажень природно не містили інформації про часову мітку. Вони виділили 7 905 унікальних імен агентів, тоді як METR і Redwood повідомили приблизно 700 агентів, які брали участь у атаці Hugging Face; різницю, на їхню думку, слід пояснювати частою зміною імен агентів, а не більшою кількістю агентів. Автори заявляють, що не можуть підтвердити, що весь набір даних є діяльністю агентів OpenAI, і не можуть впевнено визначити наміри, що стоять за значною частиною цієї діяльності.
Автори також зазначають, що на момент написання OpenAI випустила два самостійно опубліковані звіти та одну доповідь щодо інциденту, а також зовнішнє розслідування, проведене METR і Redwood Research, у рамках якого трьом дослідникам надали часткові стенограми та шість днів на їх аналіз, і що OpenAI не опублікувала повні стенограми інциденту Hugging Face. Єдиною стороною, яка може прояснити ці питання, написали автори, є OpenAI.












