CVE-2026-0770: مدقق الشيفرة في Langflow ينفذ شيفرة Python عشوائية

نشر باحث تحليلاً للثغرة CVE-2026-0770 في Langflow، وهي منصة لبناء وكلاء الذكاء الاصطناعي بصريًا. تسمح الثغرة لمهاجم غير مصادق عليه بتنفيذ شيفرة عشوائية على الخادم بصلاحيات root. حصلت الثغرة على درجة CVSS قدرها 9.8، وأُضيفت إلى كتالوج Known Exploited Vulnerabilities (KEV)، وتؤثر في إصدارات Langflow حتى الإصدار 1.7.3 включительно..
ما المشكلة؟ تقوم الدالة validate_code() في src/backend/base/langflow/utils/validate.py بتحليل الشيفرة المقدمة إلى AST، وتجميع تعريفات الدوال، وتنفيذ الشيفرة الناتجة باستخدام exec(). لا يفحص المدقق أجسام الدوال بحثًا عن تراكيب خطرة. بدلاً من ذلك، يتحقق فقط مما إذا كان قد تم رفع استثناء أثناء التنفيذ. بعبارة أخرى، التحقق من الشيفرة هو فعليًا تنفيذ للشيفرة.
كيف يعمل الاستغلال لا يتطلب الهجوم وضع الشيفرة الخبيثة داخل جسم الدالة. تستغل التقنية ميزة في Python: يتم تقييم تعبيرات الوسائط الافتراضية وقت تعريف الدالة، قبل إنشاء كائن الدالة.
  1. تنفيذ أمر. تحتوي وسيطة افتراضية على تعبير يستدعي __import__("subprocess").run(...) لتنفيذ أمر نظام.
  2. إرجاع النتيجة. يتم تمرير مخرجات الأمر إلى تعبير lambda يرفع عمدًا استثناءً برسالة تحتوي على المخرجات الملتقطة.
  3. استخراجها من الاستجابة. تلتقط الدالة validate_code() الاستثناء، وتحوله إلى سلسلة نصية، وتعيده في حقل function.errors في استجابة JSON. بهذه الطريقة تُعاد مخرجات الأمر إلى المهاجم. يبقى جسم الدالة نفسه فارغًا (pass). لن يكتشف المحلل الساكن الذي يفحص الجسم فقط أي شيء مريب. يقوم المدقق بتجميع وتنفيذ bytecode الذي يقيّم الوسيطة الافتراضية، وعند هذا التقييم يتم تشغيل الحمولة.
الثغرات
المورّدون
المنتجات