
Proof-of-Concept-Exploit für CVE-2026-73313, eine MFA-Umgehung im Passkey-TFA-Anbieter von XenForo, die eine Kontokompromittierung nach einem Passwortdiebstahl ermöglicht.
XenForo vor Version 2.3.13 kann die Zwei-Schritt-Anmeldung eines Benutzers mit einem Passkey abschließen, der einem anderen Benutzer gehört.
Der Passkey-Manager führt eine globale Suche anhand der in der Assertion enthaltenen Anmeldedaten-ID durch und verifiziert korrekt die WebAuthn-Signatur dieser Anmeldedaten. Der TFA-Anbieter reduziert das Ergebnis dann auf einen booleschen Wert, ohne zu prüfen, ob der Inhaber der Anmeldedaten mit dem Benutzer übereinstimmt, dessen Passwort-Anmeldung aussteht.
Ein Angreifer, der das korrekte Passwort eines Ziels kennt, kann die Passkey-Herausforderung des Ziels mit dem eigenen registrierten Passkey des Angreifers beantworten. Die Anmeldung wird als das Ziel abgeschlossen. Der gemeinsame Ablauf betraf auch die ACP-Anmeldung, wenn das Ziel ein Administrator war.
Dies ist eine MFA-Umgehung nach Kompromittierung des ersten Faktors, keine passwortlose Übernahme. Der Angreifer benötigt einen eigenen gültigen Passkey, das Passwort des Ziels und ein Zielkonto, das für Passkey-TFA konfiguriert ist.
Ich habe sowohl die öffentlichen als auch die ACP-Abläufe auf XenForo 2.3.12 (Build 2031270) reproduziert. XenForo 2.3.13 enthält den Fix.
Installieren Sie die beiden Abhängigkeiten, bereiten Sie Wegwerf-Angreifer-/Ziel-Benutzer und eine dem Angreifer gehörende Test-Anmeldedaten vor, und führen Sie dann Folgendes aus:
python -m pip install -r requirements.txt
python poc.py https://xenforo.example TARGET_USERNAME ATTACKER_CREDENTIAL_ID attacker-private-key.pem
Das Ziel-Passwort wird mit einer versteckten Eingabeaufforderung gelesen. Das Skript stellt keine Benutzer bereit, ändert keine Passkey-Zeilen, gibt das Passwort nicht aus und schreibt keine Beweisdatei. Seine Ausgabe enthält nur den HTTP-Status und einen finalen booleschen Wert.
Entdeckt von Marco Paciaroni (BomboBombone).