
Prueba de concepto de exploit y análisis técnico para CVE-2026-73319, una XSS de URI javascript: en el mismo host en XenForo anterior a 2.3.13, incluyendo pasos de reproducción y un script PoC en Python.
XenForo anterior a 2.3.13 acepta un URI javascript: del mismo host como redirección dinámica y posteriormente lo asigna a window.location.
La validación de redirección del lado del servidor rechaza hosts externos pero no exige HTTP o HTTPS. Una URL con la forma javascript://host-de-xenforo/%0A... se analiza con el host de XenForo, supera esa comparación y sobrevive hasta la respuesta AJAX. En el navegador, la decodificación de porcentajes convierte %0A en un salto de línea, finalizando el comentario de línea de JavaScript introducido por //host y exponiendo la carga útil que le sigue.
Reproduje esto con la confirmación pública de Follow en XenForo 2.3.12 (build 2031270). Un usuario con sesión iniciada abrió la URL manipulada y confirmó Follow; la carga útil inofensiva estableció window.name en el origen de XenForo. El atacante no necesita una cuenta, pero la víctima debe tener la sesión iniciada y confirmar la acción normal. XenForo 2.3.13 contiene la corrección.
python poc.py https://xenforo.example member-name.123
El script inicia un servidor de redirección de bucle invertido de una sola petición. Abre la URL local impresa en un navegador con una sesión de prueba autorizada, inspecciona window.name y luego cierra el servidor. La carga útil no lee datos ni realiza una acción más allá del Follow confirmado por el usuario.
Descubierto por Marco Paciaroni (BomboBombone).