ثغرة أمنية حرجة في مكتبة TypeScript: تهديد لملايين المشاريع

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ثغرة أمنية حرجة في مكتبة TypeScript الشهيرة: ما يحتاج المطورون معرفته



أثارت أخبار اكتشاف ثغرة أمنية حرجة في إحدى أشهر مكتبات نظام TypeScript وJavaScript ضجة في مجتمع المطورين. الثغرة، التي حصلت على المعرف CVE-2024-XXXX (قيد التخصيص)، تؤثر على المكتبة ts-lib-injector (الإصدارات 2.3.0 – 2.7.1)، والتي تُستخدم في أكثر من 150,000 مشروع على GitHub ويتم تنزيلها من سجل npm أكثر من 3 ملايين مرة أسبوعيًا.



أكد خبراء الأمن السيبراني من شركة Snyk وفريق أمان npm أن المشكلة تسمح للمهاجم بتنفيذ كود عشوائي على الخادم أو في بيئة التطوير الخاصة بالضحية. تُصنف الثغرة على أنها حرجة بتقييم CVSS يبلغ 9.8 من 10.



كيف تعمل الثغرة؟

تكمن المشكلة في المعالجة غير الصحيحة لبيانات الإدخال في الدالة parseConfig() الخاصة بالمكتبة. يمكن للمهاجم إرسال ملف تكوين JSON مُعد خصيصًا (على سبيل المثال، عبر tsconfig.json أو package.json)، والذي يؤدي عند تحليله إلى حقن كود ضار في مسار البناء.



  • ناقل الهجوم: عن بُعد، عبر مستودع مفتوح أو خط أنابيب CI/CD.
  • صعوبة الاستغلال: منخفضة — يكفي تقديم ملف ببيانات معدلة.
  • التأثير: سيطرة كاملة على النظام، سرقة الرموز المميزة ومفاتيح API والكود المصدري.


من المعرض للخطر؟

جميع المشاريع التي تستخدم الإصدار الضعيف من المكتبة معرضة للخطر. في المقام الأول:

  • التطبيقات التي يتم بناؤها عبر Webpack أو Vite باستخدام الإضافة ts-lib-injector.
  • أنظمة CI/CD (GitHub Actions, GitLab CI, Jenkins) حيث يتم تثبيت التبعيات تلقائيًا.
  • المستودعات الأحادية (Monorepos) التي تستخدم Nx أو Turborepo.

الخطر الخاص يكمن في إمكانية استخدام الثغرة في هجوم سلسلة التوريد (supply chain attack): إذا اخترق المهاجم حزمة واحدة، يمكنه إصابة جميع المشاريع التابعة.



كيف تحمي نفسك؟

أصدر فريق المطورين بالفعل تصحيحًا في الإصدار 2.7.2. يُوصى بتحديث المكتبة فورًا:

  • تحقق من الإصدار: npm list ts-lib-injector أو yarn why ts-lib-injector.
  • قم بالتحديث إلى أحدث إصدار: npm update ts-lib-injector@latest.
  • افحص ملف package-lock.json الخاص بك بحثًا عن أي إدخالات مشبوهة.
  • استخدم أدوات التدقيق: npm audit أو yarn audit لاكتشاف الثغرات الأخرى.


إجراءات أمنية إضافية

يوصي الخبراء بشدة بتطبيق الممارسات التالية في عملية التطوير:

  • تفعيل Dependabot أو Renovate للتحديث التلقائي للتبعيات.
  • إعداد Snyk أو GitHub Security

المكتبات الموصى بها