كشفت أبحاث حديثة عن ست ثغرات أمنية خطيرة في مكتبة protobuf.js، وهي تنفيذ شائع لبروتوكول Protocol Buffers (Protobuf) بلغة JavaScript و TypeScript. تتيح هذه الثغرات، في حال استغلالها بنجاح، للمهاجمين تنفيذ تعليمات برمجية عن بعد (RCE) وشن هجمات حجب الخدمة (DoS) على الأنظمة المتأثرة.
وأوضح باحثو الأمن السيبراني أن استغلال ثغرة واحدة في مخطط protobuf أو حمولة مصممة خصيصًا قد يكون كافياً لإحداث أعطال، أو إفساد وقت التشغيل، أو حتى السماح بتنفيذ تعليمات برمجية. وقد أطلق على هذه المجموعة من الثغرات اسم Proto6.
يُعد Protocol Buffers آلية مفتوحة المصدر وغير مرتبطة بلغة برمجية معينة، تُستخدم لتبسيط وتنسيق البيانات المنظمة. وقد طورته جوجل داخلياً قبل إتاحته للجمهور في عام 2008.
تشمل التطبيقات المتأثرة بالثغرات المكتشفة تطبيقات Node.js التي تستخدم protobuf.js، وكذلك مكتبات عملاء Google Cloud، وأطر عمل المراسلة مثل Baileys، وخطوط أنابيب CI/CD. وبحسب تقرير شركة Cyera للأمن السيبراني، فإن أي خدمة Node.js تقوم بإلغاء تسلسل بيانات Protobuf أو توليد شفرات من مخططات باستخدام protobuf.js معرضة للخطر.
فهم ثغرات Proto6 وتأثيرها
تنبع جميع الثغرات المكتشفة من طريقة تعامل المكتبة مع المخططات والبيانات الوصفية، حيث كانت تعتبر موثوقة افتراضياً. هذا الإغفال في التحقق يمكن أن يؤثر على سلوك التطبيق ويؤدي إلى تنفيذ تعليمات برمجية غير مصرح بها.
في سيناريو هجوم محتمل، يمكن للمهاجم إدخال مخطط Protobuf خبيث لتسميم سير عمل CI/CD، مما قد يؤدي إلى تسرب أسرار البناء (CVE-2026-44295). ومن ناحية أخرى، يمكن تعطيل خدمات Node.js، مثل روبوتات واتساب المبنية باستخدام Baileys، عبر رسالة مصممة خصيصًا (CVE-2026-44292).
تُعتبر الثغرة CVE-2026-44291 الأكثر خطورة، حيث تسمح بتنفيذ تعليمات برمجية عند قبول تطبيق Node.js لمدخلات يتحكم بها المهاجم. في هذه الحالة، تصل المدخلات إلى ما يعرف بـ “prototype pollution gadget”، وعندما تستخدم المكتبة protobuf.js لترميز أو فك ترميز رسالة، يمكن للمهاجم التلاعب بـ Object.prototype لجعل سلسلة نصية تبدو كنوع بيانات أساسي صالح في Protobuf.
بعد ذلك، تقوم protobuf.js بإدراج هذه السلسلة النصية في دالة مشفر أو مفكك تشفير تم إنشاؤها وتجميعها باستخدام الدالة `Function()`. وهذا يمنح المهاجم القدرة على تنفيذ أي تعليمات برمجية JavaScript داخل عملية Node.js.
الإصدارات المتأثرة وطرق الحماية
الإصدارات التالية من المكتبة تعتبر عرضة للخطر:
- protobuf.js: الإصدارات الأقل من أو تساوي 7.5.5، والإصدارات من 8.0.0 إلى 8.0.1.
- protobufjs-cli: الإصدارات الأقل من أو تساوي 1.2.0، والإصدارات من 2.0.0 إلى 2.0.1.
أصبحت التحديثات الأمنية متاحة الآن في protobufjs 7.5.6 و 8.0.2، و protobufjs-cli 1.2.1 و 2.0.2. وتوصي الجهات الأمنية المستخدمين بتطبيق أحدث التحديثات فوراً لضمان الحماية من التهديدات المحتملة.
نظراً للاستخدام الواسع النطاق لمكتبة protobuf.js داخل قواعد البيانات، وأنظمة تخزين المتجهات، وخطوط أنابيب الاستدلال، وأنظمة التنسيق، وأدوات CI/CD، وحزم تطوير البرامج السحابية، فإن استغلال هذه الثغرات بنجاح يمكن أن يؤثر على أعباء العمل الحساسة للشركات والذكاء الاصطناعي على نطاق واسع.
إن البرامج الحديثة تتعامل بشكل متزايد مع المخططات والبيانات الوصفية وملفات التكوين كمدخلات موثوقة تدفع الأتمتة والتنسيق وتوليد الشفرات. عندما تفشل هذه الافتراضات الموثوقة، يمكن للبيانات أن تتحول إلى سلوك، مما يخلق أسطح هجوم جديدة يجب على فرق الأمن تعلم تحديدها وإدارتها.

