AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
High 71 Bitcoin

fix(monero): reject sweep change aliasing money-carrying outputs

Public commit record

What the developer wrote

Authored by Petr Susil

97/100 · Strong
fix(monero): reject sweep change aliasing money-carrying outputs

Prevent the sweep-shape exemption from accepting an unvalidated change
address that aliases a money-carrying output.

Honest sweeps remain valid because the fake output carries amount 0,
while the primary-address exception is preserved because step 6 derives
the same one-time key either way.

(cherry picked from commit 8e2e0b27ba0fdc0dd47cb94fc019405ea48b0a7e)
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode
The short version

What changed, and why it matters

This update fixes a flaw in how Trezor handled certain Monero 'sweep' transactions. In a sweep, the device normally skips checking whether the change address truly belongs to the user, because the change output is supposed to carry zero coins and go to a random address. A malicious computer or wallet software could have reused that unvalidated change address for an output that actually holds money. The device would then treat that money as change and lock it with a key the user might not control, effectively freezing or misdirecting funds. The fix rejects such transactions unless the address is the user's own primary address, where the math happens to be safe either way.

Recommended action

Users should upgrade Trezor firmware to a version containing this commit. Developers and wallet integrators should review any custom Monero signing flows that rely on the sweep-shape exemption and ensure they enforce the same primary-address exception.

Security signals we found

01

Change-address validation bypass in sweep-shape transactions

02

Potential aliasing of money-carrying output with unvalidated change address

03

Funds could be locked under an uncontrolled one-time key

04

Primary-address exception preserved due to a*R == r*A key equivalence

05

New regression test added for sweep-to-primary-address acceptance

Risk score

Why this scored 71/100

Our methodology →
Potential impact 22/30
Exploitability 16/25
Stealth signal 11/15
Affected reach 10/15
Confidence 8/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.