دو راه فرار از سندباکس Codex
خلاصهٔ کاملتر
تیم Accomplish نوشته دو راه خروج از سندباکس OpenAI Codex پیدا کرده و ۱۲ آگوست ۲۰۲۶ به OpenAI گزارش داده؛ هر دو تو کمتر از هشت روز وصله شدن. سندباکس اینجا یعنی همون قفسی که ایجنت کدنویس توش کار میکنه و فرض اینه که بیرون اون نمیتونه چیزی بنویسه یا اجرا کنه. اسم دو باگ رو گذاشتن Overpatch و Heapjack.
Overpatch سراغ apply_patch میره، یعنی ابزاری که هارنس Codex برای ویرایش فایل به ایجنت میده. اشکالش این بود که به پوشهی والد هر مسیری که تو پچ اسمش میاومد اجازهی نوشتن میداد. پس کافی بود پچ یه تغییر بیاثر روی یه مسیر سطحبالا داشته باشه تا دامنهی مجوز باز شه، و تغییر دوم از راه یه symlink فایل راهاندازی شل کاربر مثل .zshrc رو دست بزنه. اون خط بیاثر رو که برمیداشتی، نوشتن رد میشد.
باگ دوم شکل تمیزتری داره. Codex Desktop موقع نصب یه سرور MCP به اسم node_repl رو تو کانفیگ جهانی مینویسه، بدون اینکه گزینهای برای خاموش کردنش باشه. این ابزار یه برنامهی Rust بدون سندباکسه که یه پروسهی Node داخل سندباکس اجرا میکنه. تو همون یه پروسه دو کانتکست جدا از ماژول vm ساخته میشه: معتمد که توکن تصادفی رو داره و نامعتمد که نداره. ولی هیپ یکیه، یعنی همون حافظهای که رشتههای JavaScript توش زندهان.
پس کد نامعتمد از هیپ اسنپشات میگیره و رشتههای شبیه UUID رو یکییکی امتحان میکنه تا توکن درست رو پیدا کنه. بعد درخواست خودش رو با همون فرمت روی پایپ مشترک مینویسه و والد Rust اجراش میکنه: باز کردن اپلیکیشن بیرون از درخت پروسهی Codex، وصل شدن به سوکتهای یونیکس (سوکت دیمن داکر نمونهی واضحشه) و ویرایش کانفیگ جهانی. همهش هم تو حالت read-only و بدون هیچ درخواست تأییدی.
به گفتهی نویسندهها ریشهی هر دو باگ یکیه: چیزی که باید محدودیت رو اعمال کنه، خودش داخل همون چیزی نشسته بود که باید محدود میشد. apply_patch مجوز خودش رو از ورودیای که بهش داده شده درمیآورد و node_repl رمز جداکننده رو تو حافظهی کد نامعتمد نگه میداشت. راهی که خودشون انتخاب کردن اینه که کل ایجنت رو داخل یه VM اجرا کنن و اعتبارنامههای واقعی هیچوقت وارد مهمان نشن.
نکات کلیدی:
- هر دو باگ ۱۲ آگوست ۲۰۲۶ گزارش و در کمتر از ۸ روز وصله شدن
- Overpatch: apply_patch به پوشهی والد هر مسیر پچ اجازهی نوشتن میداد
- Heapjack: توکن اعتماد تو هیپ مشترک با کد نامعتمد بود و از اسنپشات هیپ پیدا میشد
- حملهی دوم تو حالت read-only و بدون هیچ پرامپت تأیید کار میکرد
- node_repl موقع نصب Codex Desktop به کانفیگ جهانی اضافه میشه و گزینهی خاموش کردن نداره




