نشت کلید API از IDE هوشمند آمازون
خلاصهٔ کاملتر
تیم Mindgard گزارش داده که Kiro، همون IDE مبتنی بر عامل هوش مصنوعی آمازون، جوری قابل سوءاستفاده بوده که محتوای یه مخزن میتونه اطلاعات حساس محلی رو به یه سرور بیرونی بفرسته. تست روی نسخهٔ 0.7.45 روی ویندوز انجام شده و رفتار توی هر دو حالت workspace معتمد و نامعتمد بازتولید شده. یعنی مکانیزم trusted workspace که آدم انتظار داره جلوی همچین چیزی رو بگیره، اینجا کاری نکرد.
ماجرا از prompt injection شروع میشه، یعنی متنی که مهاجم توی فایلهای پروژه گذاشته بهجای داده، به چشم دستور دیده میشه. به گفتهٔ Mindgard، یه فایل Markdown داخل یه پوشه با اسم فریبنده به عامل میگه همون فایل رو بخون و دستوراتش رو همون لحظه انجام بده. عامل هم داخل پروژه دنبال مقدار حساس میگرده، فایل .env رو میخونه و کلید تستی OPENAI_API_KEY رو برمیداره.
قدم آخر جالبه: عامل اون مقدار رو جای یه placeholder توی تنظیم kiroAgent.powersRecommendationUrl داخل فایل .code-workspace میذاره و بعد ابزار kiroPowers رو با اکشن configure صدا میزنه. خود IDE اون URL رو میگیره و کلید توی query string درخواست خروجی ظاهر میشه. هیچکدوم از این قابلیتها بهتنهایی باگ نیستن؛ ترکیبشون مرز اعتماد رو میشکنه.
برای سوءاستفاده فقط دو تا کار از سمت قربانی لازمه: باز کردن پروژه با File → Open Workspace From File بهجای باز کردن مستقیم پوشه، و بعدش فرستادن یه پیام به عامل. هیچجا لازم نیست کاربر بخواد عامل به دادهٔ حساس دست بزنه یا اونو بفرسته. به همین خاطر Mindgard سختی این حمله رو پایین ارزیابی کرده.
نویسنده میگه بخش دوم ماجرا به خود فرایند افشای آسیبپذیری برمیگرده. Mindgard قبلاً یه نشت مشابه از راه steering fileها گزارش کرده بود که توی HackerOne «تکراری» علامت خورد؛ همین باعث شد دوباره سراغ Kiro برن و این مسیر کاملاً متفاوت رو پیدا کنن. به نظر نویسنده وقتی خروجی دو گزارش یکیه ولی مکانیزمشون فرق داره، برچسب تکراری میتونه یه آسیبپذیری واقعی رو زیر فرش کنه.
آمازون گزارش رو از راه HackerOne تأیید کرد و توی Kiro نسخهٔ 0.8.140 وصلهاش کرد. پاداشش یه کارت هدیهٔ ۴۰ دلاری فروشگاه آمازون بود و تیم CNA آمازون هنوز داره بررسی میکنه که به این مورد شناسهٔ CVE تعلق میگیره یا نه.
نکات کلیدی:
- تست روی Kiro نسخهٔ 0.7.45 ویندوز؛ وصله توی نسخهٔ 0.8.140
- حمله توی هر دو workspace معتمد و نامعتمد بازتولید شد
- مسیر خروج داده: تنظیم kiroAgent.powersRecommendationUrl بهعلاوهٔ ابزار kiroPowers
- قربانی فقط باید پروژه رو با Open Workspace From File باز کنه و یه پیام بفرسته
- پاداش گزارش یه کارت هدیهٔ ۴۰ دلاری بود و وضعیت CVE هنوز نامشخصه




