
إثبات المفهوم لـ CVE-2026-9198 - IBM Langflow RCE غير مصادق عليه عبر تجاوز تسجيل الدخول التلقائي
يوفّر هذا المستودع إثبات مفهوم تعليمي لثغرة CVE-2026-9198 التي تؤثر على IBM Langflow OSS.
يُظهر PoC (poc.py) كيف يمكن لمهاجم غير مصادق أن يسلسل:
GET/POST /api/v1/auto_login (يعيد رمز مستخدم خارق عندما يكون تسجيل الدخول التلقائي مفعّلًا)، وPOST /api/v1/validate/code (ينفّذ كود Python يتحكم فيه المهاجم)لتحقيق تنفيذ تعليمات برمجية عن بُعد.
هذا الكود وحزم Docker المقدمة مخصّصة لاختبار أمني محلي وللتعليم فقط.
لا تشغّلها ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.
.
├── poc.py
├── vulnerable/docker-compose.yaml
└── patched/docker-compose.yaml
poc.py: استغلال إثبات المفهوم.vulnerable/docker-compose.yaml: بيئة مختبرية تستخدم langflowai/langflow:1.10.0 (قابلة للاستغلال).patched/docker-compose.yaml: بيئة مختبرية تستخدم langflowai/langflow:1.10.1 (استهداف السلوك المُصحَّح).تم إعداد ملفّي compose عمدًا كـ بيئات مختبرية لاختبار poc.py على http://127.0.0.1:9999.
pip install requests
شغّل البيئة القابلة للاستغلال:
docker compose -f vulnerable/docker-compose.yaml up -d
شغّل PoC:
python3 poc.py
تتضمن النتيجة المتوقعة للبيئة القابلة للاستغلال سطرًا أحمر [!] ومخرجات أوامر مشابهة لما يلي:
[!] /api/v1/auto_login is vulnerable: uid=... gid=...
أوقف البيئة القابلة للاستغلال أولًا (إذا كانت تعمل):
docker compose -f vulnerable/docker-compose.yaml down -v
شغّل البيئة المُصحَّحة:
docker compose -f patched/docker-compose.yaml up -d
شغّل نفس PoC:
python3 poc.py
النتيجة المتوقعة للبيئة المُصحَّحة هي سطر أخضر [-] يشير إلى أن سلسلة الاستغلال لم تعد تنجح.
في poc.py:
URL هي http://127.0.0.1:9999CMD هي idعدّل هذه الثوابت إذا كنت بحاجة إلى اختبار هدف محلي مختلف أو أمر مختلف.