كل المقالات

سُحبت الثقة من جهة إصدار شهادات. هل يعرف تطبيق ⁨Node⁩ لديك؟

الأمان · 4 دقيقة قراءة ·

المتصفح على جهازك حماه مطوّره هذا الأسبوع. أما خدماتك الخلفية فلم يحمها إلا من حدّثها. بحسب متتبّع الحوادث ⁨pwn.watch⁩، أبلغ باحث يوم 18 أكتوبر 2026 أن المفاتيح الخاصة لثماني جهات وسيطة من سلسلة ⁨eMudhra Global TLS⁩ ضعيفة تشفيريًا ويمكن استرجاعها، فحجبتها ⁨Mozilla⁩ و⁨Chrome⁩ و⁨Apple⁩ و⁨Microsoft⁩، وألغتها ⁨eMudhra⁩ يوم 19 أكتوبر. وفي 22 أكتوبر أعلنت الشركة خروجها من سوق شهادات ⁨SSL/TLS⁩ العالمية. إن كنت تكتب ⁨PHP⁩ أو ⁨Node.js⁩ فهذا الخبر يخص خوادمك أكثر مما يخص متصفحك.

ما حدث، كما تقوله الشركة وكما يرويه المتتبّع

يقول بيان ⁨eMudhra⁩ إنها ألغت الجهات المتأثرة خلال 14 ساعة من اكتشاف المشكلة وأفصحت عنها سريعًا، وهذا رقم الشركة نفسها. ويقول البيان أيضًا إنه لم تصدر أي شهادة نهائية من تلك الجهات، وإن بنيتها لم تُخترق ولم تتسرب بيانات، وإن هذا النشاط يمثل نحو 1% من إيراداتها. ستبقى جذور ⁨G1 RSA⁩ تخدم العملاء خلال فترة الانتقال، وسيحصل المتأثرون على شهادات بديلة مجانًا عبر شركاء، وتستمر خدمات الإلغاء والحالة حتى تنتهي صلاحية كل شهادة صادرة أو تُستبدل.

ويضيف ⁨pwn.watch⁩ أن الجذر من نوع ⁨ECC⁩ سُحبت الثقة منه احتياطًا، وأن بيئات التشغيل التي تحمل قائمة ثقة خاصة بها، ويذكر منها ⁨Go⁩ و⁨Node.js⁩ و⁨Electron⁩ و⁨certifi⁩ في ⁨Python⁩ و⁨curl⁩، احتاجت تحديثًا عاجلًا لحزمة الشهادات. صفحة إصدارات الأمان في ⁨Node.js⁩ لشهر أكتوبر 2026 تؤكد نصيبها: فيها تحديث ⁨ca-cert⁩ بسبب هذه الحادثة على الفروع ⁨26.x⁩ و⁨24.x⁩ و⁨22.x⁩.

الجذر في قائمة الثقة يوقّع جهة وسيطة مفتاح ضعيف توقّع شهادة نهائية لموقع ما سُحبت الثقة أو أُلغيت: كل ما تحتها يفشل
يثق العميل بالشهادة النهائية بسبب السلسلة فوقها. أزل الحلقة الوسيطة فتتوقف السلسلة عند الكسر.

قائمة متصفحك ليست قائمة خادمك

هذا القسم معرفة عامة بطريقة عمل عملاء ⁨TLS⁩، وليس تفصيلًا من الحادثة. يقرر العميل بمن يثق من قائمة شهادات جذرية تسمى مخزن الثقة. المتصفحات وأنظمة التشغيل تحمل قوائمها وتحدّثها بنفسها. لكن كثيرًا من بيئات التشغيل والمكتبات تحمل نسختها الخاصة: ⁨Node.js⁩ يضمّ قائمة ⁨Mozilla⁩ داخل كل إصدار، وكود ⁨Python⁩ الذي يستخدم ⁨certifi⁩ يثق بملفها. وبيئات أخرى تقرأ مخزن النظام ما لم تُوجَّه لغير ذلك، فراجع توثيق البيئة التي تستخدمها بدل الافتراض.

لهذا يصل سحب الثقة إلى الناس بسرعات مختلفة. ⁨Chrome⁩ على جهازك حدّث نفسه. أما خدمة ⁨Node⁩ تتصل بواجهة دفع من صورة ⁨Docker⁩ بنيتها في أغسطس فما زالت تحمل قائمة أغسطس، وستبقى تثق بجهة وسيطة ملغاة حتى تتغير بيئة التشغيل أو الحزمة داخل تلك الصورة.

المتصفح يحدّث نفسه مخزن النظام مع تحديث النظام حزمة البيئة ⁨Node⁩ و⁨certifi⁩ صورة ⁨Docker⁩ مجمّدة عند البناء خدمة ⁨Node⁩ لديك تتصل بواجهة لا تستخدمه الخوادم المتقطع: يعتمد على البيئة وطريقة بناء الصورة
أربع قوائم وأربعة مواعيد تحديث. التطبيق الخلفي يثق بالقائمة التي بُني بها.

ماذا تفعل هذا الأسبوع

حدّث بيئة التشغيل في كل خدمة، ثم أعد بناء الصور ونشرها، لأن إصدارًا جديدًا من ⁨Node.js⁩ على جهازك لا يغيّر شيئًا داخل صورة تعمل بالفعل. وحيث يوجد ⁨Python⁩ حدّث ⁨certifi⁩ أيضًا.

node --version
docker build --pull --no-cache -t my-api .
pip install --upgrade certifi

إن بدأ اتصال يفشل بخطأ شهادة بعد التحديث فهذه هي الحماية تعمل. لا تضبط ⁨NODE_TLS_REJECT_UNAUTHORIZED=0⁩ ولا تمرّر ⁨rejectUnauthorized: false⁩ لإسكات الخطأ، فهذا يوقف التحقق في كل اتصال تجريه العملية لا في الاتصال المعطوب وحده. اعرف أي شهادة يقدمها الطرف الآخر واطلب استبدالها، وتقول ⁨eMudhra⁩ إن العملاء المتأثرين يحصلون على البديل دون تكلفة.

دوّن من أين تأخذ كل خدمة قائمة الشهادات، واجعل "حدّث البيئة وأعد بناء الصورة" مهمة شهرية لا ردّ فعل على حادثة.

الخطوة التالية: افتح ملف ⁨Dockerfile⁩ لأقدم خدمة تعمل لديك، وانظر تاريخ صورتها الأساسية، وأعد بناءها اليوم. ثم أضف مراقبة لانتهاء صلاحية الشهادات ولسجلات ⁨Certificate Transparency⁩ لنطاقاتك، حتى يصلك أي تغيير في جهة إصدارها قبل أن يصل مستخدميك.

المصدر: بيان ⁨eMudhra⁩ الصحفي، 22 أكتوبر 2026، وإصدارات الأمان في ⁨Node.js⁩ لشهر أكتوبر 2026.

ملاحظات القراء

  1. لا توجد ملاحظات بعد. الأولى دائمًا الأجرأ.
باغي دير حاجة بحال هذي؟ نقدر نعاونك. راسلني على واتساب