
Prova de conceito e relatório técnico para uma vulnerabilidade de divulgação de informações não autenticada no endpoint unfurl do XenForo, incluindo um script em Python para verificar o problema.
XenForo anterior à versão 2.3.13 expõe pré-visualizações de links pendentes através de um endpoint não autenticado baseado em IDs inteiros previsíveis.
unfurl.php aceita um POST contendo IDs globais de UnfurlResult, carrega essas linhas e retorna o HTML de pré-visualização renderizado. Ele não verifica sessão, visibilidade de conteúdo, objeto pai ou capacidade assinada. O fragmento retornado inclui a URL original, incluindo sua string de consulta.
A exploração é sensível ao tempo. A vítima deve enviar uma URL autônoma nunca antes vista em conteúdo restrito, o destino deve retornar metadados utilizáveis, e o atacante deve prever o ID recém-alocado enquanto a linha está pendente. Uma pré-visualização recente de propriedade do atacante pode servir como um marcador de nível máximo. O problema é uma bypass de autorização e divulgação de informações, não SSRF ou execução de código.
Reproduzi uma divulgação de ID adjacente com marcadores sintéticos no XenForo 2.3.12 (build 2031270). O XenForo 2.3.13 contém a correção.
python poc.py --base-url https://xenforo.example --result-id 123 --expect-marker SYNTHETIC_TEST_MARKER
O script solicita exatamente um ID de teste conhecido sem cookies. Ele nunca enumera IDs nem imprime o HTML retornado. Ele apenas informa se o marcador sintético esperado estava presente.
Descoberto por Marco Paciaroni (BomboBombone).