CVE-2021-29486 in cumulative-distribution-functionالمعلومات

الملخص

بحسب VulDB • 04/06/2026

cumulative-distribution-function هي مكتبة مفتوحة المصدر لمكتبة npm تُستخدم لحساب دالة التوزيع التراكمي الإحصائي من مصفوفة بيانات تحتوي على قيم x. في الإصدارات السابقة لـ 2.0.0، قد تتعطل التطبيقات التي تستخدم هذه المكتبة مع بيانات غير صحيحة أو تدخل في حلقة لا نهائية (infinite-loop). في حالة تطبيق خادم nodejs يستخدم هذه المكتبة للتعامل مع بيانات غير رقمية غير صالحة، قد يتعطل خادم nodejs. قد يؤثر ذلك على المستخدمين الآخرين لهذا الخادم و/أو يتطلب إعادة تشغيل الخادم للعمل بشكل صحيح. في حالة تطبيق متصفح يستخدم هذه المكتبة للتعامل مع بيانات غير رقمية غير صالحة، قد يتعطل ذلك المتصفح أو يتجمد. تم اكتشاف عطل يسمح بدخول حلقة لا نهائية في الكود الخاص بتقييم دالة التوزيع التراكمي لبيانات الإدخال. على الرغم من أن التوثيق يوضح أن البيانات الرقمية مطلوبة، فقد يخلط بعض المستخدمين بين مصفوفة من السلاسل النصية مثل ["1","2","3","4","5"] والبيانات الرقمية [1,2,3,4,5] عندما تكون في الواقع بيانات نصية. من الممكن حدوث حلقة لا نهائية عند تقييم دالة التوزيع التراكمي لنقطة معينة عندما تكون بيانات الإدخال نصية بدلاً من النوع `number`. تتيح هذه الثغرة هجمة حجب الخدمة (denial-of-service-attack) القائمة على استهلاك وحدة المعالجة المركزية بشكل لا نهائي (infinite-cpu-loop) على أي تطبيق يستخدم npm:cumulative-distribution-function الإصدار 1.0.3 أو الأحدث منه إذا تمكن المهاجم من تزويد المكتبة ببيانات مشوهة. قد تظهر الثغرة أيضاً إذا تغير مصدر البيانات المراد تحليله لنوع البيانات من مصفوفات من الأرقام (صحيح) إلى مصفوفات من السلاسل النصية (غير صالح، ولكن لم يتم اكتشافه بواسطة الإصدارات السابقة من المكتبة). يجب على المستخدمين الترقية إلى الإصدار 2.0.0 على الأقل، أو أحدث إصدار. تم إنشاء اختبارات لأنواع متعددة من البيانات غير الصالحة، وتم اختبار الإصدار 2.0.0 لرفض هذه البيانات غير الصالحة عن طريق رمي استثناء `TypeError()` بدلاً من معالجتها. قد يرغب المطورون الذين يستخدمون هذه المكتبة في تعديل كود تطبيقهم قليلاً لتحمل أو معالجة هذا الاستثناء `TypeError` بشكل أفضل. يجب أن تكون التطبيقات التي تقوم بالتحقق من صحة البيانات الرقمية بشكل صحيح قبل إرسال البيانات إلى هذه المكتبة غير متأثرة بشكل كبير بهذا التصحيح. يمكن التخفيف من حدة الثغرة في الإصدارات القديمة عن طريق التأكد من تمرير بيانات رقمية منتهية (finite) فقط من النوع `Array[number]` أو `number` إلى `cumulative-distribution-function` ودالتها `f(x)` على التوالي.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

مسؤول

GitHub, Inc.

حجز

30/03/2021

إفشاء

01/05/2021

الاعتدال

تمت الموافقة

إدخال

VDB-174387

EPSS

0.00661

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you need the next level of professionalism?

Upgrade your account now!