
Prova de conceito e relatório técnico para CVE-2026-73316, uma vulnerabilidade de repetição de webhook REST do PayPal no XenForo anterior à versão 2.3.13, incluindo etapas de reprodução e detalhes da correção.
XenForo anterior à versão 2.3.13 processa o mesmo webhook válido do PayPal REST mais de uma vez.
O provedor PayPal REST substitui o validador de transações base do XenForo, mas omite a consulta de log de transações duplicadas. O índice do banco de dados também não é único. Duas entregas byte-idênticas e validamente assinadas com um único ID de transação podem, portanto, executar a conclusão da compra duas vezes.
Reproduzi isso no XenForo 2.3.12 (build 2031270) usando uma atualização recorrente descartável. Ambos os callbacks retornaram HTTP 200, criaram linhas de log de pagamento separadas e estenderam o mesmo direito. O modelo de atacante exige um callback autêntico ou uma nova tentativa/reenvio legítimo do provedor; este bug não forja a assinatura.
O XenForo 2.3.13 contém a correção.
Armazene localmente um corpo de callback de teste autorizado e seus cabeçalhos e, em seguida, execute:
python poc.py https://xenforo.example headers.json callback.json
O script envia exatamente duas cópias e imprime apenas os dois status HTTP. Não faça commit dos arquivos de entrada: eles podem conter material de callback ao vivo. Use uma compra descartável e restaure seu estado após o teste.
Descoberto por Marco Paciaroni (BomboBombone).