
Proof-of-concept exploit e write-up tecnico per CVE-2026-73319, una XSS javascript: URI same-host in XenForo precedente alla 2.3.13, inclusi passaggi di riproduzione e uno script PoC in Python.
XenForo precedente alla 2.3.13 accetta un URI javascript: dello stesso host come reindirizzamento dinamico e successivamente lo assegna a window.location.
La validazione del reindirizzamento lato server rifiuta host esterni ma non richiede HTTP o HTTPS. Un URL strutturato come javascript://host-xenforo/%0A... viene analizzato con l'host XenForo, supera quel confronto e sopravvive nella risposta AJAX. Nel browser, la decodifica percentuale trasforma %0A in un'interruzione di riga, terminando il commento di riga JavaScript introdotto da //host ed esponendo il payload che segue.
Ho riprodotto questo problema con la conferma pubblica di Follow su XenForo 2.3.12 (build 2031270). Un utente autenticato ha aperto l'URL appositamente creato e ha confermato il Follow; il payload innocuo ha impostato window.name nell'origine XenForo. L'attaccante non necessita di un account, ma la vittima deve essere autenticata e confermare l'azione normale. XenForo 2.3.13 contiene la correzione.
python poc.py https://xenforo.example nome-membro.123
Lo script avvia un server di reindirizzamento loopback a richiesta singola. Apri l'URL locale stampato in un browser con una sessione di test autorizzata, ispeziona window.name, quindi chiudi il server. Il payload non legge dati né esegue azioni oltre al Follow confermato dall'utente.
Scoperto da Marco Paciaroni (BomboBombone).