
تنبيه أمني لـ textract ⌯⌲ 15 000 تنزيل أسبوعي
تسمح الحزمة textract حتى الإصدار 2.5.0 بحقن أوامر نظام التشغيل عبر مسار الملف المُمرَّر إلى مستخرجات متعددة. تمرّر عدة مسارات برمجية ذلك المسار إلى child_process.exec() دون تعقيم كافٍ. يمكن للمهاجم الذي يستطيع التأثير على اسم الملف أو مساره الخروج من سطر الأوامر وتنفيذ أوامر تعسفية على المضيف.
| المنتج | الإصدارات المتأثرة | الإصدار المُصلَح |
|---|---|---|
| textract | جميع الإصدارات حتى 2.5.0 | لا يتوفر إصلاح حتى 2026-03-24 |
CVE-2026-26831CWE-78 - حقن أوامر نظام التشغيل9.8 (حرجة)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hlib/extractors/doc.jslib/extractors/rtf.jslib/extractors/dxf.jslib/extractors/images.jslib/util.jsأحد الأمثلة هو مستخرج doc.js:
exec('antiword -m UTF-8.txt "' + filePath + '"', ...)
مثال آخر هو معالجة المسار في rtf.js، والتي تكتفي بتهريب المسافات قبل تنفيذ أمر الصدفة. وهذا لا يمنع الأحرف الوصفية مثل ; أو علامات الاقتباس الخلفية أو $().
غالباً ما تستخدم التطبيقات textract مع المستندات التي يرفعها المستخدمون. في هذا الإعداد، يمكن لاسم ملف خبيث أن يتسبب في تنفيذ أوامر أثناء استخراج النص.
اسم ملف إدخال مثل:
test";whoami;".doc
يمكنه الخروج من سلسلة الأوامر المقتبسة عند تشغيل المستخرج المتأثر.
لا يتوفر إصدار npm مُصلَح وقت كتابة هذا التقرير.
إذا كنت لا تزال تعتمد على هذه الحزمة:
textract.exec() بتنفيذ عمليات آمن من ناحية الوسائط.