ورد تحذيران ضد MetaGPT، أحد أكثر أطر العمل متعددة الوكلاء استشهادًا، والذي يضم 70,148 نجمة على GitHub. يشير CVE-2026-79408 إلى حقن أوامر نظام التشغيل عبر وسيطة path في RepoParser.rebuild_class_views() داخل metagpt/repo_parser.py. أما CVE-2026-79407 فيتعلق باجتياز المسار عبر القيمة FILE_NAME في metagpt/ext/spo/utils/load.py، بما يتيح قراءة أي ملف. وكلاهما مُسجّل ضد الإصدار 0.8.1.

ما الذي تعنيه عبارة "تؤثر في 0.8.1"، ولماذا هي غير صحيحة هنا

عادةً ما تعني مجموعة إصدارات في تحذير أن هناك ترقية متاحة. لكن هذا ليس الحال هنا. لا يوجد حقل لإصدار مصحّح في أي من السجلين. ولا يزال الكود المعرّض للخطر موجودًا في الفرع الافتراضي: إذ لا يزال repo_parser.py ينشئ f"pyreverse {str(path)} -o dot" ويمرره إلى subprocess.run(..., shell=True)، كما لا يزال load.py يضمّ FILE_NAME إلى مسار إعدادات من دون أي تطبيع. أما الإصدار 0.8.2، وهو أحدث إصدار، فلا يصلح أيًّا منهما — وقد نُشر في مارس 2025، بينما كانت آخر دفعة إلى المستودع في 21 يناير 2026. المستودع ليس مؤرشفًا؛ إنه فقط لا يتحرك.

مشكلة أداة الفحص

لا يحمل أي من التحذيرين درجة CVSS، سواء من الجهة الناشرة أو من NVD؛ وتُسجَّل الخطورة على أنها غير معروفة. تضبط معظم أدوات فحص الاعتمادات حدًا أدنى للخطورة — مرتفع فما فوق، أو متوسط فما فوق. ولا تتجاوز أي إدخال بلا درجة هذا الحد. وفي كثير من خطوط المعالجة لن يثير هذان التحذيران أي تنبيه على الإطلاق، وهو الفرق العملي بين ثغرة مُعلنة وثغرة مرئية.

أين تقع البدائية

يقع مسار حقن الأوامر داخل تحليل المستودعات — أي الدالة التي يستدعيها الوكيل على قاعدة شيفرة يزوّده بها المستخدم. وهذا بالضبط السطح الذي يوجّه إليه وكيل البرمجة الذاتي مدخلات غير موثوقة بحكم التصميم.

النقطة البنيوية

تفترض التحذيرات وجود جهة صيانة في الطرف الآخر. وعندما يتوقف مشروع يعتمد عليه كثيرون عن قبول الالتزامات البرمجية، فإن الإفصاح ينتج سجلًا عامًا دائمًا عن خلل لا يمكن إصلاحه، وتنتقل العبء بالكامل إلى من قام بتضمينه — ومعظمهم لن يروا التنبيه أبدًا.