متن مخفی با فونت یک پیکسل و رنگ سفید در یک صفحه وب معمولی، برای فریب دادن IDE هوش مصنوعی AWS کافی بود تا فایل پیکربندی خود را بازنویسی کرده و کد دلخواه مهاجم را روی سیستم قربانی اجرا کند. این نقص امنیتی که توسط پژوهشگران Intezer و Kodem Security کشف شد، زنجیره‌ای از آسیب‌پذیری‌های مشابه را در این محصول تازه‌وارد AWS به یاد می‌آورد.

در این حمله، مهاجم فقط کافی بود یک صفحه وب مسموم طراحی کند – مثلاً یک صفحه مستندات API – که حاوی یک بلوک متنی پنهان با دستورالعمل‌های مخرب باشد. وقتی توسعه‌دهنده از Kiro می‌خواهد آن صفحه را خلاصه کند، این عامل هوش مصنوعی متن پنهان را می‌خواند و آن را به عنوان یک وظیفه (task) تفسیر می‌کند. سپس بدون نیاز به تأیید کاربر، فایل تنظیمات سرورهای MCP (Model Context Protocol) را تغییر می‌دهد و یک سرور جعلی با دستور اجرای کد دلخواه مهاجم ثبت می‌کند. در لحظه بارگذاری مجدد این فایل، کد مهاجم روی ماشین میزبان با دسترسی کامل توسعه‌دهنده اجرا می‌شود.

تصویری شماتیک از حمله به Kiro با تزریق متن مخفی

چگونه یک درخواست ساده به اجرای کد ختم شد؟

مدل امنیتی Kiro بر پایه تأیید انسانی (Allow) طراحی شده است؛ تمام دستورات پرخطر نظیر اجرای دستورات شل، دریافت URLها و ویرایش فایل‌ها ابتدا باید توسط توسعه‌دهنده تأیید شوند. اما محققان دریافتند که فایل ~/.kiro/settings/mcp.json که فهرست سرورهای MCP و دستور شروع آن‌ها را شامل می‌شود، توسط خود Kiro و با ابزار fsWrite بدون هیچ تأییدی بازنویسی می‌شود.

هنگام بارگذاری مجدد این فایل (که به محض تغییر آن رخ می‌دهد)، Kiro هر سروری را که در آن تعریف شده باشد راه‌اندازی می‌کند. بنابراین ثبت یک سرور با دستور malicious-command کافی بود تا حمله کامل شود. پژوهشگران با قرار دادن یک بلوک متنی سفید یک‌پیکسلی در یک صفحه API معمولی، توانستند بدون جلب توجه، دستورالعمل‌های خود را به Kiro تزریق کنند. در آزمایش‌ها، این حمله در یک یا دو تلاش موفقیت‌آمیز بود.

هشدار بی‌اثر

اگرچه Kiro در برخی موارد یک پنجره تأیید با محتوای «پیکربندی MCP تغییر کرده است» نشان می‌داد، پژوهشگران دریافتند که بارگذاری مجدد فایل صرف‌نظر از کلیک کاربر (Allow یا Deny) انجام می‌شود. بنابراین هشدار هیچ ارزش امنیتی نداشت و تنها عملی که کاربر واقعاً آن را تأیید می‌کرد، دریافت URL اولیه بود.

تاریخچه تکرار یک اشتباه

این نخستین باری نیست که چنین حفره‌ای در Kiro کشف می‌شود. در روز انتشار اولیه Kiro در ژوئیه 2025، پژوهشگر امنیتی یوهان ربرگر (Johann Rehberger) از Embrace The Red نشان داده بود که تزریق درخواست (Prompt Injection) می‌تواند کد دلخواه را در فایل mcp.json قرار دهد و در لحظه ذخیره، آن را اجرا کند. AWS در آن زمان با افزودن پنجره تأیید برای نوشتن در فایل‌های حساس در حالت Supervised پاسخ داد، اما حالت پیش‌فرض Autopilot همچنان آسیب‌پذیر باقی ماند. همچنین شرکت Cymulate گزارشی از خودکار اجرا شدن کد در .vscode/tasks.json ارائه کرد که منجر به صدور CVE-2026-10591 شد.

با این حال، زنجیره حمله‌ای که Intezer در فوریه 2026 گزارش کرد، همچنان در نسخه‌های 0.9.2 (macOS) و 0.10.16 (Ubuntu) فعال بود و AWS آن را در به‌روزرسانی‌های بعدی اصلاح کرد. جالب اینکه هیچ CVE جدیدی برای این آسیب‌پذیری صادر نشده است.

پیامدها

اگرچه محققان برای اثبات مفهوم فقط اطلاعات اولیه مانند نام میزبان و نام کاربری را استخراج کردند، اما مهاجم می‌توانست هر دستوری را با دسترسی توسعه‌دهنده اجرا کند: سرقت اعتبارنامه‌ها، کد منبع، نصب بدافزار، یا نفوذ به سیستم‌های داخلی. با توجه به رشد ابزارهای برنامه‌نویسی مبتنی بر عامل (Agentic IDEs)، این نوع آسیب‌پذیری‌ها یادآور اهمیت جدی گرفتن مرزهای امنیتی در معماری این ابزارهاست. امید است که AWS با درس گرفتن از این اشتباهات تکراری، امنیت Kiro را در نسخه‌های آینده بیش از پیش تضمین کند.