
Prueba de concepto y documentación técnica para CVE-2026-73316, una vulnerabilidad de reproducción de webhooks REST de PayPal en XenForo anterior a 2.3.13, que incluye pasos de reproducción y detalles de la corrección.
XenForo anterior a 2.3.13 procesa el mismo webhook válido de PayPal REST más de una vez.
El proveedor REST de PayPal sobrescribe el validador de transacciones base de XenForo pero omite su búsqueda de registro de transacciones duplicadas. El índice de la base de datos tampoco es único. Dos entregas byte-idénticas y firmadas válidamente con un mismo ID de transacción pueden, por tanto, ejecutar la finalización de la compra dos veces.
Reproduje esto en XenForo 2.3.12 (build 2031270) usando una actualización recurrente desechable. Ambas devoluciones de llamada devolvieron HTTP 200, crearon filas de registro de pago separadas y extendieron el mismo derecho de acceso. El modelo de atacante requiere una devolución de llamada auténtica o un reintento/reenvío legítimo del proveedor; este fallo no falsifica la firma.
XenForo 2.3.13 contiene la corrección.
Almacena localmente un cuerpo de devolución de llamada de prueba autorizado y sus cabeceras, y luego ejecuta:
python poc.py https://xenforo.example headers.json callback.json
El script envía exactamente dos copias e imprime únicamente los dos estados HTTP. No confirmes los archivos de entrada: pueden contener material de devolución de llamada en vivo. Usa una compra desechable y restaura su estado después de las pruebas.
Descubierto por Marco Paciaroni (BomboBombone).