
Proof of concept e descrizione tecnica per CVE-2026-73310, una vulnerabilità di binding dell'URI di reindirizzamento del codice di autorizzazione OAuth2 in XenForo precedente alla versione 2.3.13, inclusi i passaggi di riproduzione e uno script PoC in Python.
XenForo precedente alla versione 2.3.13 non associa un codice di autorizzazione OAuth2 all'URI di reindirizzamento utilizzato quando tale codice è stato emesso.
All'endpoint del token, XenForo verifica che il redirect_uri inviato sia presente nell'elenco dei consentiti del client. Non confronta il valore con l'URI di reindirizzamento memorizzato nella richiesta di autorizzazione. Un client con callback A e B può quindi autorizzare tramite A e riscattare il codice dichiarando B.
Un attaccante deve controllare o osservare un codice valido e una callback diversa già registrata per lo stesso client. Il bug non crea un codice né aggiunge un nuovo URI di reindirizzamento. Indebolisce il legame tra l'autorizzazione sul canale front-end e lo scambio del token.
Ho riprodotto la discrepanza su XenForo 2.3.12 (build 2031270): la callback A ha emesso il codice, la callback B lo ha scambiato e il token risultante ha autenticato l'utente autorizzante. XenForo 2.3.13 contiene la correzione.
python poc.py https://xenforo.example CLIENT_ID AUTHORIZATION_CODE https://client.example/callback-b --code-verifier VERIFIER
Aggiungi --client-secret solo per un client di test riservato. Lo script calcola l'hash dei token restituiti e segnala solo se li ha accettati.
/api/meUsa due callback e una concessione OAuth monouso di tua proprietà. Un'installazione vulnerabile accetta la callback B; un'installazione corretta rifiuta la discrepanza.
Scoperto da Marco Paciaroni (BomboBombone).