CVE-2025-9222CVE-2025-9222是GitLab Community Edition(CE)和Enterprise Edition(EE)中的一个高危安全漏洞。该漏洞存在于GitLab Flavored Markdown(GFM)渲染处理过程中,攻击者可以通过构造特定的恶意Markdown内容,在目标用户的浏览器中执行任意JavaScript代码。由于是存储型XSS,恶意脚本会被永久存储在GitLab服务器上,所有查看包含该恶意内容的页面(包括问题、评论、维基页面、提交信息等)的用户都会受到攻击。此漏洞影响所有从18.2.2版本开始、低于18.5.5、18.6.3和18.7.1版本的GitLab实例。攻击者需要具备低权限的认证用户身份即可实施攻击,但需要诱导其他用户进行交互(如查看评论或页面),才能触发恶意脚本执行。成功利用此漏洞可能导致会话劫持、敏感信息窃取、权限提升等严重后果。
该漏洞的根本原因在于GitLab Flavored Markdown解析器在处理特定Markdown语法时未能正确过滤或转义HTML标签和JavaScript事件处理器。攻击者可以利用GFM的链接语法或图片语法,嵌入带有点击事件处理器或自动执行脚本的HTML属性。例如,通过构造形如[click](javascript:alert(document.cookie))的链接,或利用HTML实体编码绕过过滤机制。当其他用户查看包含此恶意内容的问题、评论或维基页面时,点击链接或页面加载时即会触发JavaScript代码执行。由于GitLab的Markdown渲染允许部分HTML标签通过,且服务器端过滤不完善,攻击者可以构造能够绕过现有安全过滤的payload。存储型XSS的特点使得攻击只需一次注入,所有后续访问该内容的用户都会受到威胁。