IPBUF安全漏洞报告
English
CVE-2025-34282 CVSS 9.1 严重

CVE-2025-34282:ThingsBoard 仪表盘图片上传 SSRF 漏洞

披露日期: 2025-10-17

漏洞信息

漏洞编号
CVE-2025-34282
漏洞类型
服务端请求伪造(SSRF)
CVSS评分
9.1 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
ThingsBoard

相关标签

SSRF服务端请求伪造ThingsBoardIoT平台SVG图片上传信息泄露云元数据CVE-2025-34282严重漏洞

漏洞概述

CVE-2025-34282 是 ThingsBoard 物联网平台中存在的一个严重服务端请求伪造(SSRF)漏洞,影响 4.2.1 之前的所有版本。该漏洞存在于 ThingsBoard 仪表盘的图片上传画廊(Image Upload Gallery)功能中。攻击者可以通过上传一个精心构造的恶意 SVG 文件,利用 SVG 文件中可包含外部资源引用的特性,诱导服务器在处理该 SVG 文件时发起对外部或内部 URL 的非预期请求。由于 ThingsBoard 通常部署在企业内网环境中,SSRF 漏洞可能被攻击者用于探测和访问内部服务、云元数据端点(如 AWS 的 169.254.169.254)以及其他受限资源,从而导致敏感信息泄露或进一步的攻击。该漏洞的 CVSS 3.1 评分为 9.1,属于严重级别,攻击向量为网络,无需认证和用户交互即可利用,对机密性和完整性具有高影响。该漏洞由 VulnCheck 安全团队发现并报告,ThingsBoard 官方已在 v4.2.1 版本中修复了此问题。

技术细节

该 SSRF 漏洞的根本原因在于 ThingsBoard 仪表盘的图片上传画廊功能在处理用户上传的 SVG 文件时,未对 SVG 文件内容进行充分的安全过滤和验证。

SVG(Scalable Vector Graphics)是一种基于 XML 的矢量图形格式,与常见的位图格式(如 PNG、JPEG)不同,SVG 文件可以包含多种 XML 元素,其中一些元素支持引用外部资源。例如,SVG 中的 `<image>` 元素可以通过 `xlink:href` 属性引用远程 URL;`<foreignObject>` 元素可以包含 HTML 内容;`<use>` 元素可以引用外部定义的图形;`<script>` 元素可以包含 JavaScript 代码。

攻击者利用此漏洞的步骤如下:
1. 创建一个恶意的 SVG 文件,在其中嵌入指向内部服务或敏感端点的外部资源引用,例如 `<image xlink:href="http://169.254.169.254/latest/meta-data/" />` 或 `<image xlink:href="http://internal-service:8080/admin" />`。
2. 将该恶意 SVG 文件通过 ThingsBoard 仪表盘的图片上传画廊功能上传到服务器。
3. 当服务器处理该 SVG 文件时(例如在生成预览、缩略图或进行格式转换时),如果服务端解析器解析了 SVG 中的外部引用,就会向攻击者指定的 URL 发起 HTTP 请求。
4. 服务器获取到的响应内容可能被返回给攻击者,或被用于进一步的攻击。

此漏洞的危险之处在于,服务器发起的请求来自内网,攻击者可以利用这一点绕过防火墙和访问控制,访问仅限内网访问的资源和服务。

攻击链分析

STEP 1
步骤1:准备恶意SVG文件
攻击者创建一个包含外部资源引用的恶意 SVG 文件,在 <image> 元素的 xlink:href 属性中指定目标 URL(如云元数据服务、内部管理接口等敏感端点)。
STEP 2
步骤2:上传到 ThingsBoard 仪表盘
攻击者通过 ThingsBoard 仪表盘的图片上传画廊(Image Upload Gallery)功能,将恶意 SVG 文件上传至服务器。该功能未对上传文件的类型和内容进行充分的安全验证。
STEP 3
步骤3:触发服务端 SVG 解析
当服务器对上传的 SVG 文件进行处理(如生成预览图、缩略图、格式转换或渲染)时,服务端 SVG 解析器解析 SVG 中的外部资源引用,发起对攻击者指定 URL 的 HTTP 请求。
STEP 4
步骤4:访问内部资源
服务器以其在内网中的权限向目标 URL 发起请求,绕过网络访问控制,访问到仅限内网访问的敏感服务或资源(如 AWS 云元数据、内部 API、数据库等)。
STEP 5
步骤5:数据泄露与进一步攻击
攻击者通过服务器获取内部服务的响应内容,实现敏感信息泄露(如云访问密钥),并可利用获取的信息进行进一步的内网渗透和攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?xml version="1.0" encoding="UTF-8"?> <!-- Malicious SVG file for SSRF exploitation (CVE-2025-34282) --> <!-- This SVG references an internal service or cloud metadata endpoint --> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="500"> <image xlink:href="http://169.254.169.254/latest/meta-data/iam/security-credentials/" width="500" height="500" /> <!-- Alternative: target internal services --> <!-- <image xlink:href="http://localhost:8080/api/admin/settings" width="500" height="500" /> --> <!-- Alternative: target internal network services --> <!-- <image xlink:href="http://192.168.1.1/admin" width="500" height="500" /> --> <text x="10" y="30" font-size="14" fill="black">SSRF PoC - CVE-2025-34282</text> </svg>

影响范围

ThingsBoard < 4.2.1

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)在 ThingsBoard 前端层面限制图片上传功能,仅允许上传白名单内的位图格式(如 PNG、JPEG),拒绝 SVG 文件上传;2)在反向代理或网关层面配置 egress 过滤规则,阻止服务器对内网地址(127.0.0.0/8、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、169.254.0.0/16)和云元数据端点的出站访问;3)使用 SVG 清洗工具(如 DOMPurify)对上传的 SVG 文件进行安全过滤后再存储和展示;4)监控异常的出站网络流量,及时发现和阻断 SSRF 攻击行为。

参考链接

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