AgentForger: با یه لینک، ایجنت مخرب بساز
خلاصهٔ کاملتر
به گفتهٔ Mike Takahashi از تیم Zenity Labs، سازندهٔ Workspace Agents در ChatGPT رو میشد کامل با یه URL ساختگی هدایت کرد. اسمی که روش گذاشتن AgentForger هست: یه CSRF که بهجای جعل یه درخواست، کل یه ایجنت خودمختار رو جعل میکنه — ایجنتی که کنترلش دست مهاجمه ولی داخل مرز اعتماد سازمان زندگی میکنه. این ایجنتها میتونن به Outlook، Gmail، Slack، Google Drive، SharePoint و Teams وصل بشن و روی زمانبندی اجرا بشن.
ساخت ایجنت قاعدتاً یه فرایند تعاملیه: کاربر قالب رو انتخاب میکنه، دستورالعمل میده، ابزارها رو وصل و تأیید میکنه، تو Preview تستش میکنه و آخرش منتشرش میکنه. مشکل اینجا بود که همین مسیر رو میشد از خود آدرس صفحه پیشبارگذاری و اجرا کرد. صفحهٔ سازنده دو پارامتر URL قبول میکرد: template_name که قالب شروع رو تعیین میکنه، و مهمتر initial_assistant_prompt که به گفتهٔ نویسنده موقع لود شدن صفحه فقط تو کادر پرامپت نمینشست، بلکه خودکار ثبت و اجرا میشد.
تو نمونهٔ اثبات مفهوم، دستور جاسازیشده تو لینک شکل یه چکلیست داشت: همهٔ کانکتورهای از قبل مجاز رو وصل کن، حالت تأیید همهشون رو روی «Never ask» بذار، چند زمانبندی با فاصلهٔ پنجدقیقهای بساز، هر بار صندوق ایمیل رو دنبال پیامهای مهاجم بگرد و نتیجه رو براش بفرست، و ایجنت رو زنده کن. چون کانکتورها قبلاً خود قربانی تأییدشون کرده بود، هیچ صفحهٔ رضایت OAuth تازهای بالا نمیاومد.
نکتهٔ بدترش Preview Mode بود: حالتی که قاعدتاً باید یه تست بیخطر باشه، عملاً ایجنت تازهساخته رو با همون تنظیمات تأییدِ تازهخاموششده روی حسابهای واقعی قربانی اجرا میکرد. زمانبندی هم حمله رو از یه اجرای یکباره به چیزی شبیه کانال فرمانودهی تبدیل میکرد؛ دیگه لازم نبود قربانی دوباره روی چیزی کلیک کنه یا حتی سراغ ChatGPT بره.
نویسنده ریشه رو دو رفتار میدونه: اول اینکه پارامتر URL بهجای ورودی نیازمند تأیید، بهعنوان ورودی اجراشدنی رفتار میشد و هیچ محافظت CSRF نداشت؛ دوم اینکه همون پرامپت اجازه داشت تنظیمات امنیتی — یعنی سیاست تأیید و زمانبندی — رو عوض کنه. یعنی سازوکاری که قرار بود جلوی کارهای حساس رو بگیره، با دستوری که داشت اجرا میشد خاموش میشد. Zenity این رو ۴ ژوئن ۲۰۲۶ از راه Bugcrowd گزارش کرد و OpenAI تا ۸ ژوئن رفعش کرد.
نکات کلیدی:
- AgentForger یه CSRF روی سازندهٔ Workspace Agents در ChatGPT بود که کل یه ایجنت خودمختار رو جعل میکرد، نه فقط یه درخواست.
- پارامتر initial_assistant_prompt تو آدرس صفحه خودکار اجرا میشد و template_name قالب شروع رو تعیین میکرد.
- قربانی فقط باید لاگین بوده و حداقل یه کانکتور از قبل مجاز داشته باشه؛ رضایت OAuth تازه لازم نبود.
- گیت تأیید («Always ask») با همون پرامپت روی «Never ask» میرفت و Preview Mode ایجنت رو واقعاً اجرا میکرد.
- زمانبندی دورهای نقش ماندگاری و کانال فرمان رو بازی میکرد و ایمیل مسیر خروج داده بود.
- گزارش ۴ ژوئن ۲۰۲۶ ثبت و ۸ ژوئن ۲۰۲۶ توسط OpenAI رفع شد.




