OpenAI устранила уязвимость AgentForger в конструкторе корпоративных агентов ChatGPT. Подготовленная ссылка могла запустить создание автономного агента от имени сотрудника, подключить ранее разрешённые рабочие сервисы и настроить регулярное получение команд через электронную почту. После первого перехода дальнейшие действия пользователя уже не требовались.
Проблему обнаружили специалисты Zenity Labs. Отчёт поступил OpenAI через программу Bugcrowd 4 июня 2026 года. Компания приняла сообщение 5 июня и закрыла уязвимость 8 июня. Техническое описание опубликовали 23 июля, после выхода исправления.
Подтверждённых случаев применения AgentForger против реальных компаний в открытых публикациях нет. Все описанные кражи документов, поиск паролей и рассылка фишинговых сообщений проводились исследователями в испытательной среде.
Агента можно было создать через ссылку
Workspace Agents — корпоративные агенты ChatGPT, которые выполняют многоэтапные рабочие задачи. Они могут обращаться к электронной почте, документам и корпоративным чатам, запускать код, использовать подключённые приложения и работать по расписанию.
OpenAI представила Workspace Agents 22 апреля 2026 года. На момент запуска функция работала в режиме предварительного тестирования для ChatGPT Business, Enterprise, Edu и Teachers. Агенты выполняются в облаке и могут продолжать работу, когда сотрудник не пользуется ChatGPT.
В обычном режиме пользователь открывает конструктор, выбирает шаблон, описывает задачу, подключает приложения, настраивает подтверждения для чувствительных операций, проверяет результат и публикует агента.
AgentForger позволял управлять этим процессом через адрес открываемой страницы. Конструктор принимал параметры template_name и initial_assistant_prompt. Первый выбирал заготовку агента, второй передавал первоначальное задание.
Исследователи использовали шаблон chief-of-staff, предназначенный для помощника руководителя. Он подходил для работы с почтой, календарём, документами и корпоративными чатами.
Главная ошибка находилась в обработке initial_assistant_prompt. Конструктор не оставлял полученный из ссылки текст в поле ввода для проверки пользователем. Команда автоматически отправлялась на выполнение и становилась первым заданием для ChatGPT.
Ссылка вела на настоящий домен chatgpt.com, поэтому могла выглядеть безопаснее обычной фишинговой страницы. После перехода конструктор открывался в уже авторизованном сеансе жертвы и начинал выполнять встроенную инструкцию.
Zenity описывает эту механику как разновидность межсайтовой подделки запросов, или CSRF. Обычная CSRF-атака заставляет браузер выполнить одно нежелательное действие. AgentForger создавал полноценного автономного исполнителя с инструментами, расписанием и доступом к корпоративным данным.
Для атаки требовалось несколько условий
Уязвимость нельзя было использовать против любого владельца учётной записи ChatGPT. Сотрудник должен был выполнить сразу три условия: войти в ChatGPT, получить доступ к Workspace Agents и ранее подключить хотя бы одно рабочее приложение.
В техническом отчёте упомянуты Outlook, Gmail, Slack, Google Drive, SharePoint и Teams. Календарь также использовался в демонстрации как один из инструментов шаблона.
Заранее предоставленное разрешение играло ключевую роль. При создании вредоносного агента новый экран OAuth не появлялся: ChatGPT уже имел доступ к сервису от имени сотрудника.
AgentForger не взламывал пароль и не давал агенту административные полномочия. Он использовал существующий сеанс ChatGPT и те интеграции, которые пользователь разрешил раньше. Опасность возникала из-за автоматического объединения этих возможностей без осознанного решения владельца учётной записи.
Встроенная в ссылку команда просила конструктор подключить все доступные интеграции и перевести их в режим Never ask, при котором агенту не нужно подтверждение перед операциями. Отчёт однозначно показывает успешное отключение запросов для Outlook. Распространялось ли изменение без ограничений на каждую доступную интеграцию, из опубликованных материалов установить нельзя.
Агент закреплялся через расписание
После настройки конструктор публиковал агента и запускал режим предварительного просмотра. Этот режим оказался полноценным выполнением, а не показом будущих действий. Агент сразу получал доступ к подключённым сервисам с выбранными параметрами подтверждений.
Следующим этапом становилось расписание. Исследователи создали несколько ежечасных заданий со сдвигом на пять минут. В результате агент запускался каждые пять минут, хотя отдельные задания оставались ежечасными.
Открытая вкладка ChatGPT после публикации не требовалась. Агент продолжал работать в облаке и проверял почтовый ящик по расписанию.
Для управления использовались письма от заданного адреса. В исследовательском примере агент искал сообщения, тема которых начиналась со слова TASK. Текст письма становился новым заданием. Результат отправлялся обратно атакующему через ту же почту.
Получалась замкнутая схема: первое нажатие создавало агента, расписание обеспечивало повторные запуски, а почта служила каналом передачи команд и результатов.
Что сделал агент в испытательной среде
Сначала исследователи поручили агенту составить карту организации. Он изучил Outlook, Slack, Teams, Google Drive, SharePoint и календарные данные. Итоговый отчёт содержал сведения о сотрудниках, должностях, рабочих каналах, проектах, внутренних обсуждениях, документах и регулярных встречах.
Следующее задание касалось поиска конфиденциальной информации. Агент обнаружил проект условий сделки по слиянию, презентацию для совета директоров со сведениями о недоборе выручки и планируемом сокращении персонала, а также выгрузку с контактами и зарплатами сотрудников. Найденные данные были сгруппированы и отправлены на внешний адрес.
Отдельный тест проверял поиск учётных данных в Slack. Агент нашёл сообщение, содержавшее пароль, оформил результат в таблицу и переслал его исследователям. Одноразовые коды, программные ключи, токены доступа и ссылки для восстановления учётных записей в отчёте перечислены как возможные цели такого поиска, а не как данные, обязательно найденные во время испытания.
Ещё один сценарий имитировал внутренний фишинг. Агент отправил через Teams сообщение от имени сотрудника и добавил ссылку на поддельную страницу входа Microsoft. Получатели видели сообщение из доверенной корпоративной учётной записи.
Исследователи также проверили фишинг в Slack, приглашение в календаре и мошенническое письмо с запросом на перевод 242 500 долларов. Эти действия были частью демонстрации возможностей.
Вторая часть отчёта показывает главную особенность атаки: агент объединял несколько корпоративных систем в одно рабочее пространство. Он мог взять контекст из писем, найти связанный документ в облачном хранилище, определить нужных сотрудников по чатам и использовать доверенную учётную запись для дальнейшей рассылки.
После публикации и настройки расписания агент мог работать в фоновом режиме без дополнительных действий сотрудника. Zenity указывает, что жертва не получала новых запросов на подтверждение и могла не замечать последующие запуски.
Процесс нельзя считать гарантированно скрытым от всей организации. Переход открывал конструктор ChatGPT, а созданный агент оставался объектом внутри корпоративного пространства. Администраторы ChatGPT Enterprise и Edu могут отслеживать конфигурации, изменения и запуски агентов через Compliance API. OpenAI также позволяет ограничивать доступ к конструктору и приостанавливать агентов.
Практический риск зависел от качества контроля. Если компания не проверяла новые агенты, расписания и исходящие действия подключённых сервисов, вредоносная автоматизация могла долго выглядеть как активность настоящего сотрудника.
Почему стандартные подтверждения не остановили атаку
Workspace Agents поддерживают запрос разрешения перед чувствительными действиями: отправкой письма, изменением файла или созданием события в календаре. AgentForger атаковал сам процесс настройки этих правил.
Текстовая команда сначала меняла параметры безопасности, а затем запускала агента. Механизм, который должен был требовать вмешательства пользователя, управлялся той же инструкцией, которую система автоматически выполняла.
OWASP относит похожие проблемы к категории избыточной самостоятельности ИИ-систем. Риск складывается из чрезмерного набора функций, широких разрешений и выполнения опасных операций без участия человека.
Защита в такой архитектуре не должна зависеть исключительно от решения языковой модели. Критичные ограничения лучше закреплять на уровне подключённого сервиса или административной политики, которую агент не может изменить обычной текстовой командой.
Уязвимость закрыли до раскрытия подробностей
Zenity сообщила об ошибке 4 июня. Bugcrowd проверила обращение 5 июня, в тот же день OpenAI приняла отчёт. Исправление вышло 8 июня — через четыре календарных дня после первоначальной передачи данных.
Публичное описание появилось 23 июля. SecurityWeek сообщил, что уязвимый параметр позволял заранее задавать инструкции и удалённо управлять агентом после первого перехода по ссылке.
TechRadar уточняет, что исправление включало удаление параметра, позволявшего запустить описанную цепочку. Издание не обнаружило признаков эксплуатации до выпуска исправления. Отдельного номера CVE и оценки CVSS в материалах Zenity нет.
Пользователям не предлагали самостоятельно устанавливать обновление. Исправление внесли в облачный сервис ChatGPT.
Что проверить компаниям
Администраторам стоит просмотреть агентов, созданных до 8 июня, проверить их расписания, подключённые сервисы и правила подтверждения операций. Отдельного внимания требуют агенты, которые регулярно читают входящие письма, исполняют содержащиеся в них задания и отправляют результаты за пределы компании.
Использованное в исследовании слово TASK нельзя считать универсальным признаком атаки. Вредоносная инструкция могла использовать любое условие, адрес отправителя или формат темы письма. Проверять нужно общую логику работы агента, а не конкретную строку.
Разрешения подключённых приложений следует ограничивать задачами агента. Сервису для подготовки сводки достаточно чтения почты — возможность самостоятельно отправлять сообщения, удалять файлы или приглашать участников на встречи увеличивает последствия любой ошибки.
Вопросы и ответы
Взломали ли обычные чаты ChatGPT?
Нет. Ошибка находилась в конструкторе корпоративных Workspace Agents.
Любой ли пользователь мог стать жертвой?
Нет. Требовались доступ к Workspace Agents, активный сеанс ChatGPT, ранее подключённое рабочее приложение и переход по подготовленной ссылке.
Получал ли агент новые права?
Он использовал уже разрешённые интеграции и полномочия сотрудника. Новая авторизация OAuth для них не требовалась.
Был ли агент полностью невидимым?
Его фоновая работа могла оставаться незаметной для сотрудника. Администраторы при должном контроле могли обнаружить агента, его конфигурацию и запуски.
Подтверждены ли реальные атаки?
Нет. Открытые материалы описывают испытательный образец. Подтверждённые инциденты с использованием AgentForger не приводятся.
Уязвимость уже исправлена?
Да. Zenity указывает, что OpenAI закрыла её 8 июня 2026 года.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.