
استشارة لـ node-tesseract-ocr ⌯⌲ 50 000 تنزيل أسبوعي
تسمح الحزمة node-tesseract-ocr حتى الإصدار 2.2.1 بحقن أوامر نظام التشغيل في الدالة recognize() داخل src/index.js. تبني الحزمة سلسلة أوامر shell وتنفذها باستخدام child_process.exec(). وبما أن مسار الإدخال يُحاط بعلامات اقتباس مزدوجة فقط، يمكن للمهاجم حقن صيغة shell عبر مسار ملف مُعدّ خصيصًا.
| المنتج | الإصدارات المتأثرة | الإصدار المُصحَّح |
|---|
| node-tesseract-ocr | جميع الإصدارات حتى 2.2.1 | لا يتوفر إصلاح حتى 2026-03-24 |
CVE-2026-26832CWE-78 - حقن أوامر نظام التشغيل9.8 (حرجة)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hsrc/index.js, recognize()النمط المعرّض للثغرة هو:
const command = [binary, inputOption, "stdout", ...options].join(" ");
exec(command, ...);
تخضع سلسلة الأوامر هذه لتحليل shell. يمكن لمسار ملف خبيث أن يخرج من نطاق الوسيط المُحاط بعلامات الاقتباس.
يمكن للتطبيقات التي تشغّل OCR على صور يقدّمها المستخدم أن تعرّض النظام المضيف لتنفيذ الأوامر إذا مرّرت مسارات غير موثوقة إلى recognize().
test.jpg"; touch /tmp/pwned; echo "x
لا يتوفر إصدار npm مُصحَّح وقت كتابة هذا التقرير.
إذا كنت لا تزال تعتمد على هذه الحزمة:
join(" ").execFile() أو spawn() مع وسائط صريحة.