
CVE-2026-73313 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो XenForo के passkey TFA प्रदाता में MFA बाईपास है, जो पासवर्ड से समझौता होने के बाद खाता अधिग्रहण की अनुमति देता है।
XenForo 2.3.13 से पहले के संस्करण किसी एक उपयोगकर्ता के दो-चरणीय लॉगिन को किसी अन्य उपयोगकर्ता के स्वामित्व वाले पासकी के साथ पूरा कर सकते हैं।
पासकी प्रबंधक एसर्शन में दिए गए क्रेडेंशियल आईडी का उपयोग करके वैश्विक लुकअप करता है और उस क्रेडेंशियल के WebAuthn हस्ताक्षर को सही ढंग से सत्यापित करता है। TFA प्रदाता फिर परिणाम को बूलियन में बदल देता है, बिना यह जाँचे कि क्रेडेंशियल का स्वामी उस उपयोगकर्ता से मेल खाता है जिसका पासवर्ड लॉगिन लंबित है।
एक हमलावर जो लक्ष्य का सही पासवर्ड जानता है, वह लक्ष्य के पासकी चैलेंज का उत्तर अपने स्वयं के पंजीकृत पासकी के साथ दे सकता है। लॉगिन लक्ष्य के रूप में पूरा हो जाता है। साझा प्रवाह ने ACP लॉगिन को भी प्रभावित किया जब लक्ष्य एक व्यवस्थापक था।
यह पहले कारक से समझौता होने के बाद MFA बाईपास है, न कि पासवर्डलेस अधिग्रहण। हमलावर को अपना स्वयं का वैध पासकी, लक्ष्य का पासवर्ड, और पासकी TFA के लिए कॉन्फ़िगर किया गया लक्ष्य खाता चाहिए।
मैंने XenForo 2.3.12 (बिल्ड 2031270) पर सार्वजनिक और ACP दोनों प्रवाहों को दोहराया। XenForo 2.3.13 में यह सुधार शामिल है।
दो निर्भरताएँ स्थापित करें, डिस्पोज़ेबल हमलावर/लक्ष्य उपयोगकर्ता और हमलावर-स्वामित्व वाला परीक्षण क्रेडेंशियल तैयार करें, फिर चलाएँ:
python -m pip install -r requirements.txt
python poc.py https://xenforo.example TARGET_USERNAME ATTACKER_CREDENTIAL_ID attacker-private-key.pem
लक्ष्य का पासवर्ड एक छिपे हुए प्रॉम्प्ट के साथ पढ़ा जाता है। स्क्रिप्ट उपयोगकर्ताओं को प्रावधान नहीं करती, पासकी पंक्तियों को संशोधित नहीं करती, पासवर्ड प्रिंट नहीं करती, या साक्ष्य फ़ाइल नहीं लिखती। इसका आउटपुट केवल HTTP स्थिति और एक अंतिम बूलियन होता है।
मार्को पैसियारोनी (BomboBombone) द्वारा खोजा गया।