تصور کنید ابزاری که برای مدیریت کدهای شما طراحی شده، ناگهان کل سیستمعامل macOS شما را در معرض خطر قرار دهد. یک نقص امنیتی شدید در Claude Code اکنون اجازه میدهد مهاجمان بدون نیاز به احراز هویت، دستورات را خارج از محیط ایزوله یا همان سندباکس (Sandbox) اجرا کنند.
این آسیبپذیری که در ۱۹ اوت ۲۰۲۶ افشا شد، امتیاز ۷.۷ در معیار CVSS 4.0 دریافت کرده است. طبق گزارشهای منتشر شده، این چهارمین مورد شناساییشده با شدت بالا برای این ابزار در سال جاری است.
این اتفاق در حالی رخ میدهد که توسعهدهندگان بهطور گسترده در حال ادغام عاملهای (Agents) هوش مصنوعی در سیستمفایلهای محلی خود هستند. همانطور که در تحلیل قبلی ما دربارهی نقش عاملهای هوش مصنوعی در تسریع تستهای پایتون اشاره کردیم، این کشف جدید توازن شکننده میان خودمختاری عامل و امنیت سیستم را به چالش میکشد. به زبان ساده، «حصار» امنیتی این ابزار دور پروژه شما، در صورت نامگذاری خاص یک پوشه، میتواند دری را به کل کامپیوتر شما باز کند.
محدوده سندباکس و منشأ خطا
سندباکس Claude Code در macOS بهگونهای طراحی شده که دسترسیهای نوشتن در دایرکتوری فعلی پروژه را بهطور خودکار تأیید کند. برای تعیین محدوده این مجوزها، مولد سیاستها مسیر پوشه پروژه را برای یافتن نحو گلوب (Glob) بررسی میکند؛ یعنی کاراکترهایی مثل * و ? که بهطور قراردادی به معنای «تطبیق با هر چیزی» هستند، نه یک رشته متنی ساده.
به نقل از تحلیل فنی CodeAnt AI، ریشه این مشکل در نبود مکانیزمی برای تشخیص تفاوت میان یک «الگوی گلوب عمدی» و یک «نام پوشه واقعی» است که صرفاً شامل این کاراکترهاست. در واقع، هیچ فرآیند نقلقول یا تفکیک نوعی قبل از تبدیل مسیر به یک قانون تطبیقی صورت نمیگیرد.
این باگ در واقع یک «تفسیر مجدد لیترال به الگو» است. سیستم بهجای اینکه مسیر را بهعنوان یک شیء واقعی در سیستمفایل بشناسد، نوع آن را صرفاً از روی کاراکترهای موجود در نام پوشه حدس میزند.

سازوکار شکست امنیتی
وقتی یک پوشه پروژه بهگونهای تغییر نام یابد که شامل ستاره باشد — مثلاً review-bundle**.claude** — سیستم آن را بهجای یک رشته متنی، بهعنوان یک الگوی Wildcard تفسیر میکند. در نتیجه، قانون دسترسی از «فقط این دایرکتوری» به الگویی شبیه به این تبدیل میشود: allow_write: /parent/review-bundle*/.claude*.
این وضعیت یک عدم تقارن بحرانی میان قوانین «اجازه» (Allow) و «ممنوعیت» (Deny) ایجاد میکند:
- قوانین اجازه: محدوده دسترسی از یک پوشه تک را به هر پوشه همسطحی که با همان پیشوند شروع شود، گسترش میدهد.
- قوانین ممنوعیت: Claude Code یک قانون ممنوعیت مجزا برای محافظت از فایل
settings.local.jsonدر پوشه.claudeایجاد میکند. اما چون منطق تطبیق در قوانین ممنوعیت بهطور خودکار گسترش نمییابد، مسیرهای همسطح در قانون «اجازه» پذیرفته شده اما در قانون «ممنوعیت» نادیده گرفته میشوند.

جزئیات بهرهبرداری و اعتبارسنجی
این شکاف امنیتی یک «ابزار نوشتن» (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$ فایل تنظیمات ایجاد شد، هوک اجرا شد

افشا و راهکارهای مقابله
نرخ موفقیت این دور زدن ۵۰٪ بود (۲ مورد از ۴ مورد)، که دقیقاً زمانی رخ داد که توکن .claude درون الگوی قابل تفسیر ظاهر شد. طبق مستندات، بازه زمانی افشا بسیار سریع بود: گزارش در ۱۸ ژوئیه ارسال شد، توسط Anthropic در ۲۰ ژوئیه تأیید شد و پاداش آن در ۴ اوت پرداخت گردید.
این یافته بخشی از یک الگوی گستردهتر به نام «سردرگمی نوع از طریق استنتاج رشته» است. این موضوع ثابت میکند که حدس زدن نوع یک مسیر بر اساس کاراکترهای آن، اساساً ناامن است. برای مهندسان امنیت، هرگونه روش اکتشافی مبتنی بر کاراکتر برای تفکیک الگوها از متون ساده، باید بهعنوان یک باگ در پارسر (Parser) تلقی شود، نه یک مورد استثنایی.
برای کاهش این ریسک، تیمها باید:
- بررسی کنند که آیا لایههای سندباکس، مسیرها را بهعنوان اشیاء اعتبارسنجیشده سیستمفایل میشناسند یا نوع آنها را از روی رشتههای خام حدس میزنند.
- اطمینان حاصل کنند که تولید قوانین اجازه و ممنوعیت از منطق نرمالسازی مسیر یکسانی استفاده میکنند تا عدم تقارن حذف شود.
- از بهکارگیری روشهای اکتشافی رشتهای برای تفکیک «الگو» از «متن ساده» پرهیز کنند.
کاربران باید اطلاعیههای امنیتی رسمی Anthropic را برای دریافت نسخههای اصلاحشده کلاینت macOS دنبال کنند تا ایزولاسیون محیط محلی آنها تضمین شود.
گام بعدی شما
- اگر از Claude Code استفاده میکنید، فوراً نسخهی کلاینت خود را به آخرین آپدیت بهروزرسانی کنید.
- نام پوشههای پروژههای حساس خود را بررسی کنید تا حاوی کاراکترهای خاص مانند
*یا?نباشند. - در صورت توسعه ابزارهای عاملمحور، از کتابخانههای استاندارد سیستمعامل برای Resolve کردن مسیرها بهجای پردازش رشتهای استفاده کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو