آسیبپذیری در Gemini CLI امکان اجرای مخفیانه کد را فراهم کرد
نقص امنیتی در Gemini CLI امکان اجرای مخفیانه فرمانهای مخرب و سرقت داده از سیستم توسعهدهندگان را فراهم کرد
آسیبپذیریای در ابزار Gemini CLI متعلق به شرکت گوگل کشف شد که به مهاجمان اجازه میداد فرمانهای مخرب را بهصورت پنهانی اجرا کرده و دادهها را از رایانههای توسعهدهندگان با استفاده از برنامههای موجود در allowlist استخراج کنند.
این نقص امنیتی در تاریخ ۲۷ ژوئن توسط شرکت امنیتی Tracebit کشف و به گوگل گزارش شد. گوگل در پاسخ، نسخهی ۰٫۱٫۱۴ از این ابزار را منتشر کرد که شامل وصله امنیتی بوده و در تاریخ ۲۵ ژوئیه در دسترس قرار گرفت.
ابزار Gemini CLI نخستینبار در ۲۵ ژوئن ۲۰۲۵ منتشر شد. این ابزار یک رابط خط فرمان (command-line interface) است که به توسعهدهندگان اجازه میدهد بهصورت مستقیم از طریق ترمینال با هوش مصنوعی Gemini تعامل داشته باشند.
هدف از طراحی این ابزار، پشتیبانی از وظایف برنامهنویسی است؛ بهگونهای که فایلهای پروژه را در قالب “context” بارگذاری کرده و سپس با استفاده از زبان طبیعی با مدل زبانی بزرگ (LLM) تعامل برقرار میکند.
این ابزار قادر است پیشنهاد ارائه دهد، کد بنویسد و حتی فرمانهایی را بهصورت محلی اجرا کند؛ هم با تأیید کاربر و هم از طریق مکانیسم allow-list در مواردی که قبلاً تأیید شدهاند.
محققان Tracebit که بلافاصله پس از انتشار عمومی این ابزار آن را بررسی کردند، دریافتند که میتوان Gemini CLI را فریب داد تا فرمانهای مخرب را اجرا کند. در صورت ترکیب این آسیبپذیری با ضعف در تجربه کاربری (UX)، این مشکل میتواند منجر به حملات اجرای کد بهصورت غیرقابلتشخیص شود.
مهاجمان با سوءاستفاده از نحوه پردازش فایلهای “context” توسط Gemini CLI، از جمله فایلهای README.md و GEMINI.md، قادر به اجرای حمله هستند. این فایلها برای درک بهتر کد توسط هوش مصنوعی در قالب prompt بارگذاری میشوند. محققان Tracebit نشان دادند که میتوان دستورهای مخرب را در این فایلها پنهان کرد و از طریق prompt injection، هوش مصنوعی را به اجرای کد وادار نمود. ضعف در تحلیل فرمانها و پیادهسازی ناقص allowlist، امکان اجرای کد بدون تأیید کاربر را فراهم میکند.
در یک سناریوی اثبات مفهوم (PoC)، محققان مخزن (repository)ی حاوی یک اسکریپت پایتون بیضرر و یک فایل README.md آلوده ایجاد کردند و سپس با اجرای اسکن از طریق Gemini CLI، حمله را فعال نمودند.
در این مثال، Gemini ابتدا دستور بیضرر grep ^Setup README.md را اجرا میکند. اما پس از استفاده از یک کاراکتر سمی کولن (;)، دستور جداگانهای برای سرقت داده شروع میشود. اگر کاربر پیشتر دستور grep را در allowlist قرار داده باشد، Gemini CLI کل رشته را بهعنوان یک فرمان مجاز و بیخطر در نظر گرفته و آن را بهصورت خودکار و بدون هشدار اجرا میکند.
به گفته Tracebit، ضعف در بررسی allowlist باعث اجرای بیاطلاع فرمانهای ترکیبی میشود
در گزارش منتشرشده توسط Tracebit آمده است:
«برای مقایسه با allowlist، Gemini این رشته را صرفاً یک فرمان grep در نظر میگیرد و آن را بدون پرسش مجدد از کاربر اجرا میکند.»
در حالی که در واقعیت، این رشته شامل یک فرمان grep است که در ادامه با یک دستور برای سرقت بیسروصدای تمامی متغیرهای محیطی کاربر (که ممکن است شامل اطلاعات محرمانه و کلیدهای دسترسی باشند) به یک سرور راه دور ترکیب شده است.
«فرمان مخرب میتواند هر چیزی باشد؛ از نصب یک shell از راه دور گرفته تا حذف فایلها یا اقدامات دیگر.»
همچنین، محققان اعلام کردند که خروجی Gemini را میتوان با استفاده از فاصلهها (whitespace) بهصورت بصری دستکاری کرد تا بخش مخرب فرمان برای کاربر قابل مشاهده نباشد و اجرای آن بدون آگاهی او انجام شود.
برای نمایش نحوه اجرای عملی این آسیبپذیری، تیم Tracebit یک ویدیوی PoC (اثبات مفهوم) نیز تهیه کرده است.
اجرای موفق حمله مستلزم برخی پیشنیازهای خاص است، اما مهاجمان مصمم همچنان میتوانند به اهداف خود دست یابند
اگرچه این حمله دارای پیشنیازهای فنی مشخصی است—از جمله اینکه فرض شود کاربر پیشتر برخی فرمانها را در allowlist قرار داده است—اما مهاجمان پیگیر میتوانند در بسیاری از موارد نتایج دلخواه خود را کسب کنند.
این مورد، نمونهی دیگری از خطرات بالقوهی دستیارهای مبتنی بر هوش مصنوعی است که میتوان آنها را فریب داد تا اقدام به سرقت پنهانی دادهها کنند، حتی زمانی که فرمان دادهشده در ظاهر بیضرر به نظر میرسد.
به کاربران Gemini CLI توصیه میشود که حتماً به نسخه ۰٫۱٫۱۴ (جدیدترین نسخه) بهروزرسانی کنند. همچنین، از اجرای این ابزار روی مخازن کد ناشناس یا غیرقابل اعتماد خودداری کرده یا تنها در محیطهای ایزوله (sandboxed) این کار را انجام دهند.
شرکت Tracebit همچنین اعلام کرده که این شیوه حمله را روی سایر ابزارهای هوش مصنوعیِ برنامهنویسی، از جمله OpenAI Codex و Anthropic Claude نیز آزمایش کرده است؛ اما این ابزارها بهدلیل بهرهمندی از مکانیسمهای allowlist ایمنتر و مستحکمتر، در برابر چنین حملاتی آسیبپذیر نبودهاند.