[{"data":1,"prerenderedAt":185},["ShallowReactive",2],{"seo-verification":3,"blog-n8n-cve-2026-21877-تصحيح-ثغرة-rce-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-n8n-cve-2026-21877-تصحيح-ثغرة-rce-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":126,"ctaBody":127,"ctaButton":128,"ctaUrl":129,"relatedPosts":130},360,"n8n-cve-2026-21877-تصحيح-ثغرة-rce",{"fr":12,"en":13,"ar":10,"es":14},"n8n-cve-2026-21877-mise-a-jour-urgence","n8n-cve-2026-21877-critical-rce-patch","n8n-cve-2026-21877-parche-rce-critico","n8n CVE-2026-21877: تصحيح ثغرة RCE بدرجة 9.9 عاجلاً","CVE-2026-21877 تُتيح تنفيذ كود عن بُعد بعد مصادقة في n8n (CVSS‏ 9.9). تحديث فوري إلى ≥ 1.121.3 مع حل مشكلة الجدولة.",10,0,false,"2026-09-18T00:00:00+00:00","2026-09-19T02:00:43+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fn8n-cve-2026-21877-mise-a-jour-urgence-poster.svg",{"categorySlug":34,"appSlug":35},"الأتمتة-وسير-العمل","n8n","‏تنبيه CERT‏ كندا AL26-001 الصادر في 12 يناير 2026 يكشف عن ثلاث ثغرات نشطة في n8n. أخطرها CVE-2026-21877 ‏(CVSS‏ 9.9) التي تسمح لمستخدم مصادق بتنفيذ كود عشوائي على الخادم عبر عقدة Git. كل نسخة مستضافة ذاتياً دون التحديث مكشوفة للخطر. يشرح هذا الدليل إجراء التحديث والتحقق بعده وحل مشكلة الجدولة التي ظهرت في الإصدار 2.21.7.",[38,42,53,56,84,88,91,94,123],{"type":39,"title":40,"body":41},"h2","CVE-2026-21877: لماذا درجة CVSS‏ 9.9 مبررة","‏تُصنَّف الثغرة ضمن CWE-434 — رفع ملف بنوع خطير دون قيود. تتيح عقدة Git في n8n، في ظروف معينة، لمستخدم مصادق كتابة ملف عشوائي على نظام ملفات الخادم. يستطيع المهاجم كتابة سكريبت في مسار ينفذه عملية n8n ثم تشغيله عبر سير عمل لتحقيق تنفيذ كود عن بُعد.\n\n‏ناقل الهجوم شبكي ولا يتطلب أي تفاعل إضافي من المستخدم. النطاق يتغير (scope: Changed) مما يعني أن الأثر يتجاوز عملية n8n: السرية والسلامة والتوافر للخادم كلها معرضة للاختراق. بلغت درجة EPSS‏ 5.449% (البيرسنتيل 92) مما يدل على احتمال عالٍ للاستغلال الفعلي خلال 30 يوماً.\n\n‏يشمل التنبيه AL26-001 أيضاً CVE-2026-21858 ‏(تحقق غير كافٍ للمدخلات في طلبات webhook، CVSS‏ 10.0 وفق بعض المصادر) و‏CVE-2025-68613 ‏(عزل غير كافٍ للتعبيرات في إعدادات سير العمل). يجب معالجة الثلاث ضمن نطاق تصحيح واحد.",{"type":43,"title":44,"items":45},"ul","من هو معرض للخطر وفي أي نطاق من الإصدارات",[46,47,48,49,50,51,52],"‏**جميع نسخ n8n المستضافة ذاتياً من 0.123.0 وحتى ما دون 1.121.3** معرضة لـ CVE-2026-21877 وفق التنبيه GHSA-v364-rw7m-3263 على GitHub.","‏**النسخ خلف وكيل عكسي ليست محمية**: الثغرة تستلزم مصادقة فحسب — حساب مخترق أو موظف داخلي ضار يكفي؛ محيط الشبكة لا يغير نطاق التعرض.","‏**كلا نشري Docker و‏npm متأثران**: الناقل هو عقدة Git الموجودة في جميع توزيعات n8n بصرف النظر عن طريقة التثبيت.","‏**نسخ n8n Cloud المُدارة من n8n.io** تلقت التحديث دون الحاجة إلى أي إجراء من المشغل.","‏**CVE-2025-68613 تغطي الإصدارات من 0.211.0 حتى ما دون 1.120.4**: إذا لم تبلغ 1.120.4 بعد، فأنت معرض لثغرتين في آن.","‏**CVE-2026-21858 تؤثر في الإصدارات من 1.65.0 حتى ما دون 1.121.0**: التحديث إلى 1.121.3 يعالج الثلاث دفعة واحدة.","‏**درجة EPSS‏ 5.449% تضع هذه الثغرة في البيرسنتيل 92** من احتمالية الاستغلال الفعلي، مما يبرر إعطاءها الأولوية على سائر أعمال الصيانة المجدولة.",{"type":39,"title":54,"body":55},"التحقق من إصدار نسخة n8n الخاصة بك","‏قبل تطبيق التحديث، حدد الإصدار الحالي بدقة. ثلاث طرق حسب سياق نشرك.\n\n‏**عبر واجهة الويب**: سجّل الدخول إلى نسختك، انقر أيقونة الملف الشخصي في أسفل اليسار ثم \"About n8n\". يظهر الإصدار في النافذة المنبثقة.\n\n‏**عبر Docker**: الأمر `docker inspect \u003Ccontainer-name> --format '{{index .Config.Labels \"org.opencontainers.image.version\"}}'` يعيد إصدار الصورة الجارية. إذا بُدئ الحاوي من صورة `n8nio\u002Fn8n:latest`، تعكس هذه القيمة ما كان حالياً وقت آخر `docker pull`.\n\n‏**عبر واجهة API الداخلية**: `curl http:\u002F\u002Flocalhost:5678\u002Fhealthz` على الخادم المضيف يعيد `{\"status\":\"ok\"}` مع الإصدار في الترويسات إذا كانت النسخة تعمل.\n\nإذا كان إصدارك دون 1.121.3، طبّق الإجراء أدناه دون انتظار نافذة الصيانة القادمة.",{"type":57,"title":58,"steps":59},"steps","إجراء التحديث إلى n8n‏ ≥ 1.121.3",[60,63,66,69,72,75,78,81],{"title":61,"body":62},"نسخ احتياطي لقاعدة البيانات وملفات الإعداد","‏قبل أي تحديث، احتفظ بنسخة احتياطية من الحالة الحالية. لتثبيت Docker Compose، صدّر قاعدة بيانات SQLite‏ أو PostgreSQL‏ حسب إعدادك:\n\n```bash\n# SQLite (المسار الافتراضي)\ncp ~\u002F.n8n\u002Fdatabase.sqlite ~\u002F.n8n\u002Fdatabase.sqlite.bak-$(date +%Y%m%d)\n\n# PostgreSQL\npg_dump -U n8n -d n8n > n8n-backup-$(date +%Y%m%d).sql\n```\n\n‏انسخ أيضاً ملف `docker-compose.yml` وملف `.env` إلى مسار احتياطي.",{"title":64,"body":65},"تحديث ملف docker-compose.yml","‏إذا كنت تستخدم صورة `n8nio\u002Fn8n:latest`، لا تعديل مطلوب على ملف `docker-compose.yml`. إذا ثبّتَّ إصداراً محدداً (مثل `n8nio\u002Fn8n:1.115.0`)، حدّث سطر `image`:\n\n```yaml\nservices:\n  n8n:\n    image: n8nio\u002Fn8n:1.121.3\n```\n\n‏لمتابعة الفرع الثابت طويل الأمد، يُفضَّل استخدام وسم إصدار صريح بدلاً من `latest` للتحكم في نوافذ التحديث.",{"title":67,"body":68},"سحب الصورة الجديدة","‏من المسار الذي يحتوي `docker-compose.yml`:\n\n```bash\ndocker compose pull\n```\n\n‏يُنزّل هذا الأمر الطبقات التي تغيرت فقط. على رابط بسرعة 100 ميجابت\u002Fث، توقع من 30 إلى 90 ثانية حسب ذاكرة التخزين المؤقت المحلية.",{"title":70,"body":71},"إيقاف النسخة الحالية","```bash\ndocker compose down\n```\n\n‏الإيقاف مُنظَّم: ينتظر n8n انتهاء التنفيذات الجارية قبل التوقف، ما لم تضف `--timeout 0`. على نسخة مرتفعة الحمل، يُفضَّل انتظار إتمام سير العمل النشطة قبل تشغيل هذا الأمر، أو تعليق سير العمل الحرجة من الواجهة.",{"title":73,"body":74},"إعادة التشغيل بالصورة الجديدة","```bash\ndocker compose up -d\n```\n\n‏يستخدم Docker Compose الصورة المُنزَّلة حديثاً. يستغرق التشغيل عادةً 10 إلى 20 ثانية. يجب أن يُظهر سجل التشغيل الإصدار 1.121.3 أو أحدث.",{"title":76,"body":77},"التحقق من الإصدار المُنشَر","```bash\ndocker compose logs n8n | grep -i 'version\\|n8n@'\n```\n\n‏أو عبر API الداخلية من الخادم المضيف:\n\n```bash\ncurl -s http:\u002F\u002Flocalhost:5678\u002Fhealthz\n```\n\n‏تأكد أن الإصدار المعروض في الواجهة (أيقونة الملف الشخصي ← About n8n) هو 1.121.3 أو أعلى قبل اعتبار التحديث مكتملاً.",{"title":79,"body":80},"تعطيل عقدة Git إذا لم تكن تستخدمها","‏لتحييد ناقل الهجوم فوراً دون انتظار التحديث (مثلاً إذا تعذرت نافذة الصيانة)، عطّل عقدة Git عبر متغير البيئة:\n\n```bash\nN8N_NODES_EXCLUDE='[\"n8n-nodes-base.git\"]'\n```\n\n‏أضف هذا المتغير إلى ملف `.env` وأعد تشغيل النسخة. هذا ليس بديلاً عن التحديث: طبّق التحديث في أقرب وقت.",{"title":82,"body":83},"لتثبيت npm (بدون Docker)","```bash\nnpm update -g n8n\n# أو عند استخدام مدير عمليات:\npm2 stop n8n\nnpm update -g n8n\npm2 start n8n\n```\n\n‏تحقق من الإصدار المثبت بـ `n8n --version`. يُوصى بالانتقال إلى Docker للتثبيتات الجديدة — الدليل المخصص `n8n-migration-npm-docker-avant-v3` يغطي هذا المسار بالتفصيل.",{"type":85,"title":86,"body":87},"tip","التصليب بعد التحديث: تقليص سطح الهجوم","‏التحديث يصحح الثغرة المعروفة، لكن عدة إعدادات تعزز الوضع الأمني العام للنسخة.\n\n‏**قيّد صلاحيات عملية n8n.** يجب ألا يعمل الحاوي بصلاحيات `root`. الصورة الرسمية تستخدم المستخدم `node` افتراضياً منذ عدة إصدارات — تحقق من أن `docker-compose.yml` لا يحتوي `user: root`.\n\n‏**فعّل المصادقة.** إذا كانت نسختك مكشوفة على الإنترنت بلا مصادقة، أضف `N8N_BASIC_AUTH_ACTIVE=true` مع بيانات اعتماد قوية، أو ضع النسخة خلف وكيل يتطلب المصادقة. CVE-2026-21877 تستلزم مصادقة، لكن ناقلات غير مصادق عليها أخرى موجودة في البيئة.\n\n‏**قيّد العقد المسموح بها.** متغير `N8N_NODES_INCLUDE` يتيح تفعيل مجموعة فرعية فقط من العقد. على النسخ المخصصة لسير عمل لا تحتاج Git أو وصولاً للنظام، تقليص القائمة يضيّق السطح.\n\n‏**راجع حسابات المستخدمين.** في واجهة الإدارة، تحقق من مشروعية كل حساب نشط وتعطيل حسابات الاختبار وحسابات المتعاونين السابقين.\n\n‏**اشترك في تنبيهات أمان n8n.** مستودع GitHub‏ `n8n-io\u002Fn8n` يتيح الاشتراك في إشعارات الأمان عبر \"Watch → Security alerts\".",{"type":39,"title":89,"body":90},"خطأ الجدولة بعد الإصدار 2.21.7: الأعراض والحل المؤقت","‏توثّق المسألة #31100 على GitHub سلوكاً أُبلغ عنه بعد التحديث إلى الإصدار 2.21.7: سير عمل ذات مشغّلات مجدولة (عقدة Schedule Trigger) تتوقف عن التنفيذ في موعدها دون أي رسالة خطأ في السجلات.\n\n‏**العرض الدقيق**: تبقى سير العمل في حالة \"نشطة\" في الواجهة ويُعرض موعد المشغّل التالي، لكن التنفيذات لا تحدث. لا يُظهر سجل التنفيذات أي محاولة فاشلة — سير العمل ببساطة لا تُشغَّل. يُلاحَظ هذا السلوك أساساً في نشريات وضع الطابور (متعدد العمال) مع PostgreSQL، لكنه قد يؤثر في نسخ أحادية العملية أيضاً.\n\n‏**ما تشير إليه المسألة بشأن الحل المؤقت**: وقت نشر هذا المقال، مُصنَّفة المسألة \"Needs Feedback\" من فريق n8n ولم يُنشر حل مؤقت رسمي موثق في الخيط. أفاد عدة مشغّلين بأن الإجراءات التالية أعادت التنفيذات المجدولة في بيئتهم:\n\n‏- تعطيل ثم إعادة تفعيل كل سير عمل متأثرة يدوياً من الواجهة (مفتاح Active\u002FInactive).\n‏- إعادة تشغيل حاوي n8n أو الخدمة لإعادة تهيئة طابور الجدولة الداخلي.\n‏- في نشريات وضع الطابور: إعادة تشغيل العقدة الرئيسية (main) أولاً قبل العمال.\n\n‏هذه الإجراءات ليست إصلاحاً: قد تتكرر المشكلة. تابع المسألة #31100 للاطلاع على الحالة الرسمية وإصدار الإصلاح.\n\n‏**تحديد سير العمل المتأثرة بسرعة**: في واجهة n8n، صفّ سجل التنفيذات حسب مشغّل \"Schedule\" وابحث عن التنفيذات الغائبة في الفترة المتوقعة. سير عمل كان يفترض تشغيلها عشر مرات منذ منتصف الليل دون أي أثر في السجل هو إشارة واضحة.",{"type":39,"title":92,"body":93},"التحققات بعد الترحيل: ما يجب مراجعته قبل إعادة فتح الحركة","‏تحديث n8n الناجح يُؤكَّد على عدة محاور، ليس فقط الإصدار المعروض.\n\n‏**الإصدار**: تُظهر واجهة \"About n8n\" الإصدار 1.121.3 أو أعلى. أمر `docker inspect` على الصورة الجارية يعيد نفس الرقم.\n\n‏**سلامة بيانات الاعتماد**: يشفّر n8n بيانات الاعتماد بمفتاح مشتق من `N8N_ENCRYPTION_KEY`. إذا لم يتغير هذا المتغير بين الإصدارين، بيانات الاعتماد الموجودة سليمة. افتح سير عمل يستخدم اتصالاً خارجياً وتحقق من تنفيذه دون أخطاء فك تشفير.\n\n‏**سير العمل النشطة**: في لوحة التحكم، تحقق من أن عدد سير العمل النشطة يطابق الحالة قبل التحديث. سير عمل كانت نشطة وأصبحت غير نشطة بعد إعادة التشغيل إشارة تحذير.\n\n‏**التنفيذات المجدولة**: إذا كانت نسختك تستخدم عقد Schedule Trigger، انتظر موعد التشغيل التالي وأكد التنفيذ في السجل. إذا كنت على الإصدار 2.21.7 من الفرع 2.x، راجع القسم السابق حول خطأ الجدولة.\n\n‏**سجلات التشغيل**: `docker compose logs n8n --tail 50` يجب أن يُظهر تشغيلاً نظيفاً بلا استثناءات. أخطاء الاتصال بقاعدة البيانات أو فك تشفير بيانات الاعتماد تظهر في هذه السطور الأولى.\n\n‏**الوصول الشبكي**: إذا كانت نسختك مكشوفة عبر وكيل عكسي، تحقق من استجابة مسارات `\u002Fwebhook\u002F` و`\u002Fwebhook-test\u002F` بشكل صحيح بعد التحديث.",{"type":95,"title":96,"headers":97,"rows":103},"comparison","إصدارات n8n: التعرض لثغرات تنبيه AL26-001",[98,99,100,101,102],"الإصدار","CVE-2025-68613","CVE-2026-21858","CVE-2026-21877","الإجراء المطلوب",[104,108,111,113,116,120],[105,106,106,106,107],"\u003C 1.120.4","معرض","التحديث إلى ≥ 1.121.3",[109,110,106,106,107],"1.120.4 – 1.120.x","مُصلَح",[112,110,110,106,107],"1.121.0 – 1.121.2",[114,110,110,110,115],"≥ 1.121.3","لا إجراء مطلوب للثغرات",[117,118,118,118,119],"2.x \u003C 2.21.7","راجع ملاحظات الإصدار","راجع ملاحظات إصدار 2.x",[121,118,118,118,122],"2.21.7+","خطأ الجدولة #31100 نشط",{"type":39,"title":124,"body":125},"الحفاظ على تحديث نسخة n8n: المسار على VPS","‏تكشف CVE-2026-21877 عن تكلفة نسخة مستضافة ذاتياً يعتمد تحديثها على نافذة صيانة خارجية. على VPS بوصول root، `docker compose pull && docker compose up -d` يطبّق التحديث في أقل من عشر دقائق دون الاعتماد على مزوّد لتحديد الموعد.\n\n‏تأتي هذه الاستقلالية بمسؤولية: متابعة التنبيهات الأمنية تقع على المشغّل. مصدران لمتابعة n8n: مستودع GitHub‏ (تبويب Security مع تفعيل الإشعارات) وتنبيهات المركز الكندي للأمن السيبراني أو ما يعادله من مراكز CERT في منطقتك.\n\n‏للمزيد حول بناء نسخة n8n متينة — التثبيت الأولي ووكيل Caddy أو nginx العكسي و‏TLS التلقائي والنسخ الاحتياطي — راجع دليل \u003Ca href=\"\u002Fblog\u002Finstaller-n8n-vps\">تثبيت n8n على VPS\u003C\u002Fa>. إذا كنت قادماً من تثبيت npm وتفكر في الانتقال إلى Docker قبل الانتقال إلى الفرع 2.x، يغطي دليل \u003Ca href=\"\u002Fblog\u002Fn8n-migration-npm-docker-avant-v3\">الانتقال من npm إلى Docker قبل v3\u003C\u002Fa> هذا المسار. نمط التحديث المطبق هنا مطابق للموثق في \u003Ca href=\"\u002Fblog\u002Fpostgresql-cve-2026-6471-patch-instances-self-hosted\">CVE-2026-6471 على PostgreSQL\u003C\u002Fa>.","VPS بوصول root لتطبيق تحديثاتك متى تشاء","‏على VPS من ServOrbit، `docker compose pull && docker compose up -d` يُنجَز في أقل من عشر دقائق. لا اعتماد على مزوّد لنافذة الصيانة.","اكتشف VPS السحابي","\u002Fvps-cloud",[131,152,168],{"id":132,"slug":133,"slugs":134,"title":138,"excerpt":139,"readTime":140,"views":141,"isPinned":19,"publishedAt":142,"updatedAt":143,"category":144,"categories":148,"featuredImage":30,"bgImage":31,"posterImage":150,"relatedSolution":151},3,"تثبيت-n8n-على-vps-مع-docker-دليل-شامل-2026",{"fr":135,"en":136,"ar":133,"es":137},"installer-n8n-vps","install-n8n-on-vps-with-docker-complete-2026-guide","instalar-n8n-en-vps-con-docker","تثبيت n8n على VPS مع Docker: دليل شامل 2026","انشر n8n على VPS مع Docker والوكيل العكسي وHTTPS. يشمل عطل V8، خطأ 502، الانتقال من npm وأمان التنفيذ (تنبيه GHSA-vrv8-j27g-g7cr، أغسطس 2026).",12,2,"2026-06-05T00:00:00+00:00","2026-09-08T22:00:02+00:00",{"id":141,"name":145,"slug":146,"color":147,"icon":146},"الأتمتة","automatisation","bg-brand-action\u002F10 text-brand-action",[149],{"id":141,"name":145,"slug":146,"color":147,"icon":146},"\u002Fblog\u002Fcovers\u002Finstaller-n8n-vps-poster.svg",{"categorySlug":34,"appSlug":35},{"id":153,"slug":154,"slugs":155,"title":159,"excerpt":160,"readTime":23,"views":18,"isPinned":19,"publishedAt":161,"updatedAt":162,"category":163,"categories":164,"featuredImage":30,"bgImage":31,"posterImage":166,"relatedSolution":167},344,"n8n-migration-npm-to-docker-before-v3-ar",{"fr":156,"en":157,"ar":154,"es":158},"n8n-migration-npm-docker-avant-v3","n8n-migration-npm-to-docker-before-v3","n8n-migracion-npm-docker-antes-v3","n8n 3.0: الانتقال من npm إلى Docker قبل أكتوبر 2026","يوقف n8n 3.0 دعم npm وnpx في أكتوبر 2026. اكتشف وضع التشغيل لديك وصدِّر سير عملك وانتقل إلى Docker Compose مع PostgreSQL قبل الموعد النهائي.","2026-09-09T00:00:00+00:00","2026-09-09T21:41:07+00:00",{"id":141,"name":145,"slug":146,"color":147,"icon":146},[165],{"id":141,"name":145,"slug":146,"color":147,"icon":146},"\u002Fblog\u002Fcovers\u002Fn8n-migration-npm-docker-avant-v3-poster.svg",{"categorySlug":34,"appSlug":35},{"id":169,"slug":170,"slugs":171,"title":175,"excerpt":176,"readTime":177,"views":178,"isPinned":19,"publishedAt":179,"updatedAt":180,"category":181,"categories":182,"featuredImage":30,"bgImage":31,"posterImage":184,"relatedSolution":30},339,"تصحيح-ثغرة-postgresql-cve-2026-6471-الخوادم-الذاتية",{"fr":172,"en":173,"ar":170,"es":174},"postgresql-cve-2026-6471-patch-instances-self-hosted","postgresql-cve-2026-6471-patch-self-hosted-instances","cve-2026-6471-postgresql-parchear-instancias-self-hosted","CVE-2026-6471 و14669: تصحيح PostgreSQL على VPS","ثغرتان حرجتان في PostgreSQL تم إصلاحهما في 13 أغسطس 2026: استغلال التكرار للوصول إلى تنفيذ كود وتجاوز مخزن مؤقت. كيفية التصحيح عبر apt وDocker.",7,1,"2026-09-08T00:00:00+00:00","2026-09-08T21:59:59+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[183],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fpostgresql-cve-2026-6471-patch-instances-self-hosted-poster.svg",1789783490517]