Security Vulnerability Report
中文
CVE-2025-69893 CVSS 4.6 MEDIUM

CVE-2025-69893

Published: 2026-04-14 15:16:25
Last Modified: 2026-04-27 19:18:47

Description

A side-channel vulnerability exists in the implementation of BIP-39 mnemonic processing, as observed in Trezor One v1.13.0 to v1.14.0, Trezor T v1.13.0 to v1.14.0, and Trezor Safe v1.13.0 to v1.14.0 hardware wallets. This originates from the BIP-39 standard guidelines, which induce non-constant time execution and specific branch patterns for word searching. An attacker with physical access during the initial setup phase can collect a single side-channel trace. By utilizing profiling-based Deep Learning Side-Channel Analysis (DL-SCA), the attacker can recover the mnemonic code and subsequently steal the assets. The issue was patched.

CVSS Details

CVSS Score
4.6
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

No configuration data available.

Trezor One v1.13.0 to v1.14.0
Trezor T v1.13.0 to v1.14.0
Trezor Safe v1.13.0 to v1.14.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import numpy as np from sklearn.neural_network import MLPClassifier # Conceptual PoC for Side-Channel Analysis # Note: Real exploitation requires physical measurement hardware and trained models. class SideChannelAnalyzer: def __init__(self): # Load pre-trained DL model for BIP-39 word prediction # self.model.load('bip39_sca_model.pkl') pass def capture_trace(self, device): # Simulate capturing power consumption or EM trace print(f"[+] Capturing trace from {device}...") trace = np.random.rand(1000) # Simulated trace data return trace def analyze_trace(self, trace): # Use DL-SCA to predict word index # The non-constant time execution creates distinct patterns # prediction = self.model.predict([trace]) return 1024 # Simulated index def exploit(self, target_device): print(f"[*] Starting DL-SCA against {target_device}") trace = self.capture_trace(target_device) word_index = self.analyze_trace(trace) print(f"[+] Recovered potential word index: {word_index}") if __name__ == "__main__": analyzer = SideChannelAnalyzer() analyzer.exploit("Trezor One v1.13.0")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-69893", "sourceIdentifier": "[email protected]", "published": "2026-04-14T15:16:25.357", "lastModified": "2026-04-27T19:18:46.690", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "A side-channel vulnerability exists in the implementation of BIP-39 mnemonic processing, as observed in Trezor One v1.13.0 to v1.14.0, Trezor T v1.13.0 to v1.14.0, and Trezor Safe v1.13.0 to v1.14.0 hardware wallets. This originates from the BIP-39 standard guidelines, which induce non-constant time execution and specific branch patterns for word searching. An attacker with physical access during the initial setup phase can collect a single side-channel trace. By utilizing profiling-based Deep Learning Side-Channel Analysis (DL-SCA), the attacker can recover the mnemonic code and subsequently steal the assets. The issue was patched."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 4.6, "baseSeverity": "MEDIUM", "attackVector": "PHYSICAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 0.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-385"}]}], "references": [{"url": "http://trezor.com", "source": "[email protected]"}, {"url": "https://trezor.io/vulnerability/fix-side-channel-in-bip-39-mnemonic-processing-when-unlocked", "source": "[email protected]"}]}}