
Prova de conceito de exploit e artigo técnico para CVE-2026-73319, um XSS de URI javascript: no mesmo host no XenForo anterior à versão 2.3.13, incluindo etapas de reprodução e um script PoC em Python.
XenForo antes da versão 2.3.13 aceita um URI javascript: do mesmo host como redirecionamento dinâmico e posteriormente o atribui a window.location.
A validação de redirecionamento no lado do servidor rejeita hosts estrangeiros, mas não exige HTTP ou HTTPS. Uma URL formatada como javascript://host-do-xenforo/%0A... é interpretada com o host do XenForo, passa nessa comparação e sobrevive até a resposta AJAX. No navegador, a decodificação percentual transforma %0A em uma quebra de linha, encerrando o comentário de linha JavaScript introduzido por //host e expondo o payload que vem em seguida.
Reproduzi isso com a confirmação pública de Follow no XenForo 2.3.12 (build 2031270). Um usuário autenticado abriu a URL criada e confirmou o Follow; o payload inofensivo definiu window.name na origem do XenForo. O atacante não precisa de conta, mas a vítima precisa estar autenticada e confirmar a ação normal. O XenForo 2.3.13 contém a correção.
python poc.py https://xenforo.example member-name.123
O script inicia um servidor de redirecionamento loopback de uma única requisição. Abra a URL local impressa em um navegador com uma sessão de teste autorizada, inspecione window.name e feche o servidor. O payload não lê dados nem executa uma ação além do Follow confirmado pelo usuário.
Descoberto por Marco Paciaroni (BomboBombone).