ثغرة jsPDF تسمح للهاكرز بسرقة البيانات عبر ملفات PDF
تعتبر مكتبة jsPDF المستخدمة في إنشاء مستندات PDF في تطبيقات جافا سكريبت عرضة لثغرة حرجة تسمح للمهاجم بسرقة بيانات حساسة من نظام الملفات المحلي من خلال تضمينها في الملفات المولدة.
تفاصيل الثغرة
تتمثل الثغرة في إدراج ملفات محلية وتجاوز المسارات، مما يسمح بتمرير مسارات غير مُعالجة إلى آلية تحميل الملفات (loadFile) في إصدارات jsPDF قبل 4.0. تُعزى الثغرة إلى CVE-2025-68428 وقد حصلت على درجة خطورة تبلغ 9.2.
تعد مكتبة jsPDF حزمة مُعتمدة على نطاق واسع، حيث تتجاوز تحميلاتها الأسبوعية 3.5 مليون في سجل npm.
في إصدارات Node.js من jsPDF، تُستخدم وظيفة 'loadFile' لقراءة نظام الملفات المحلي. تظهر المشكلة عندما يتم تمرير مدخلات يتحكم فيها المستخدم كمسار الملف، مما يتسبب في تضمين محتوى الملف في مخرجات PDF المولدة.
طرق التحميل المتأثرة
تشمل طرق تحميل الملفات الأخرى المتأثرة، مثل 'addImage' و 'html' و 'addFont'، حيث يمكن لجميعها استدعاء وظيفة loadFile.
وفقًا لبيان أمان jsPDF، تؤثر المشكلة فقط على إصدارات Node.js من المكتبة، أي الملفات dist/jspdf.node.js و dist/jspdf.node.min.js.
في تقرير تقني مفصل، تقول شركة Endor Labs للأمان التطبيقي إن خطر الاستغلال منخفض أو غير موجود إذا كانت مسارات الملفات مشفرة مسبقًا أو تأتي من تكوين موثوق، أو إذا تم استخدام قوائم السماح الصارمة للمدخلات.
تم إصلاح CVE-2025-68428 في الإصدار 4.0.0 من jsPDF عن طريق تقييد الوصول إلى نظام الملفات بشكل افتراضي والاعتماد بدلاً من ذلك على وضع إذن Node.js.
ومع ذلك، يشير باحثو Endor Labs إلى أن هذا الوضع تجريبي في Node 20، لذا يُوصى باستخدام الإصدارات 22.13.0 و 23.5.0 أو 24.0.0 وما بعدها.
نقطة أخرى يجب مراعاتها هي أن تمكين علامة '--permission'، وهي حل مقترح من قبل المطورين، يؤثر على عملية Node.js بالكامل، وليس jsPDF فقط.

التوصيات
توصل فريق jsPDF إلى أن الإصدارات القديمة من Node يجب أن تقوم بتنظيف المسارات المقدمة من المستخدم قبل تمريرها إلى jsPDF.
نظرًا للاستخدام الواسع لمكتبة jsPDF في العديد من المشاريع، فإن CVE-2025-68428 هو مرشح جيد للاستغلال النشط.

التعليقات 0
سجل دخولك لإضافة تعليق
لا توجد تعليقات بعد. كن أول من يعلق!