
Prova de conceito e documentação técnica para CVE-2026-73310, uma falha de vinculação do URI de redirecionamento do código de autorização OAuth2 no XenForo anterior à versão 2.3.13, incluindo etapas de reprodução e um script PoC em Python.
XenForo anterior à versão 2.3.13 não vincula um código de autorização OAuth2 ao URI de redirecionamento usado quando esse código foi emitido.
No endpoint de token, o XenForo verifica se o redirect_uri enviado está em algum lugar na lista de permissões do cliente. Ele não compara o valor com o URI de redirecionamento armazenado na solicitação de autorização. Um cliente com callbacks A e B pode, portanto, autorizar por meio de A e resgatar o código enquanto declara B.
Um atacante deve controlar ou observar um código válido e um callback diferente já registrado para o mesmo cliente. O bug não cria um código nem adiciona um novo URI de redirecionamento. Ele enfraquece a vinculação entre a autorização de canal frontal e a troca de token.
Reproduzi a incompatibilidade no XenForo 2.3.12 (build 2031270): o callback A emitiu o código, o callback B o trocou, e o token resultante autenticou como o usuário autorizador. O XenForo 2.3.13 contém a correção.
python poc.py https://xenforo.example CLIENT_ID AUTHORIZATION_CODE https://client.example/callback-b --code-verifier VERIFIER
Adicione --client-secret apenas para um cliente de teste confidencial. O script aplica hash aos tokens retornados e informa apenas se os aceitou.
/api/meUse dois callbacks e uma concessão OAuth descartável que você possua. Uma instalação vulnerável aceita o callback B; uma instalação corrigida rejeita a incompatibilidade.
Descoberto por Marco Paciaroni (BomboBombone).