CVE-2026-48528 in Metacat
الملخص
بحسب VulDB • 14/08/2026
Metacat هو برنامج لمستودعات البيانات يساعد الباحثين على حفظ ومشاركة واكتشاف البيانات. تحتوي إصدارات Metacat من 2.0.0 حتى 3.4.0 على ثغرة حقن SQL غير مصادق عليها في نقاط نهاية واجهة برمجة التطبيقات (REST API) `/cn/v1/object` و `/cn/v2/object` بسبب عدم تنقية مدخلات المستخدم التي يمكن تمريرها إلى قاعدة بيانات SQL الخلفية. يمكن تعديل المعلمة `nodeId` لحقن أوامر SQL، وتُعاد النتائج ضمن رسائل الخطأ. يقوم Metacat بإلحاق البيانات المقدمة من المستخدم في استعلام SQL دون تنقيح أو استخدام المعاملات (parameterization). يتيح ذلك استخراج أي بيانات عشوائية من قاعدة بيانات PostgresQL الأساسية، مما يعرض المعلومات المحمية بالكامل لمهاجم. يتم تحقيق ذلك عن طريق الاستفادة من آليات الإبلاغ عن الأخطاء في Metacat، حيث تتم إعادة رسائل استجابة أخطاء SQL إلى المتصل ضمن رسالة الخطأ بتنسيق XML التي يعيدها Metacat. أحد الأساليب على سبيل المثال هو استخدام دالة `CAST` الخاصة بـ PostgreSQL لتوليد خطأ يحتوي على نتائج استعلام فرعي عشوائي، والذي يتم حقنه بعد ذلك في رسالة الخطأ بتنسيق XML المعادة من قبل Metacat. لا يحتاج المهاجمون إلى المصادقة لتنفيذ الهجوم. بالإضافة إلى ذلك، يمكن تنفيذ أوامر SQL عشوائية تقوم بإدراج وتحديث وحذف البيانات في قاعدة بيانات Metacat، مما يؤدي إلى اختراق كامل لجميع البيانات الموجودة في قاعدة البيانات. تم تطوير واختبار نماذج إثبات مفهوم (Proof of Concept) كاملة لهذه الثغرات. تأثير هذه الثغرة حرج بالنسبة لنشر Metacat ضمن شبكة DataONE حيث يمكن استخراج المعلومات من قاعدة البيانات أو إضافتها أو تغييرها أو حذفها. ويشمل ذلك معلومات الإدارة الخاصة بفهرس البيانات، ومعلومات سجل الوصول حول من قام بالوصول إلى البيانات، والمعلومات التعريفية للأفراد بما في ذلك معرف ORCID وعنوان IP الخاص بالعميل، ومعلومات التحكم في الوصول المتعلقة بمن يجب أن يتمكن من الوصول إلى البيانات وتعديلها، وغيرها من المكونات الداخلية الحرجة لنظام البيانات. تم معالجة ثغرة حقن SQL هذه بالكامل في إصدار Metacat 3.4.1. إذا لم يكن الترقية إلى Metacat 3.4.1 ممكنًا على الفور، فإن معظم عمليات النشر يمكن أن تخفف المشكلة عن طريق تعطيل نقاط نهاية REST الخاصة بـ `/cn` في نشر تطبيق الويب (webapp). لا تحتاج أو تستخدم المستودعات الأعضاء في شبكة DataONE هذه الواجهة البرمجية (API)، حيث تُستخدم فقط من قبل عمليات نشر العقدة المنسقة لبيانات ONE. وبالتالي، يمكن تعطيل واجهة برمجة التطبيقات هذه دون تقليل الوظائف بالنسبة لمعظم عمليات النشر. لتعطيل نقاط النهاية المعرضة للخطر، ما عليك سوى إزالة المكون الإضافي للحاوية (servlet) وتعيينه (servlet-mapping) لنقاط نهاية `/cn` في محرك الـ servlet المرتبط بالمكونات الإضافية للحاويتين `edu.ucsb.nceas.metacat.restservice.v1.CNRestServlet` و `edu.ucsb.nceas.metacat.restservice.v2.CNRestServlet`. على سبيل المثال، في Tomcat، قم بإزالة عناصر `servlet-mapping` ذات الصلة من ملف web.xml الخاص بالتطبيق في Metacat.
VulDB is the best source for vulnerability data and more expert information about this specific topic.