
# Proof of Concept und technische Ausarbeitung für CVE-2026-73310, eine OAuth2-Autorisierungscode-Redirect-URI-Bindungs-Schwachstelle in XenForo vor 2.3.13, einschließlich Reproduktionsschritten und einem Python-PoC-Skript.
XenForo vor Version 2.3.13 bindet einen OAuth2-Autorisierungscode nicht an die Redirect-URI, die bei der Ausstellung dieses Codes verwendet wurde.
Am Token-Endpunkt prüft XenForo, ob die übermittelte redirect_uri irgendwo in der Whitelist des Clients steht. Es vergleicht den Wert nicht mit der Redirect-URI, die in der Autorisierungsanfrage gespeichert wurde. Ein Client mit den Callbacks A und B kann daher über A autorisieren und den Code einlösen, während er B angibt.
Ein Angreifer muss einen gültigen Code und einen anderen, bereits für denselben Client registrierten Callback kontrollieren oder beobachten. Der Fehler erzeugt keinen Code und fügt keine neue Redirect-URI hinzu. Er schwächt die Bindung zwischen der Front-Channel-Autorisierung und dem Token-Austausch.
Ich habe die Abweichung auf XenForo 2.3.12 (Build 2031270) reproduziert: Callback A stellte den Code aus, Callback B tauschte ihn ein, und das resultierende Token authentifizierte sich als der autorisierende Benutzer. XenForo 2.3.13 enthält den Fix.
python poc.py https://xenforo.example CLIENT_ID AUTHORIZATION_CODE https://client.example/callback-b --code-verifier VERIFIER
Fügen Sie --client-secret nur für einen vertraulichen Test-Client hinzu. Das Skript hasht zurückgegebene Tokens und meldet nur, ob sie akzeptiert hat.
/api/meVerwenden Sie zwei Callbacks und einen Wegwerf-OAuth-Grant, der Ihnen gehört. Eine verwundbare Installation akzeptiert Callback B; eine gepatchte Installation lehnt die Abweichung ab.
Entdeckt von Marco Paciaroni (BomboBombone).