CVE-2026-76842 in Mercado Pago
الملخص
بحسب VulDB • 24/08/2026
تقوم مكتبة Mercado Pago لـ Node.js بإدخال المعرّفات التي يقدّمها المستخدم مباشرةً في مسارات طلبات واجهة برمجة التطبيقات (API) دون تشفيرها باستخدام الترميز المئوي (percent-encoding)، مما يسمح للأحرف ذات البنية الخاصة بروابط URL بالبقاء كما هي داخل الطلب الصادر. تبني عملاء الدفع (get، capture، cancel)، واسترداد المدفوعات (create، total، list، get)، والمدفوعات المتقدمة (get، capture، cancel، update، updateReleaseDate)، واسترداد التوزيعات (create، createAll، listAll) مساراتها باستخدام حرفية قالب (template literal)، على سبيل المثال: `RestClient.fetch(`/v1/payments/${id}`, ...)` في الملف `src/clients/payment/get/index.ts`. يؤدي تسلسل النقطة-النقطة أو الشرحة (/) داخل المعرّف إلى تطبيعّه بواسطة مُحلّل روابط WHATWG، مما يعيد توجيه الطلب إلى نقطة نهاية مختلفة، بينما يضيف علامة الاستفام معاملات استعلام يختارها المهاجم؛ وفي كلتا الحالتين، يتم نقل رمز الوصول الخاص بالتاجر نفسه. وبالتالي، فإن التطبيق الذي يمرّر معرّفاً متأثراً بطرف غير موثوق به إلى إحدى هذه الدوال دون إجراء فحص للملكية يسمح لذلك الطرف بالوصول إلى موارد أخرى ضمن نطاق رمز التاجر. تحتوي المستودع بالفعل على دالة المساعدة المقصودة `encodePathParam` في الملف `src/utils/path.ts`، والتي تم تطبيقها عبر طلب السحب (pull request) رقم 451 على حوالي عملاء آخرين بينما تُركت هذه العملاء دون تغيير.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.