IPBUF安全漏洞报告
English
CVE-2025-12669 CVSS 5.4 中危

CVE-2025-12669 GitLab 邮件通知存储型XSS漏洞

披露日期: 2026-05-14

漏洞信息

漏洞编号
CVE-2025-12669
漏洞类型
XSS (跨站脚本攻击)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
GitLab CE/EE

相关标签

XSSGitLabHTML Injection存储型XSS

漏洞概述

GitLab 社区版和企业版(CE/EE)存在一个安全漏洞,源于输入清理不当。该漏洞影响从 15.11 开始直至 18.11.3 之前的所有版本。已认证的攻击者可以利用此漏洞向系统发送恶意构造的 HTML 和 JavaScript 代码。当系统向其他用户发送邮件通知时,这些恶意代码会被注入其中。一旦受害者查看并渲染了这些邮件,攻击者注入的脚本便可能被执行,从而窃取敏感信息或进行进一步攻击。

技术细节

该漏洞的根本原因在于 GitLab 在处理用户输入生成邮件通知内容时,未能对特定字符进行有效的过滤和转义,导致存在存储型 XSS 风险。攻击者首先需要拥有 GitLab 账户的登录权限(PR:L),随后在系统提供的交互界面(如 Issue 评论、合并请求说明等)中提交包含恶意脚本标签(如 <script>、<img onerror=...>)的数据。由于服务器端未正确清洗,这些数据被存储在数据库中。当 GitLab 的后台任务触发邮件通知逻辑,向其他关联用户发送关于该操作的邮件时,会将未经过滤的恶意 HTML/JS 直接拼接到邮件正文中。虽然现代邮件客户端通常具备安全机制拦截脚本执行,但在某些配置下或特定的客户端环境中,这些载荷仍可能被触发,导致受害者的浏览器上下文(如果是 Webmail)或邮件客户端环境受到攻击,进而获取其访问令牌或敏感数据。

攻击链分析

STEP 1
步骤1:认证登录
攻击者使用低权限账户登录到受影响的 GitLab 实例。
STEP 2
步骤2:注入载荷
攻击者在触发邮件通知的功能(如评论、Issue)中输入包含恶意 HTML/JavaScript 的代码。
STEP 3
步骤3:生成与发送邮件
GitLab 系统处理输入,由于清理不当,将恶意代码保留并生成邮件通知发送给其他用户。
STEP 4
步骤4:触发漏洞
受害者查看邮件,如果邮件客户端渲染并执行了其中的脚本,攻击者即达成攻击目的。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Proof of Concept for CVE-2025-12669 --> <!-- Attacker injects this payload into a GitLab field that triggers email notifications --> <div> <h3>Urgent Review Needed</h3> <!-- Attempting to execute JavaScript when the email is rendered --> <img src="x" onerror="alert('CVE-2025-12669 PoC Triggered'); console.log(document.cookie);"> </div>

影响范围

GitLab CE/EE >= 15.11, < 18.9.7
GitLab CE/EE >= 18.10, < 18.10.6
GitLab CE/EE >= 18.11, < 18.11.3

防御指南

临时缓解措施
建议用户在升级前,在邮件客户端中禁用 JavaScript 执行或 HTML 内容自动加载,并谨慎对待来自 GitLab 的异常通知邮件。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表