
Prueba de concepto y documentación técnica de una vulnerabilidad de divulgación de información no autenticada en el endpoint unfurl de XenForo, incluido un script en Python para verificar el problema.
XenForo anterior a 2.3.13 expone vistas previas de enlaces enriquecidos pendientes a través de un endpoint no autenticado identificado por IDs enteros predecibles.
unfurl.php acepta un POST que contiene IDs globales de UnfurlResult, carga esas filas y devuelve el HTML de la vista previa renderizada. No verifica una sesión, la visibilidad del contenido, el objeto padre ni una capacidad firmada. El fragmento devuelto incluye la URL original, incluida su cadena de consulta.
La explotación es sensible al tiempo. Una víctima debe enviar una URL independiente previamente no vista en contenido restringido, el destino debe devolver metadatos utilizables, y el atacante debe predecir el ID recién asignado mientras la fila está pendiente. Una vista previa reciente propiedad del atacante puede actuar como marca de nivel máximo. El problema es una omisión de autorización y divulgación de información, no SSRF ni ejecución de código.
Reproduje una divulgación de ID adyacente con marcadores sintéticos en XenForo 2.3.12 (build 2031270). XenForo 2.3.13 contiene la corrección.
python poc.py --base-url https://xenforo.example --result-id 123 --expect-marker SYNTHETIC_TEST_MARKER
El script solicita exactamente un ID de prueba conocido sin cookies. Nunca enumera IDs ni imprime el HTML devuelto. Solo informa si el marcador sintético esperado estaba presente.
Descubierto por Marco Paciaroni (BomboBombone).