Netcrook Logo
👤 SECPULSE
🗓️ 12 Jan 2026  

صندوق باندورا لملفات PDF: كيف منحت مكتبة JavaScript شائعة القراصنة مفاتيح الخادم

العنوان الفرعي: ثغرة حرجة في jsPDF كشفت ملايين الخوادم لسرقة البيانات - ملف PDF واحدًا تلو الآخر.

بدأ الأمر، كما تبدأ كثير من الكوارث الرقمية، بتنزيل بسيط. بالنسبة لعدد لا يُحصى من المطورين، كانت jsPDF أداة موثوقة - مكتبة JavaScript معيارية في الصناعة تُستخدم لإعداد مستندات PDF بسرعة وعلى الفور. لكن خلف الكواليس، كانت ثغرة مدمّرة تحوّل بهدوء واحدة من أكثر المكتبات شعبية في العالم إلى حصان طروادة. فبمجرد ملف PDF واحد مُصاغ بخبث، كان بإمكان المهاجمين سحب الأسرار من خوادم كاملة - لا قوة غاشمة، لا إنذارات، مجرد مستند ومسار ذكي.

تشريح اختراق صامت

لسنوات، كانت jsPDF عنصرًا أساسيًا لمطوري الويب الذين يحتاجون إلى توليد ملفات PDF عند الطلب - مثل الفواتير أو التقارير أو السجلات القابلة للتنزيل. لكن الشعبية قد تكون سلاحًا ذا حدين. في أوائل عام 2025، كشف باحثون أمنيون عن ثغرة كبيرة في نسخة Node.js من jsPDF: ثغرة كلاسيكية من نوع “تضمين ملف محلي” و“اجتياز المسار”، والمُدرجة الآن تحت CVE-2025-68428.

هكذا كانت تعمل. لتجميع ملف PDF، كانت دالة loadFile في jsPDF تجلب المحتوى من نظام ملفات الخادم نفسه. لكن الدالة أخفقت في التحقق بشكل صحيح من مسارات الملفات التي يزوّدها المستخدم. إذا صاغ مخترق طلبًا بمسار ملف ماكر - مثل ../../etc/passwd أو ملف إعدادات حساس - فإن jsPDF كانت ستقرأ ذلك الملف مطيعةً وتضمّن محتواه مباشرة داخل ملف PDF المُولَّد. النتيجة؟ بيانات خادم حساسة، مُغلّفة وجاهزة للتهريب، وكل ذلك تحت ستار مستند شرعي.

ومع أكثر من 3.5 ملايين تنزيل أسبوعيًا، كان انتشار jsPDF يعني أن الأثر المحتمل هائل. أي تطبيق يعمل على جانب الخادم ويعتمد على إصدارات ضعيفة من jsPDF، خصوصًا تلك التي تسمح للمستخدمين بتحديد مسارات الملفات، كان معرّضًا للخطر. لم يحتج المهاجمون إلى أي وصول خاص - فقط القدرة على تشغيل توليد PDF بمدخلات مُتلاعب بها.

خطر واسع النطاق، واكتشاف بطيء

منحت شدة الثغرة تقييمًا قدره 9.2 من 10 على مقياس CVSS - على بُعد خطوة من الحد الأقصى. ومع ذلك، وكما يحدث كثيرًا مع مكتبات المصدر المفتوح، ظلت الثغرة كامنة دون اكتشاف لأشهر، إن لم يكن أطول. وقد أصلح فريق jsPDF المشكلة منذ ذلك الحين في الإصدار 4.0.0، لكن مع بطء كثير من المشاريع في تحديث الاعتماديات، يبقى الخطر قائمًا على عدد لا يُحصى من الخوادم حول العالم.

هذه الحادثة تذكير صارخ: في سلسلة توريد البرمجيات، الثقة هشّة. حتى أكثر الأدوات موثوقية يمكن تسليحها عندما يُهمَل الأمن. بالنسبة للمطورين ومسؤولي الأنظمة على حد سواء، تبقى اليقظة هي خط الدفاع الوحيد.

WIKICROOK

  • تضمين ملف محلي: تضمين الملف المحلي هو ثغرة يجبر فيها المهاجمون تطبيق ويب على تحميل ملفات من اختيارهم، ما يعرّض لتسرب البيانات أو تنفيذ الشيفرة.
  • اجتياز المسار: اجتياز المسار هو خلل أمني يتلاعب فيه المهاجمون بمسارات الملفات للوصول إلى ملفات أو بيانات خارج الحدود المقصودة للنظام.
  • Node.js: Node.js منصة لتشغيل JavaScript خارج المتصفحات، غالبًا على الخوادم. ويمكن استغلالها لتنفيذ برمجيات خبيثة أو أتمتة الهجمات.
  • CVSS: CVSS (نظام تسجيل الثغرات الشائعة) طريقة معيارية لتقييم شدة العيوب الأمنية، بدرجات من 0.0 إلى 10.0.
  • اعتمادية: الاعتمادية هي شيفرة أو برمجيات خارجية يعتمد عليها مشروع ما؛ وإذا تم اختراقها، فقد تُدخل ثغرات إلى جميع المشاريع المعتمدة عليها.

الخلاصة

ملف PDF واحد، ومدخل واحد تم التغاضي عنه، وفجأة تصبح أسرار الخادم في متناول اليد. ملحمة jsPDF جرس إنذار: في العصر الرقمي، حتى الأدوات المألوفة قد تخفي مفاجآت خطرة. وبالنسبة لمطوري العالم، الدرس واضح - لا تعتبر مكتباتك أمرًا مسلّمًا به، وأبقِ حذرك مرفوعًا دائمًا.

jsPDF security vulnerability data theft

SECPULSE SECPULSE
SOC Detection Lead
← Back to news