
Proof-of-Concept-Exploit und technische Dokumentation für CVE-2026-73319, eine Same-Host-javascript:-URI-XSS in XenForo vor 2.3.13, einschließlich Reproduktionsschritten und einem Python-PoC-Skript.
XenForo vor 2.3.13 akzeptiert eine javascript:-URI desselben Hosts als dynamische Weiterleitung und weist sie später window.location zu.
Die serverseitige Weiterleitungsvalidierung lehnt fremde Hosts ab, verlangt jedoch nicht HTTP oder HTTPS. Eine URL in der Form javascript://board-host/%0A... wird mit dem XenForo-Host geparst, besteht diesen Vergleich und überlebt bis in die AJAX-Antwort. Im Browser verwandelt die Prozent-Dekodierung %0A in einen Zeilenumbruch, der den durch //host eingeleiteten JavaScript-Zeilenkommentar beendet und die darauf folgende Nutzlast freilegt.
Ich habe dies mit der öffentlichen Follow-Bestätigung auf XenForo 2.3.12 (Build 2031270) reproduziert. Ein angemeldeter Benutzer öffnete die konstruierte URL und bestätigte Follow; die harmlose Nutzlast setzte window.name im XenForo-Ursprung. Der Angreifer benötigt kein Konto, aber das Opfer muss angemeldet sein und die normale Aktion bestätigen. XenForo 2.3.13 enthält den Fix.
python poc.py https://xenforo.example member-name.123
Das Skript startet einen Loopback-Weiterleitungsserver mit einer einzigen Anfrage. Öffnen Sie die gedruckte lokale URL in einem Browser mit einer autorisierten Testsitzung, prüfen Sie window.name und schließen Sie dann den Server. Die Nutzlast liest keine Daten und führt keine Aktion über das vom Benutzer bestätigte Follow hinaus aus.
Entdeckt von Marco Paciaroni (BomboBombone).