اخیراً دو آسیبپذیری امنیتی جدی در محیط Sandbox مدل Codex شرکت OpenAI شناسایی شده است که به مخازن (Repositories) مخرب اجازه میداد تا دستورات را بهصورت مستقیم روی سیستم محلی توسعهدهندگان اجرا کنند. این دو نقص امنیتی که با نامهای Heapjack و Overpatch شناخته میشوند، در کمتر از یک هفته پس از گزارش، توسط OpenAI برطرف شدند.
تحلیل آسیبپذیری Heapjack
آسیبپذیری Heapjack که بحرانیتر از مورد دوم است، زمانی رخ میداد که یک توسعهدهنده به مخزنی تحت کنترل مهاجم در Codex دسترسی پیدا میکرد و از Agent مربوطه درباره محتویات آن سوال میپرسید. این نقص منجر به اجرای دستورات (Command Execution) بدون نیاز به تاییدیه یا هشدار میشد، حتی در حالی که Codex در حالت سختگیرانه Read-only Sandbox قرار داشت.
این مشکل در ابزار node_repl ریشه داشت. در این ساختار، کدهای مورد اعتماد OpenAI و کدهای غیرمورد اعتماد Agent در دو محیط مجزای V8 Virtual Machine اجرا میشدند. با این حال، هر دو محیط از یک V8 Isolate و Heap حافظه مشترک استفاده میکردند. مهاجم میتوانست با گرفتن یک Heap Snapshot، توکنهای احرازی (Authorization Tokens) را پیدا کرده و درخواستهای جعلی را به پروسس والد (Parent Process) ارسال کند. این امر امکان اجرای دستور open سیستم یا دسترسی به Unix Sockets (مانند Docker Daemon Socket) را فراهم میکرد.
تحلیل آسیبپذیری Overpatch
آسیبپذیری Overpatch در Codex CLI و ابزار ویرایش apply_patch شناسایی شد. در حالت عادی، این ابزار باید تغییرات را تنها به دایرکتوری فعال پروژه محدود کند. اما مشخص شد که apply_patch دسترسیهای نوشتن را بر اساس دایرکتوریهای والد ذکر شده در Patch تعیین میکند.
مهاجمان میتوانستند با گنجاندن مسیرهایی مانند /tmp در یک Patch، دسترسی نوشتن را به ریشه سیستم (Root Directory) گسترش دهند. در یک Proof of Concept (PoC)، این نقص برای افزودن دستورات مخرب به فایل .zshrc در دایرکتوری Home کاربر مورد استفاده قرار گرفت تا در هنگام باز شدن ترمینال، کد مهاجم خارج از محیط Sandbox اجرا شود.
راهکارهای مقابله و بهروزرسانی
شرکت OpenAI این آسیبپذیریها را در نسخههای زیر برطرف کرده است:
- Overpatch: رفع شده در نسخه 0.149.0 ابزار Codex CLI.
- Heapjack: رفع شده در بیلد 26.818.21641 اپلیکیشن Codex Desktop.
به تمامی توسعهدهندگانی که با مخازن شخص ثالث یا منابع غیرقابل اعتماد کار میکنند، توصیه میشود فوراً هر دو ابزار را بهروزرسانی کنند. این حادثه یادآور این نکته است که محیطهای Sandbox باید به عنوان ابزاری برای کاهش ریسک دیده شوند و نه تضمینی مطلق برای امنیت؛ لذا نباید صرفاً به حالت Read-only برای جلوگیری از اجرای کد (Code Execution) تکیه کرد.