
Prova de conceito e artigo técnico para CVE-2026-73312, uma vulnerabilidade de repetição de token de atualização OAuth2 no XenForo anterior à versão 2.3.13. Inclui um script em Python para testar o problema.
O XenForo anterior à versão 2.3.13 pode deixar um token de atualização OAuth2 reutilizável quando o seu token de acesso pai expirou.
O XenForo permite intencionalmente que um token de atualização sobreviva ao seu token de acesso de curta duração. Durante a rotação, ele cria a família de tokens substituta e, em seguida, solicita ao revogador de tokens de acesso pai que consuma a família antiga. Esse revogador retorna antecipadamente quando o token de acesso expirou, antes de revogar o token de atualização relacionado.
O token de atualização original pode, consequentemente, ser submetido novamente, gerando outra família de tokens independente com o mesmo utilizador e os mesmos âmbitos. O atacante já deve possuir um token de atualização válido (e o segredo do cliente para um cliente confidencial). O problema prolonga a vida útil de uma credencial comprometida; não é uma bypass de autenticação nem uma escalada de âmbitos por si só.
Reproduzi o problema no XenForo 2.3.12 (build 2031270) após permitir que o token de acesso pai expirasse. O XenForo 2.3.13 contém a correção.
python poc.py https://xenforo.example CLIENT_ID REFRESH_TOKEN --verify-me
O script submete um token de teste autorizado duas vezes e imprime apenas hashes e estado. Uma rejeição por repetição termina com o estado 0; um resultado confirmado como vulnerável termina com o estado 1 para que a automação não confunda a condição vulnerável com sucesso.
Descoberto por Marco Paciaroni (BomboBombone).