
إثبات المفهوم وتقرير فني لثغرة كشف معلومات غير مصادق عليها في نقطة نهاية unfurl الخاصة بـ XenForo، بما في ذلك سكربت Python للتحقق من المشكلة.
XenForo قبل الإصدار 2.3.13 يكشف معاينات الروابط الغنية المعلّقة من خلال نقطة نهاية غير مصادق عليها تعتمد على معرّفات صحيحة قابلة للتنبؤ.
يقبل unfurl.php طلب POST يحتوي على معرّفات UnfurlResult العامة، ويحمّل تلك الصفوف، ويعيد HTML المعاينة المُقدَّم. لا يتحقق من جلسة، أو رؤية المحتوى، أو الكائن الأصلي، أو صلاحية موقّعة. المقتطف المُعاد يتضمن عنوان URL الأصلي، بما في ذلك سلسلة الاستعلام الخاصة به.
الاستغلال حساس للتوقيت. يجب على الضحية إرسال عنوان URL مستقل لم يُرَ من قبل في محتوى مقيد، ويجب أن يعيد الوجهة بيانات وصفية قابلة للاستخدام، ويجب على المهاجم التنبؤ بالمعرّف المُخصص حديثًا بينما يكون الصف معلقًا. يمكن لمعاينة حديثة يملكها المهاجم أن تعمل كمؤشر مرجعي مرتفع. المشكلة هي تجاوز تفويض وكشف معلومات، وليست SSRF أو تنفيذ كود.
أعدت إنتاج كشف بمعرّف مجاور واحد بعلامات اصطناعية على XenForo 2.3.12 (build 2031270). يحتوي XenForo 2.3.13 على الإصلاح.
python poc.py --base-url https://xenforo.example --result-id 123 --expect-marker SYNTHETIC_TEST_MARKER
يطلب السكربت معرّف اختبار معروف واحدًا بالضبط دون ملفات تعريف الارتباط. لا يعدّد المعرّفات أبدًا ولا يطبع HTML المُعاد. يبلغ فقط عما إذا كانت العلامة الاصطناعية المتوقعة موجودة أم لا.
اكتُشف بواسطة Marco Paciaroni (BomboBombone).