در این زمان که مدل های هوش مصنوعی بسیار قدرتمند و کاربردی تر شده اند دستیار های هوش مصنوعی (AI Code Agent) ها به سرعت درحال رشد هستند و برای بسیاری درحال تبدیل شدن به یک ابزار کاربردی و روزمره است پس اگه شما هم برنامه نویسی یا توسعه دهنده هستید و یا برای پروژه های خود از دستیار های هوش مصنوعی استفاده میکنید این مطلب میتواند شما را نسبت به این آسیب پذیری و خطرات احتمالی آن آگاهتر کند.
اما این ابزار ها فقط کد تولید نمیکنند آنها تقریبا میتوانند هر عملیاتی را هم در سیستم عامل ما انجام دهند (البته اگه اجازه دسترسی به آن داده شده باشه) مثلا میتوانند فایل ها را بخوانند دستورات سیستمی را اجرا کنند و با ابزار هایی مانند git تعامل داشته باشند.
بنابه گزارشی که در تاریخ ۱ سپتامبر یعنی دو روز قبل از انتشار این مقاله منتشر شده نشان میدهد که همین تعامل با ابزار Git میتواند به یک مسیر حمله تبدیل شود و در ادامه آن را شرح میدهیم.
پژوهشگران گونه یک .git/config مخرب میتواند کد اجرا کند؟ مجموعهای از ۸ آسیبپذیری در ۷ ابزار دستیار هوش مصنوعی شناسایی کرده اند که یک Repository (مخزن) مخرب میتواند از طریق فایل:
.git/config
باعث اجرا کد در سیستم توسعه دهنده شود، اما نکته مهم در آن این است که حتی اگه به این دستیار ها اجازه دسترسی نداده باشیم و پنجره تایید امنیتی آن را تایید نکرده باشیم هم کد دستورات مخرب میتواند روی سیستم اجرا بشه. این مجموعه آسیبپذیریها با نام GitSpawn معرفی شده اند.
مشکل دقیقا چیست؟
خود ابزار گیت (Git) دارای قابلیتهایی است که برای سفارش سازی برخی رفتار های مخزن مودر استفاده قرار میگیرد
بهصورت ساده، یک Repository میتواند در فایل:
.git/config
تنظیمی شبیه این داشته باشد:
[core] fsmonitor = /path/to/program
در حالت عادی این قابلیت کاربرد مشروع دارد و برای بهبود عملکرد Git طراحی شده است.
مشکل زمانی ایجاد میشود که یک AI Coding Agent، بدون اینکه کاربر متوجه شود، دستوراتی مانند git status یا git diff را اجرا کند.
در این شرایط Git ممکن است تنظیمات موجود در .git/config را بخواند و برنامه تعیینشده توسط core.fsmonitor را اجرا کند.
در نتیجه، Repository عملاً میتواند باعث اجرای یک برنامه روی کامپیوتر توسعهدهنده شود.
چرا دستیار های هوش مصنوعی این مشکل جدیتر میکنند؟
معمولا این دستیارها تعامل زیادی با ابزار گیت دارند و به طور مداوم برای چک کردن وضعیت پروژه و تغییرات آن ممکنه دستوراتی مانند git status و سایر موارد را اجرا کنند.
اما به طور کلی خطر زمانی ایجاد میشود که کاربر یک مخزن گیت که فایل آلوده را در خود دارد را دریافت کند
اما نکته دیگری هم وجود دارد زمانی که یک مخزن را با دستور git clone دریافت میکنیم فایل .git/config را به آن شکل منتقل نمیکند اما روش هایی دیگر میتوانند کل .git مخرن را دست نخورده منتقل کنند مانند موارد زیر:
- فایل ZIP یا TAR از کل پوشه پروژه
- پوشهای که از شخص دیگری Copy شده است
- حالظه USB
- انتقال مستقیم یک Worktree
کدام دستیارهای هوش مصنوعی تحت تاثیر این آسیب پذیری قرار گرفتهاند؟
Claude Code
OpenAI Codex
Cursor
Foose
Hermes Agent
Qwen Code
Grok Build
اگر شما هم از این دستیارها استفاده میکنید درصورت وجود بروزرسانی سریعا نسبت به نصب نسخه جدید و بروزرسانی ابزار خود اقدام کنید.
آیا این یک آسیبپذیری در مدل هوش مصنوعی است؟
خیر و مشکل اصلی در خود مدل زبانی نیست.
ک AI Agent ممکن است کاملاً منطقی تصمیم بگیرد که برای شناخت پروژه دستور git status را اجرا کند. مشکل در لایهای است که Agent را به سیستمعامل و ابزارهای خارجی متصل میکند.
در واقع این حمله از ترکیب سه چیز شکل میگیرد:
- قابلیتهای انعطافپذیر Git
- اجرای خودکار دستورات توسط AI Agent
- اعتماد بیش از حد به Repositoryهای ناشناس
به همین دلیل GitSpawn نشان میدهد که در سیستمهای Agentic، حتی ابزارهای قدیمی و به ظاهر سادهای مثل Git میتوانند به بخشی از سطح حمله تبدیل شوند.
کاربران چگونه از خودشان محافظت کنند؟
۱. AI Agent را همیشه به آخرین نسخه بهروزرسانی کنید
۲. به Repositoryهای ZIP شده بیشتر احتیاط کنید
۳. core.fsmonitor را بررسی کنید
۴. در صورت عدم نیاز، core.fsmonitor را غیرفعال کنید
۵. به Repository ناشناس دسترسی بیش از حد ندهید
یک قانون ساده برای توسعهدهندگان
اگر بخواهیم کل این آسیبپذیری را در یک جمله خلاصه کنیم:
هر Repository ناشناسی که قرار است مستقیماً توسط یک AI Coding Agent اجرا یا تحلیل شود، باید مانند یک فایل اجرایی ناشناس در نظر گرفته شود.