
Note di proof-of-concept e verifica della patch per CVE-2026-96873, un XSS riflesso nell'output diagnostico explain di CirrusSearch, con uno script di validazione Python.
Segnalatore: Marco Paciaroni (BomboBombone).
CirrusSearch rendeva il testo diagnostico relativo alla ricerca come HTML senza effettuarne sistematicamente l'escape. Il testo non attendibile poteva diventare markup eseguibile in una risposta di explain.
Il record CVE identifica come interessate le versioni di CirrusSearch fino alla 1.46.0.
È richiesto un backend CirrusSearch funzionante. Il percorso segnalato era accessibile senza un account e lo sfruttamento richiedeva che una vittima aprisse una richiesta preparata dall'attaccante. L'esecuzione di script avveniva nell'origine del wiki con i permessi disponibili per la vittima.
Il report originale documenta una risposta HTTP locale resa come HTML e l'esecuzione nel browser di un marcatore innocuo. Una richiesta di controllo ha prodotto un normale output diagnostico.
La modifica upstream ricostruisce l'output di explain con gli helper HTML di MediaWiki, in modo che descrizioni, percorsi, titoli e altri testi siano sottoposti a escape in base al contesto di output.
python poc.py https://wiki.example
Lo script invia un marcatore innocuo di modifica del titolo attraverso il percorso diagnostico interessato, stampa l'URL generato e verifica se il marcatore è stato restituito come HTML grezzo.