تخطى إلى المحتوى الرئيسي

OpenAI Codex: ثغرتان سمحتا بتنفيذ تعليمات برمجية عن بعد

فريق جليتش نيوز
21 سبتمبر0 مشاهدة5 دقائق
OpenAI Codex: ثغرتان سمحتا بتنفيذ تعليمات برمجية عن بعد

مقدمة تحليلية

تجاوز باحثون أمنيون صندوق حماية OpenAI Codex بنجاح، مما أتاح تنفيذ أوامر على الجهاز المضيف للمطورين. كشفت الاكتشافات، التي نُشرت في 20 سبتمبر 2026، عن ثغرتين خطيرتين تُعرفان باسم Heapjack و Overpatch. إحداهما كانت قادرة على تشغيل تعليمات برمجية على آلة المطور من وضع Codex الأكثر تقييداً دون أي مطالبات موافقة أو مؤشرات مرئية على الشاشة. تم الإبلاغ عن كلا العيبين إلى OpenAI في 12 أغسطس، ووفقاً لأورن يومتوف من Accomplish AI، تم إصلاحهما خلال ثمانية أيام.

تشكل هذه الاكتشافات تهديداً مباشراً للمطورين الذين يستخدمون Codex، حيث يمكن أن يؤدي مجرد فتح مستودع طرف ثالث وطرح سؤال حوله إلى تنفيذ تعليمات برمجية عن بعد غير مصرح بها على نظامهم.

التحليل التقني

استغل الباحثون نقطتين ضعف جوهريتين لتجاوز حدود صندوق حماية OpenAI Codex. يرتكز الخطأ الأمني الأول، Heapjack، على آلية تحويل إجراء روتيني إلى تنفيذ تعليمات برمجية عن بعد.

Heapjack: استغلال الذاكرة المشتركة

تستهدف تقنية Heapjack المكون `node_repl` الذي يكتبه Codex Desktop في ملف `~/.codex/config.toml` العالمي أثناء التثبيت. لا يتطلب هذا السلوك موافقة صريحة ولا يوجد إعداد لإيقافه، مما يعني أن مستخدمي Codex CLI العاديين يرثون نفس الأداة دون استشارتهم. يقوم `node_repl` بتشغيل عملية Node.js واحدة تحتوي على سياقين منفصلين لتنفيذ JavaScript: أحدهما موثوق به ويحتوي على رمز OpenAI، والآخر غير موثوق به لتشغيل رمز الوكيل. يثبت السياق الموثوق به هويته بتقديم رمز مميز عشوائي يتم إنشاؤه حديثاً مع كل تشغيل.

تكمن المشكلة في أن كلا السياقين يعيشان في عملية Node واحدة ويتشاركان كومة ذاكرة (memory heap) واحدة. هذا يجعل الرمز المميز مجرد سلسلة موجودة في الذاكرة يمكن للجانب غير الموثوق به قراءتها. يأخذ الرمز غير الموثوق به لقطة من الكومة باستخدام `v8.getHeapSnapshot` ويجرب كل سلسلة على شكل UUID. تخمين خاطئ يعيد "not authorized"، بينما الرمز الصحيح مع وسيطة سيئة يعيد خطأ تحقق حقيقي، مما يؤكد للمهاجم صحة الرمز المميز.

باستخدام الرمز، يكتب الرمز غير الموثوق به طلبه الخاص على نفس الأنبوب الذي يستخدمه السياق الموثوق به للتحدث إلى عملية أصلية غير محصورة. تتحقق العملية الأصلية من الرمز، وتراه صالحاً، وتنفذ العمل. استخدم إثبات المفهوم أمر `open` الخاص بالنظام لتشغيل تطبيق خارج شجرة عمليات Codex تماماً. يمتد الوصول نفسه إلى أي مقبس Unix، حيث يكون مقبس Docker daemon هدفاً واضحاً، وأداة لتعديل ملف التكوين العام.

تعمل كل هذه الإجراءات في وضع "read-only"، وهو وضع صندوق الحماية الأكثر صرامة، حيث لا يُفترض أن يكتب الوكيل أي شيء على الإطلاق.

Overpatch: تحايل على أذونات التعديل

تكمن الثغرة الثانية، Overpatch، في Codex CLI مفتوح المصدر. في وضع `workspace-write`، لا يُسمح للوكيل بالكتابة إلا داخل مجلد المشروع، ويتم رفض أمر shell يستهدف الدليل الرئيسي. تمكن الباحثون من جعل أداة تصحيح Codex الخاصة، `apply_patch`، تكتب هناك على أي حال. تمنح الأداة حق الوصول للكتابة إلى المجلد الأصل لكل مسار مذكور في التصحيح. تسمية `/tmp` تمنح حق الوصول للكتابة إلى جذر القرص. يستغل التصحيح العامل تغييرين: أحدهما يسمى `/tmp` ولا يقوم بأي شيء مفيد باستثناء توسيع الإذن، والآخر يضيف سطراً إلى `.zshrc` عبر رابط رمزي إلى الدليل الرئيسي. إزالة التغيير الأول يؤدي إلى رفض الكتابة. بوجوده، تقوم المحطة الطرفية التالية التي يفتحها المطور بتشغيل سطر المهاجم بدون صندوق حماية.

