آخرین اخبار
همهٔ اخبار
اکسپلویت‌ها گزارش بحرانیت ۸/۱۰

فرار از Sandbox در OpenAI Codex: اجرای دستورات Host از طریق آسیب‌پذیری‌های Heapjack و Overpatch

فرار از Sandbox در OpenAI Codex: اجرای دستورات Host از طریق آسیب‌پذیری‌های Heapjack و Overpatch

پژوهشگران امنیتی دو روش مجزا برای فرار از محیط ایزوله یا Sandbox در ابزار OpenAI Codex کشف کرده‌اند. یکی از این آسیب‌پذیری‌ها حتی در سخت‌گیرانه‌ترین حالت دسترسی (Locked-down mode)، امکان اجرای دستورات روی سیستم میزبان (Host) را بدون نیاز به تایید کاربر یا نمایش هرگونه هشدار فراهم می‌کرد.

تحلیل آسیب‌پذیری Heapjack

جدی‌ترین مورد که Heapjack نامیده شده، یک مسیر برای رسیدن به Remote Code Execution (RCE) ایجاد می‌کند. در این سناریو، اگر کاربر یک مخزن (Repository) کد متعلق به شخص دیگر را در Codex باز کرده و درباره آن سوال بپرسد، نویسنده آن مخزن می‌تواند دستورات خود را خارج از Sandbox روی سیستم کاربر اجرا کند.

این تکنیک مؤلفه‌ای به نام node_repl را هدف قرار می‌دهد. در این ساختار، یک پروسه Node.js دو محیط اجرای JavaScript مجزا دارد: یکی Trusted (شامل کدهای OpenAI) و دیگری Untrusted (کدهای Agent). برای احراز هویت، محیط Trusted از یک توکن تصادفی استفاده می‌کند. با این حال، چون هر دو محیط در یک Heap حافظه مشترک قرار دارند، کد Untrusted می‌تواند با استفاده از متد v8.getHeapSnapshot()، حافظه را جستجو کرده و توکن مورد نظر را استخراج کند.

پس از به‌دست آوردن توکن، مهاجم می‌تواند درخواست‌های خود را مستقیماً به پروسه Parent (که خارج از Sandbox است) ارسال کند. این دسترسی اجازه می‌دهد تا دستوراتی مانند open اجرا شده یا به Unix socketها (مانند Docker daemon) دسترسی پیدا کند.

تحلیل آسیب‌پذیری Overpatch

آسیب‌پذیری دوم که Overpatch نام دارد، در نسخه Open-source ابزار Codex CLI یافت شده است. در حالت Workspace-write، ابزار تنها اجازه نوشتن در پوشه پروژه را دارد و دسترسی به Home directory مسدود است. با این حال، پژوهشگران توانستند از ابزار apply_patch برای دور زدن این محدودیت استفاده کنند.

با ارسال یک Patch خاص که مسیر /tmp را هدف قرار می‌دهد، دسترسی‌های نوشتن در ریشه دیسک (Root) گسترش می‌یابد. سپس مهاجم می‌تواند از طریق یک Symlink، خطی مخرب به فایل .zshrc در دایرکتوری Home اضافه کند تا در اولین اجرای ترمینال توسط توسعه‌دهنده، کد مهاجم به صورت Unsandboxed اجرا شود.

نتیجه‌گیری و رفع مشکل

هر دو مورد نشان‌دهنده یک نقص ساختاری هستند: مکانیسم‌های نظارتی (Enforcement) در همان محیطی قرار داشتند که باید آن‌ها را کنترل می‌کردند. OpenAI این آسیب‌پذیری‌ها را در نسخه‌های زیر برطرف کرده است:

  • Codex Desktop: Build 26.818.21641
  • Codex CLI: Version 0.149.0

به تمامی کاربران توصیه می‌شود برای جلوگیری از حملات RCE، ابزارهای خود را به آخرین نسخه به‌روزرسانی کنند.