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

محققان از OpenAI Codex sandbox فرار می کنند تا دستورات را روی میزبان اجرا کنند

بلیپینگ‌کامپیوتر۱۴۰۵ شهریور ۲۹, یکشنبه، ساعت ۱۵:۳۰حدود 4 دقیقه مطالعه

محققان به دو روش از جعبه شنی OpenAI Codex فرار کردند، یکی اجرای دستورات روی ماشین توسعه دهنده از حالت قفل شده آن. OpenAI هر دو را اصلاح کرده است. [...]

محققان امنیتی دو راه برای خروج از سندباکس OpenAI Codex پیدا کردند، یکی از آنها می‌تواند دستورات را روی ماشین توسعه‌دهنده از حالت قفل‌شده‌ترین حالت Codex اجرا کند، بدون درخواست تأیید و هیچ چیزی روی صفحه نمایش داده نشود.

به گفته اورن یومتوف از Accomplish AI، هر دو نقص در 12 آگوست به OpenAI گزارش شد و ظرف هشت روز برطرف شد.

جدی‌تر از این دو، که محققین آن را Heapjack می‌نامند، یک عمل معمولی را به اجرای کد از راه دور تبدیل می‌کند: مخزن شخص دیگری را در Codex باز کنید، از آن سؤالی در مورد کد بپرسید، و هرکسی که آن مخزن را نوشته است، اجرای دستور بدون سندباکس در رایانه شما دریافت می‌کند.

Codex عامل کد نویسی OpenAI است که به عنوان یک ابزار خط فرمان و یک برنامه دسکتاپ در دسترس است. مانند عوامل رقیب، اقدامات مدل را در داخل یک جعبه شنی اجرا می کند تا کد نامعتبر نتواند سیستم گسترده تر را لمس کند. هر دو فرار با شکست دادن آن مرز از درون کار می کنند.

تکنیک Heapjack، همانطور که در نوشتن Yomtov توضیح داده شد، مؤلفه‌ای به نام node_repl را هدف قرار می‌دهد که Codex Desktop آن را در فایل جهانی «~/.codex/config.toml» در زمان نصب می‌نویسد.

هیچ انتخابی وجود ندارد و هیچ تنظیمی برای خاموش کردن آن وجود ندارد، و از آنجایی که ورودی در پیکربندی مشترک زندگی می‌کند، کاربران ساده Codex CLI همان ابزار را بدون درخواست به ارث می‌برند.

node_repl یک فرآیند Node.js را اجرا می کند که دو زمینه اجرای جاوا اسکریپت مجزا را در خود نگه می دارد. یکی قابل اعتماد است و حاوی کد خود OpenAI است. دیگری غیرقابل اعتماد است و کد عامل را اجرا می کند. زمینه قابل اعتماد با ارائه یک توکن تصادفی که در هر اجرا تازه تولید می شود، ثابت می کند که قابل اعتماد است.

مشکل این است که هر دو زمینه در یک فرآیند Node زندگی می کنند و یک پشته حافظه مشترک دارند، بنابراین توکن فقط یک رشته است که در حافظه قرار دارد که طرف نامعتبر می تواند بخواند.

کد نامعتبر یک عکس فوری از پشته با "v8.getHeapSnapshot()" می گیرد و هر رشته ای را که به شکل یک UUID باشد امتحان می کند. یک حدس اشتباه "مجاز نیست" را برمی گرداند. یک توکن صحیح با آرگومان بد، یک خطای اعتبارسنجی واقعی را برمی‌گرداند که به مهاجم می‌گوید توکن درست است.

با توکن، کد غیرقابل اعتماد درخواست خود را روی همان لوله ای می نویسد که زمینه مورد اعتماد برای صحبت با یک فرآیند والد بومی و بدون جعبه ایمنی استفاده می کند.

والد نشانه را بررسی می کند، یک نشانه معتبر می بیند و کار را انجام می دهد. اثبات مفهوم از دستور باز سیستم برای راه‌اندازی یک برنامه خارج از درخت فرآیند Codex استفاده کرد. همین دسترسی به هر سوکت یونیکس می رسد، یک سوکت دایمون داکر هدف آشکار است و ابزاری برای ویرایش فایل پیکربندی جهانی.

همه این‌ها در حالت فقط خواندنی، سخت‌ترین حالت sandbox، که در آن عامل اصلا قرار نیست چیزی بنویسد اجرا می‌شود.

