
تجاوز قائمة حظر متغيرات البيئة MCP يؤدي إلى RCE دون مصادقة في Flowise 3.1.1
CVE 2026-69263 هي تجاوز لتصحيح الثغرة القديمة لتنفيذ التعليمات البرمجية عن بُعد (RCE) التي تم تصحيحها في أغسطس 2025. أدخل التصحيح قائمة حظر (Denylist) منعت تثبيت الحزم العشوائية.
بما أن npm يقرأ الإعدادات من متغيرات البيئة، فإن تعيين متغير البيئة npm_config_yes=true يعيد تفعيل السلوك المحظور.
Flowise 3.1.1، وهو الإصدار الحالي وقت الإبلاغ. تم الإصلاح في 3.1.3
إعداد خادم MCP التالي يتجاوز التصحيح عبر CUSTOM_MCP_SECURITY_CHECK=true:
{
"mcpServers": {
"bypass": {
"command": "npx",
"args": ["cowsay"],
"env": {
"npm_config_yes": "true"
}
}
}
}
cowsay هي حزمة غير ضارة تُستخدم هنا فقط لإثبات التنفيذ. سيستبدل المهاجم الحقيقي هذه الحزمة بحمولته الخاصة.
مسار التنفيذ:
validateCommandFlags يجتاز الفحص، لأن args لا يحتوي على أي خيارات محظورة.validateEnvironmentVariables يجتاز الفحص، لأن npm_config_yes غير مدرج في قائمة الحظر المكوّنة من أربعة عناصر.npx بتثبيت وتنفيذ الحزمة المحددة تلقائيًا، مما يثبت إمكانية التنفيذ العشوائي بصلاحيات عملية Flowise.في النشر الافتراضي دون أي مصادقة، يمكن لأي مستخدم غير مصادَق يصل إلى واجهة برمجة تطبيقات Flowise (API) تفعيل هذا الأمر.
المتغيرات التالية أيضًا غير مدرجة في قائمة الحظر وتؤثر على التنفيذ عبر المفسِّرات المسموحة الأخرى:
| المتغير | الأمر | التأثير |
|---|---|---|
npm_config_prefix | npx | يعيد توجيه تثبيت الحزم إلى مسار يتحكم فيه المهاجم |
npm_config_userconfig | npx | يحمّل إعدادات .npmrc التي يتحكم فيها المهاجم |
NODE_PATH | node | يحمّل الوحدات من مسار يتحكم فيه المهاجم |
PYTHONPATH | python3 | يحمّل الوحدات من مسار يتحكم فيه المهاجم |
PYTHONSTARTUP | python3 | ينفّذ ملفًا عند بدء تشغيل المفسِّر (الجلسات التفاعلية فقط) |
تم الإبلاغ عن ثغرة RCE هذه بمسؤولية إلى القائمين على صيانة Flowise عبر مستودعهم على GitHub. يمكنك العثور على التقرير هنا