
إثبات المفهوم والتقرير الفني لثغرة CVE-2026-73316، وهي ثغرة إعادة تشغيل webhook الخاصة بـ PayPal REST في XenForo قبل الإصدار 2.3.13، بما في ذلك خطوات إعادة الإنتاج وتفاصيل الإصلاح.
يعالج XenForo قبل الإصدار 2.3.13 نفس webhook الخاص بـ PayPal REST الصالح أكثر من مرة.
يتجاوز مزوّد PayPal REST أداة التحقق من المعاملات الأساسية في XenForo ولكنه يهمل البحث عن سجل المعاملات المكرر. كما أن فهرس قاعدة البيانات غير فريد. لذلك، يمكن لعمليتي تسليم متطابقتين بايتًا ببايت وموقعتين بشكل صالح مع نفس معرف المعاملة تشغيل إتمام الشراء مرتين.
أعدت إنتاج هذا على XenForo 2.3.12 (build 2031270) باستخدام ترقية متكررة قابلة للاستبدال. أعاد كلا الاستدعاءين HTTP 200، وأنشآ صفوف سجل دفع منفصلة، ومدّدا نفس الاستحقاق. يتطلب نموذج المهاجم استدعاءً أصليًا أو إعادة محاولة/إعادة إرسال مشروعة من المزوّد؛ هذا الخطأ لا يزوّر التوقيع.
يحتوي XenForo 2.3.13 على الإصلاح.
خزّن نص استدعاء اختباري مصرحًا به واحدًا وترويساته محليًا، ثم شغّل:
python poc.py https://xenforo.example headers.json callback.json
يرسل البرنامج النصي نسختين بالضبط ويطبع رمزي حالة HTTP فقط. لا تلتزم بملفات الإدخال: فقد تحتوي على مادة استدعاء حية. استخدم عملية شراء قابلة للاستبدال واستعد حالتها بعد الاختبار.
اكتشفه Marco Paciaroni (BomboBombone).