CVE-2026-28207 in Zen-C
الملخص
بحسب VulDB • 28/05/2026
Zen C هي لغة برمجة أنظمة تُترجم إلى كود GNU C/C11 قابل للقراءة البشرية. قبل الإصدار 0.4.2، كانت هناك ثغرة حقن أوامر (CWE-78) في مترجم Zen C تتيح للمهاجمين المحليين تنفيذ أوامر قذيفة (shell) عشوائية عن طريق توفير اسم ملف إخراج مُعدّ خصيصاً عبر وسيط سطر الأوامر `-o`. كانت الثغرة موجودة في منطق التطبيق الرئيسي (تحديداً في `src/main.c`)، حيث كان المترجم يبني سلسلة أوامر قذيفة لاستدعاء مترجم C الخلفي. تم بناء هذه السلسلة عن طريق دمج وسائط مختلفة، بما في ذلك اسم ملف الإخراج الذي يتحكم فيه المستخدم، ثم تم تنفيذها باستخدام دالة `system()`. ونظراً لأن `system()` تستدعي قذيفة لتفسير وتنفيذ الأمر، فإن أحرف التحكم الخاصة بالقذيفة الموجودة في اسم ملف الإخراج كانت تُفسر من قبل القذيفة، مما أدى إلى تنفيذ أوامر عشوائية. يمكن للمهاجم الذي يستطيع التأثير على وسائط سطر الأوامر الممررة إلى مترجم `zc` (مثل ذلك عبر سكريبت بناء أو تكوين خط أنابيب CI/CD) تنفيذ أوامر عشوائية بصلاحيات المستخدم الذي يشغل المترجم. تم إصلاح الثغرة في الإصدار 0.4.2 بإزالة استدعاءات `system()`، وتنفيذ `ArgList`، ومعالجة الوسائط الداخلية. يُنصح المستخدمين بالتحديث إلى Zen C الإصدار v0.4.2 أو أحدث.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.