# npm توقف النشر 72 ساعة بعد أي دخول برمز استرداد، لكل الحسابات

> **المغزى:** قررت npm أن تأخير الناشر الشرعي ثلاثة أيام أرخص من انتشار حزمة مسمومة لساعة واحدة، وصار لترتيب خطوات أي maintainer قبل الإصدار ثمن.

- المصدر: المغزى (https://almaghza.com/a/2026-09-11-npm-recovery-code-hold/)
- التاريخ: 29 ربيع الأول - 11 سبتمبر 2026 (2026-09-11)
- القسم: أمن سيبراني
- الوسوم: npm، هجمات سلسلة التوريد، GitHub، الأمن السيبراني

أعلنت GitHub في سجل تغييرات npm في 9 سبتمبر 2026 توسيع ما يسمى recovery-code security hold ليشمل كل الحسابات، بعد أن كان مقتصرًا على الحسابات عالية التأثير.

والـ recovery code هو رمز احتياطي يُستخدم لدخول الحساب حين يتعذر استخدام وسيلة المصادقة الثنائية المعتادة. ومع القاعدة الجديدة، يؤدي أي تسجيل دخول ناجح بهذا الرمز إلى تفعيل تجميد أمني مدته 72 ساعة. وخلال هذه المدة يتوقف النشر والعمليات الحساسة مثل إنشاء access tokens، بينما يبقى الدخول والتصفح والتنزيل متاحًا كالمعتاد. ويُرفع التجميد تلقائيًا بعد انقضاء المدة.

وسبب القرار يتضح من تاريخ npm القريب مع هجمات سلسلة التوريد، ومنها انتشار دودة Shai-Hulud. فالمهاجم الذي يحصل على رمز استرداد لحساب maintainer يسعى عادة إلى نشر نسخة خبيثة بأسرع ما يمكن، قبل أن يلاحظ أحد.

والتجميد لا يمنع اختراق الحساب نفسه. لكنه يمنع الخطوة التي تحوّل حسابًا مخترقًا إلى هجوم يصل إلى آلاف المشاريع التي تعتمد على الحزمة. وبعبارة أخرى، قررت npm أن تأخير الناشر الشرعي ثلاثة أيام أقل كلفة من انتشار حزمة مسمومة لساعة واحدة.

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

## المصادر

- [إعلان GitHub في الـ changelog](https://github.blog/changelog/2026-09-09-npm-extends-recovery-code-security-holds-to-all-accounts/)
- [توثيق npm عن المصادقة الثنائية واستعادة الحساب](https://docs.npmjs.com/configuring-two-factor-authentication)
- [خلفية عن دودة Shai-Hulud في npm من Unit 42](https://unit42.paloaltonetworks.com/monitoring-npm-supply-chain-attacks/)
