پرش به محتوای اصلی
پرش به محتوای مقاله

درون مکانیسم شکست ایزولاسیون در Claude Code؛ از Glob-Pattern تا اجرای دستورات

·۲۸ مرداد ۱۴۰۵۵ دقیقه مطالعه
تحلیل ریشه‌ای: اشتباه الگوی Glob در سندباکس macOS کد Claude (CVSS 7.7)
تحلیل ریشه‌ای: اشتباه الگوی Glob در سندباکس macOS کد Claude (CVSS 7.7)
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

کشف یک متد جدید برای خروج از سندباکس در Claude Code از طریق ایجاد عدم تقارن میان قوانین Allow و Deny با استفاده از کاراکترهای Wildcard در نام پوشه‌ها.

تصور کنید ابزاری که برای مدیریت کدهای شما طراحی شده، ناگهان کل سیستم‌عامل macOS شما را در معرض خطر قرار دهد. یک نقص امنیتی شدید در Claude Code اکنون اجازه می‌دهد مهاجمان بدون نیاز به احراز هویت، دستورات را خارج از محیط ایزوله یا همان سندباکس (Sandbox) اجرا کنند.

این آسیب‌پذیری که در ۱۹ اوت ۲۰۲۶ افشا شد، امتیاز ۷.۷ در معیار CVSS 4.0 دریافت کرده است. طبق گزارش‌های منتشر شده، این چهارمین مورد شناسایی‌شده با شدت بالا برای این ابزار در سال جاری است.

این اتفاق در حالی رخ می‌دهد که توسعه‌دهندگان به‌طور گسترده در حال ادغام عامل‌های (Agents) هوش مصنوعی در سیستم‌فایل‌های محلی خود هستند. همان‌طور که در تحلیل قبلی ما درباره‌ی نقش عامل‌های هوش مصنوعی در تسریع تست‌های پایتون اشاره کردیم، این کشف جدید توازن شکننده میان خودمختاری عامل و امنیت سیستم را به چالش می‌کشد. به زبان ساده، «حصار» امنیتی این ابزار دور پروژه شما، در صورت نام‌گذاری خاص یک پوشه، می‌تواند دری را به کل کامپیوتر شما باز کند.

محدوده سندباکس و منشأ خطا

سندباکس Claude Code در macOS به‌گونه‌ای طراحی شده که دسترسی‌های نوشتن در دایرکتوری فعلی پروژه را به‌طور خودکار تأیید کند. برای تعیین محدوده این مجوزها، مولد سیاست‌ها مسیر پوشه پروژه را برای یافتن نحو گلوب (Glob) بررسی می‌کند؛ یعنی کاراکترهایی مثل * و ? که به‌طور قراردادی به معنای «تطبیق با هر چیزی» هستند، نه یک رشته متنی ساده.

به نقل از تحلیل فنی CodeAnt AI، ریشه این مشکل در نبود مکانیزمی برای تشخیص تفاوت میان یک «الگوی گلوب عمدی» و یک «نام پوشه واقعی» است که صرفاً شامل این کاراکترهاست. در واقع، هیچ فرآیند نقل‌قول یا تفکیک نوعی قبل از تبدیل مسیر به یک قانون تطبیقی صورت نمی‌گیرد.

این باگ در واقع یک «تفسیر مجدد لیترال به الگو» است. سیستم به‌جای اینکه مسیر را به‌عنوان یک شیء واقعی در سیستم‌فایل بشناسد، نوع آن را صرفاً از روی کاراکترهای موجود در نام پوشه حدس می‌زند.

تحلیل علت اصلی: اشتباه الگوی Glob در سندباکس macOS کد Claude (امتیاز CVSS 7.7)

سازوکار شکست امنیتی

وقتی یک پوشه پروژه به‌گونه‌ای تغییر نام یابد که شامل ستاره باشد — مثلاً review-bundle**.claude** — سیستم آن را به‌جای یک رشته متنی، به‌عنوان یک الگوی Wildcard تفسیر می‌کند. در نتیجه، قانون دسترسی از «فقط این دایرکتوری» به الگویی شبیه به این تبدیل می‌شود: allow_write: /parent/review-bundle*/.claude*.

این وضعیت یک عدم تقارن بحرانی میان قوانین «اجازه» (Allow) و «ممنوعیت» (Deny) ایجاد می‌کند:

  • قوانین اجازه: محدوده دسترسی از یک پوشه تک را به هر پوشه هم‌سطحی که با همان پیشوند شروع شود، گسترش می‌دهد.
  • قوانین ممنوعیت: Claude Code یک قانون ممنوعیت مجزا برای محافظت از فایل settings.local.json در پوشه .claude ایجاد می‌کند. اما چون منطق تطبیق در قوانین ممنوعیت به‌طور خودکار گسترش نمی‌یابد، مسیرهای هم‌سطح در قانون «اجازه» پذیرفته شده اما در قانون «ممنوعیت» نادیده گرفته می‌شوند.

تحلیل ریشه‌ای: اشتباه الگوی Glob در سندباکس macOS کلود کد (CVSS ۷.۷)

جزئیات بهره‌برداری و اعتبارسنجی

این شکاف امنیتی یک «ابزار نوشتن» (Write Primitive) ایجاد می‌کند که به عامل اجازه می‌دهد فایل‌های پیکربندی در پروژه‌های هم‌سطح را تغییر دهد. زنجیره حمله به این ترتیب است:

  • آماده‌سازی: ایجاد یک پوشه پروژه با نامی حاوی .claude درون یک الگوی گلوب (مثلاً review-bundle**.claude**).
  • تزریق: نوشتن یک هوک SessionStart در فایل settings.local.json یک پروژه هم‌سطح از طریق همان جلسه سندباکس شده.
  • اجرا: بستن جلسه و باز کردن پروژه هم‌سطح به‌عنوان یک جلسه جدید.

