Zenity Labs в четверг опубликовала исследование, в котором описала то, что она называет AgentForger: уязвимость в конструкторе Workspace Agents в ChatGPT, превращавшую одну ссылку в устойчивого автономного инсайдера внутри организации жертвы.
Как это работало
Конструктор принимал template_name и initial_assistant_prompt как URL-параметры — и автоматически отправлял их без запроса на подтверждение у пользователя. Переход по ссылке создавал, настраивал и публиковал агента в рамках собственной аутентифицированной сессии жертвы. Поскольку это была сессия жертвы, агент наследовал все уже авторизованные коннекторы: Outlook, Gmail, Slack, SharePoint, Teams, Google Drive. В том же payload были отключены и контрольные этапы подтверждения.
Канал команд
Затем внедренный агент опрашивал ящик, контролируемый атакующим, каждые пять минут, и искал сообщения с "TASK" в теме, выполняя то, что находил — двенадцать сдвинутых расписаний формировали пятиминутный цикл. Это постоянный канал командования и управления, работающий с правами реального сотрудника; в демонстрации Zenity он был использован для проведения $242,500 банковского перевода. Технический директор Майкл Баргури: "Один клик — и у атакующего появляется полностью автономный агент внутри вашей компании".
Хронология
Исследователь Майк Такахаси сообщил об этом через Bugcrowd 4 июня. Уязвимость была классифицирована 5 июня и исправлена 8-9 июня, когда OpenAI убрала параметр. Уязвимость закрыта; новым является само раскрытие.
Почему это важно
Это возрождение межсайтовой подделки запроса для эпохи агентов. Классическая CSRF заставляет браузер выполнить одно действие от имени вошедшего в систему пользователя. Здесь поддельным действием было создание долговременного автономного процесса, который продолжает действовать еще долго после закрытия вкладки — а конструкторы агентов, принимающие конфигурацию из URL, превращают каждую фишинговую ссылку в потенциального постоянного сотрудника.
