PT-2026-146065
CVE-2026-126345
·
تاريخ النشر
2026-11-12
·
تاريخ التحديث
2026-11-12
الوصف من
CVSS 3.1
5.3
متوسطةالمقاييسAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
اسم البرنامج المصاب والإصدارات المتأثرة
basic-ftp الإصدارات السابقة لـ 6.2.4
Description
يستخدم محلل قائمة الأدلة MLSD في
src/parseListMLSD.ts أسماء حقائق غير موثوقة من خادم FTP كمفاتيح في قاموس factHandlersByName دون التحقق مما إذا كانت الخاصية التي تم حلها هي معالج خاص. يمكن لخادم FTP خبيث أو مخترق، أو مهاجم في المسار عبر جلسة نصية بسيطة، تقديم حقيقة باسم proto. يؤدي هذا إلى الوصول إلى Object.prototype وتجاوز حارس المعالج المفقود، مما يجعل التطبيق يحاول استدعاءه كدالة، وهو ما يؤدي إلى حدوث TypeError.بما أن هذا الـ
TypeError ليس FTPError ، فإنه لا يتم التقاطه بواسطة منطق إعادة المحاولة في Client.list() وينتقل كـ promise مرفوض. يؤثر هذا على نقاط نهاية API والطرق التالية:Client.list()Client.downloadToDir()Client.uploadFromDir()Client.clearWorkingDir()Client.removeDir()
في Node.js 15 والإصدارات الأحدث، إذا لم يقم التطبيق بمعالجة هذا الرفض باستخدام كتلة try/catch، فسيتم إنهاء عملية Node.js، مما يؤدي إلى حجب الخدمة.
Recommendations
تحديث basic-ftp إلى الإصدار 6.2.4.
كإجراء تخفيف مؤقت، قم بتغليف استدعاءات
Client.list() و Client.downloadToDir() و Client.uploadFromDir() و Client.clearWorkingDir() و Client.removeDir() في كتل try/catch لمنع تعطل عملية Node.js. وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