از آنجا که هوک SessionStart دقیقاً در لحظه باز شدن جلسه اجرا می‌شود، دستورات پیش از احراز هویت، پیش از تولید خروجی توسط مدل و حتی پیش از فعال شدن ابزار Bash اجرا می‌شوند. این اتفاق حتی در صورتی رخ می‌دهد که دسترسی به Bash غیرفعال باشد و هیچ کلید API تنظیم نشده باشد.

CodeAnt AI این اکسپلویت را روی نسخه‌های ۲.۱.۲۱۴ و ۲.۱.۲۱۵ (macOS arm64) با چهار مورد تست متغیر اعتبارسنجی کرد:

  • review-bundle: عدم تطبیق $
    ightarrow$ مسدود شد
  • review-bundle**: تطبیق / تطبیق $
    ightarrow$ مسدود شد
  • review-bundle**.claude**: تطبیق / عدم تطبیق $
    ightarrow$ فایل تنظیمات ایجاد شد، هوک اجرا شد
  • **.claude**: تطبیق / عدم تطبیق $
    ightarrow$ فایل تنظیمات ایجاد شد، هوک اجرا شد

تحلیل ریشه‌ای: اغتشاش الگوی Glob در جعبه شنی macOS کد Claude (CVSS 7.7)

افشا و راهکارهای مقابله

نرخ موفقیت این دور زدن ۵۰٪ بود (۲ مورد از ۴ مورد)، که دقیقاً زمانی رخ داد که توکن .claude درون الگوی قابل تفسیر ظاهر شد. طبق مستندات، بازه زمانی افشا بسیار سریع بود: گزارش در ۱۸ ژوئیه ارسال شد، توسط Anthropic در ۲۰ ژوئیه تأیید شد و پاداش آن در ۴ اوت پرداخت گردید.

این یافته بخشی از یک الگوی گسترده‌تر به نام «سردرگمی نوع از طریق استنتاج رشته» است. این موضوع ثابت می‌کند که حدس زدن نوع یک مسیر بر اساس کاراکترهای آن، اساساً ناامن است. برای مهندسان امنیت، هرگونه روش اکتشافی مبتنی بر کاراکتر برای تفکیک الگوها از متون ساده، باید به‌عنوان یک باگ در پارسر (Parser) تلقی شود، نه یک مورد استثنایی.

برای کاهش این ریسک، تیم‌ها باید:

  • بررسی کنند که آیا لایه‌های سندباکس، مسیرها را به‌عنوان اشیاء اعتبارسنجی‌شده سیستم‌فایل می‌شناسند یا نوع آن‌ها را از روی رشته‌های خام حدس می‌زنند.
  • اطمینان حاصل کنند که تولید قوانین اجازه و ممنوعیت از منطق نرمال‌سازی مسیر یکسانی استفاده می‌کنند تا عدم تقارن حذف شود.
  • از به‌کارگیری روش‌های اکتشافی رشته‌ای برای تفکیک «الگو» از «متن ساده» پرهیز کنند.

کاربران باید اطلاعیه‌های امنیتی رسمی Anthropic را برای دریافت نسخه‌های اصلاح‌شده کلاینت macOS دنبال کنند تا ایزولاسیون محیط محلی آن‌ها تضمین شود.

گام بعدی شما

  • اگر از Claude Code استفاده می‌کنید، فوراً نسخه‌ی کلاینت خود را به آخرین آپدیت به‌روزرسانی کنید.
  • نام پوشه‌های پروژه‌های حساس خود را بررسی کنید تا حاوی کاراکترهای خاص مانند * یا ? نباشند.
  • در صورت توسعه ابزارهای عامل‌محور، از کتابخانه‌های استاندارد سیستم‌عامل برای Resolve کردن مسیرها به‌جای پردازش رشته‌ای استفاده کنید.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این نقص امنیتی اعتبار مدل‌های حفاظتی در ابزارهای AI-native را زیر سؤال می‌برد و ثابت می‌کند که اتوماسیون سطح بالا بدون سخت‌گیری در پارس کردن مسیرها، منجر به دسترسی غیرمجاز به کل سیستم می‌شود. تخصص تیم قرمز CodeAnt AI در اینجا نشان داد که ساده‌ترین کاراکترها می‌توانند پیچیده‌ترین سندباکس‌ها را دور بزنند.

تأثیر برای ایران

به‌دلیل محدودیت‌های دسترسی به سرویس‌های Anthropic برای کاربران ایرانی، اثر مستقیم این باگ بر جامعه توسعه‌دهندگان داخلی محدود است، اما درس‌های معماری آن برای کسانی که در حال ساخت عامل‌های محلی هستند حیاتی است.

·نگاه ما
تحریریه دات‌هوش

این آسیب‌پذیری نشان می‌دهد که حتی در پیشرفته‌ترین ابزارهای AI، خطاهای کلاسیک برنامه‌نویسی مانند Type Confusion همچنان می‌توانند حفاظ‌های امنیتی را به کلی 무طل کنند. تکیه بر استنتاج رشته‌ای به‌جای استفاده از اشیاء Canonical سیستم‌فایل، یک اشتباه بنیادین در طراحی است که در محیط‌های عامل‌محور (Agentic) به دلیل دسترسی مستقیم به فایل‌ها، ریسکی را هزار برابر می‌کند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.