تشترك كلتا الثغرتين في نفس الخطأ الأساسي: كانت آلية الإنفاذ تعيش داخل الشيء الذي كان من المفترض أن تفرضه. `apply_patch` حددت أذوناتها الخاصة من مدخلات المهاجم. `node_repl` أبقت السر الذي يفصل الرمز الموثوق به عن غير الموثوق به في نفس ذاكرة الرمز غير الموثوق به. في كلتا الحالتين، تم إخبار صندوق الحماية، من الداخل، بالسماح بشيء ما بالمرور.

السياق وتأثير السوق

لا تعد هذه الفئة من الأخطاء جديدة. ففي يوليو 2026، أظهر باحثو Pillar Security نفس الفكرة عبر Cursor و Codex و Gemini CLI و Antigravity من Google، حيث يقوم وكيل يبقى داخل صندوق الحماية الخاص به بكتابة ملف تقوم أداة موثوقة خارج صندوق الحماية بتشغيله لاحقاً. هذه الحادثة لا تخص OpenAI وحدها، بل تعكس تحدياً أمنياً أوسع نطاقاً يواجهه وكلاء الذكاء الاصطناعي. رداً على منشور يومتوف على X، كتب أحد المعلقين أن "سياقات V8 تعزل المتغيرات العامة، وليس الذاكرة، لذا فإن صندوق الحماية كان وعداً لم توافق عليه الكومة قط". وصف آخر حدود الثقة بأنها "قاطع غرفة". أثار السلوك الافتراضي المفعّل انتقادات خاصة، حيث تساءل أحدهم لماذا كان الرمز المميز المتميز قابلاً للوصول من JavaScript غير الموثوق به على الإطلاق.

تأتي هذه الثغرات في وقت تتزايد فيه التساؤلات حول مدى أمان الأنظمة التي تعتمد بشكل كبير على التعليمات البرمجية التي يولدها الذكاء الاصطناعي. كشفت مدونة OpenAI نفسها، في `openai.com/index/harness-engineering/`، عن تجربة داخلية لمنتج برمجي تم إنشاؤه "بـ 0 سطر من التعليمات البرمجية المكتوبة يدوياً"، حيث تم دمج حوالي 1,500 طلب سحب (pull requests) بواسطة ثلاثة مهندسين فقط بمتوسط إنتاجية 3.5 طلب سحب لكل مهندس في اليوم. كما افتخرت Anthropic بأن `80%` من كود Claude Code تم كتابته بواسطة Claude، بحسب تقارير في Indian Express و Reddit. هذه الأرقام، على الرغم من أنها لا تربط بشكل مباشر سبب الثغرات في Codex بكود مولد بواسطة الذكاء الاصطناعي، إلا أنها تسلط الضوء على تزايد الاعتماد على الذكاء الاصطناعي في كتابة تعليمات برمجية حرجة، بما في ذلك المكونات الأمنية أو تلك التي تديرها. قد تكون هذه المنهجية، في غياب تدقيق بشري صارم وتصميم معماري يركز على الفصل الحقيقي للثقة، وراء المشاكل المتكررة في تجاوز صندوق الحماية.

تحليل ورأي المحرر

رؤية Glitch4Techs

إن اكتشاف ثغرتي Heapjack و Overpatch في OpenAI Codex ليس مجرد إصلاح فوري لعيوب برمجية، بل هو مؤشر على فشل معماري عميق في تصميم آليات الأمان لوكلاء الذكاء الاصطناعي. حقيقة أن آليتي الإنفاذ كانتا "تعيشان داخل الشيء الذي كان من المفترض أن تفرضه"، كما يتضح في مشكلة الذاكرة المشتركة لـ `node_repl`، تؤكد أن الحدود الأمنية التي تدعيها هذه الأنظمة هي في أحسن الأحوال سطحية. هذا النمط من الثغرات، حيث يتم إقناع صندوق الحماية من الداخل بالسماح بالوصول، لا يمكن معالجته بالترقيعات المتكررة. بل يتطلب إعادة تقييم جذرية لكيفية بناء آليات الأمان في الوكلاء المعتمدين على الذكاء الاصطناعي.

الاعتماد على "وعود" أمنية لا تدعمها هندسة معمارية قوية، خاصة في بيئة يتم فيها توليد جزء كبير من التعليمات البرمجية بواسطة الذكاء الاصطناعي نفسه، هو وصفة للانكشاف المستمر.

أعجبك المقال؟ شاركه

النشرة البريدية

كن أول من يعرف بمستقبل التقنية

أهم الأخبار والتحليلات التقنية مباشرة في بريدك.

مقالات قد تهمك