
Prueba de concepto y documentación técnica para CVE-2026-73310, una falla de vinculación del URI de redirección del código de autorización OAuth2 en XenForo anterior a 2.3.13, que incluye pasos de reproducción y un script PoC en Python.
XenForo anterior a 2.3.13 no vincula un código de autorización OAuth2 al URI de redirección utilizado cuando se emitió ese código.
En el endpoint de token, XenForo comprueba que el redirect_uri enviado esté en la lista de permitidos del cliente. No compara el valor con el URI de redirección almacenado en la solicitud de autorización. Un cliente con las devoluciones de llamada A y B puede, por tanto, autorizar a través de A y canjear el código mientras declara B.
Un atacante debe controlar u observar un código válido y una devolución de llamada diferente ya registrada para el mismo cliente. El fallo no crea un código ni añade un nuevo URI de redirección. Debilita la vinculación entre la autorización de canal frontal y el intercambio de token.
Reproduje el desajuste en XenForo 2.3.12 (build 2031270): la devolución de llamada A emitió el código, la devolución de llamada B lo intercambió, y el token resultante se autenticó como el usuario autorizante. XenForo 2.3.13 contiene la corrección.
python poc.py https://xenforo.example CLIENT_ID AUTHORIZATION_CODE https://client.example/callback-b --code-verifier VERIFIER
Añada --client-secret solo para un cliente de prueba confidencial. El script aplica hash a los tokens devueltos e informa únicamente de si los aceptó.
/api/meUse dos devoluciones de llamada y una concesión OAuth desechable que usted posea. Una instalación vulnerable acepta la devolución de llamada B; una instalación corregida rechaza el desajuste.
Descubierto por Marco Paciaroni (BomboBombone).