# ثغرة SlugFest في trusted publishing على npm سمحت بالنشر باسم حزم الآخرين عبر اسم مستودع مستعاد

> **المغزى:** المغزى: أي نظام يربط الثقة باسم قابل للتحرير بدل معرّف ثابت يسمح بانتقال تلك الثقة إلى شخص آخر بمجرد أن يُترك الاسم ويُستعاد.

- المصدر: المغزى (https://almaghza.com/a/2026-10-15-npm-trusted-publishing-slugfest/)
- التاريخ: 4 جمادى الأولى - 15 أكتوبر 2026 (2026-10-15)
- القسم: أمن سيبراني
- الوسوم: npm، هجمات سلسلة التوريد، GitHub، الأمن السيبراني

كشفت شركة Bloom Security في 13 أكتوبر 2026 عن ثغرة في خاصية trusted publishing على npm أطلقت عليها اسم SlugFest. ووجدت الشركة أكثر من 1,500 حزمة معرّضة، يتجاوز مجموع تحميلاتها 10 ملايين. وأبلغت GitHub بالثغرة في 6 يونيو 2026، ونُشر الإصلاح في 2 أكتوبر.

وخاصية [trusted publishing](https://almaghza.com/a/2026-10-01-npm-trusted-publishing-dist-tag/) تتيح نشر الحزمة من GitHub Actions دون token ثابت. يحدد صاحب الحزمة المستودع المسموح له بالنشر، فيصدر الـ workflow رمز OIDC يُثبت هويته، وتصرف npm إذنًا مؤقتًا للنشر.

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

وغيّرت GitHub آلية العمل: أي إعداد لم يُتحقق منه ينتهي بعد 48 ساعة من إنشائه، ويُثبَّت بعد أول نشر ناجح فيُعفى من الانتهاء. وتغيير هوية المستودع أو المشروع يتطلب علاقة ثقة جديدة بنافذة 48 ساعة جديدة. كما صارت npm ترفض الرموز الصادرة عن أحداث issue_comment، إضافة إلى pull_request_target.

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

## المصادر

- [سجل تغييرات GitHub عن الإصلاح](https://github.blog/changelog/2026-10-02-unvalidated-npm-trusted-publishing-configurations-now-expire/)
- [تغطية The Hacker News](https://thehackernews.com/2026/10/github-tightens-npm-publishing-after.html)