نقص دوم، Overpatch، در کدکس CLI منبع باز قرار دارد. در حالت نوشتن فضای کاری، عامل فقط می‌تواند در داخل پوشه پروژه بنویسد و دستور پوسته‌ای که هدفش دایرکتوری اصلی است رد می‌شود.

محققان ابزار پچ خود Codex، application_patch را به دست آوردند تا به هر حال در آنجا بنویسند.

این ابزار به پوشه والد هر مسیری که در یک پچ نامگذاری شده است دسترسی نوشتن می دهد. '/tmp' را نامگذاری کنید و به ریشه دیسک دسترسی نوشتن می دهد.

اکسپلویت کار از یک پچ با دو تغییر استفاده می کند: یکی که '/tmp' را نامگذاری می کند و هیچ کار مفیدی جز گسترش مجوز انجام نمی دهد، و دیگری که یک خط به '.zshrc' از طریق یک پیوند نمادین به فهرست اصلی اضافه می کند.

اولین تغییر را حذف کنید و نوشتن رد می شود. با آن، ترمینال بعدی که توسعه‌دهنده باز می‌کند، خط مهاجم را بدون سندباکس اجرا می‌کند.

هر دو اشکال یک شکل مشترک دارند: مکانیسم اجرایی در درون چیزی که قرار بود اعمال شود زندگی می کرد. apply_patch مجوزهای خود را از ورودی ارائه شده توسط مهاجم بدست آورده است. node_repl رمز جداسازی کدهای قابل اعتماد از نامعتبر را در همان حافظه کد نامعتبر نگه می دارد.

در هر مورد به جعبه شنی از داخل گفته شد که اجازه دهد چیزی از آن عبور کند.

کلاس اشکال جدید نیست. در ژوئیه 2026، محققان Pillar Security همان ایده را در Cursor، Codex، Gemini CLI و Antigravity Google نشان دادند، جایی که عاملی که در جعبه ماسه‌بازی خود باقی می‌ماند، فایلی را می‌نویسد که ابزاری قابل اعتماد در خارج از جعبه شنی بعدا اجرا می‌شود.

در واکنش به پست Yomtov در X، یکی از کامنت‌گذاران نوشت که "زمینه‌های V8، جهانی‌ها را جدا می‌کنند، نه حافظه، بنابراین جعبه شنی واقعا وعده‌ای بود که پشته‌ها هرگز با آن موافقت نکردند." دیگری مرز اعتماد را "تقسیم کننده اتاق" نامید. رفتار پیش‌فرض فعال شده مورد بررسی دقیق خود قرار گرفت، با این سوال که چرا اصلا یک توکن ممتاز از جاوا اسکریپت نامعتبر قابل دسترسی است.

به گفته Accomplish، OpenAI Heapjack را در Codex Desktop Build 26.818.21641 و Overpatch را در Codex CLI 0.149.0 ثابت کرد.

کاربران باید به آن نسخه ها یا نسخه های جدیدتر به روز شوند. یومتوف به OpenAI اعتبار داد که هر دو مشکل را ظرف هشت روز پس از گزارش خود حل کرد.

BleepingComputer قبل از انتشار برای اظهار نظر با OpenAI تماس گرفت.

به میکو هیپونن و رهبران امنیتی NFL، CHANEL و Atlassian بپیوندید تا در یک نشست دیجیتالی دو ساعته در مورد اینکه حملات با سرعت هوش مصنوعی چه تغییراتی می‌کنند، مدافعان چه کارهایی را باید انجام ندهند و چگونه اعتبار، تصمیم‌گیری، اصلاح و تأیید مجدد با سرعت ماشین را انجام دهند، بپیوندید.

OpenAI اعتراف می کند که حادثه ربودن ویکی هوش مصنوعی سرکش را فاش نکرده است

مکان نما، Codex، Gemini CLI، Antigravity که توسط جعبه شنی فرار می شود

OpenAI موارد بیشتری از انجام اقدامات غیرمجاز توسط عوامل هوش مصنوعی را شرح می دهد

آنتروپیک از کلود می خواهد که حساب بانکی و داده های مالی شما را تجزیه و تحلیل کند

OpenAI می گوید قطع شدن ChatGPT باعث ایجاد خطا در تولید تصویر می شود

خواندن متن کامل در بلیپینگ‌کامپیوتربه زبان اصلی، در سایت ناشر باز می‌شود
متن اصلی (انگلیسی)

Researchers escape OpenAI Codex sandbox to run commands on host

Researchers escaped OpenAI's Codex sandbox two ways, one running commands on a developer's machine from its most locked-down mode. OpenAI has patched both. [...]

همه‌ی اخبار فناوری