AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Low 41 Cryptographic libraries

wallet2: use decodeRct for reserve proof amount validation

Public commit record

What the developer wrote

Authored by selsta

65/100 · Adequate
wallet2: use decodeRct for reserve proof amount validation

also update check_tx_key_helper for consistency
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
The short version

What changed, and why it matters

This commit changes how the Monero wallet validates hidden transaction amounts in two places: when checking a transaction key and when verifying a reserve proof. It replaces custom code that manually decoded encrypted amounts with a shared helper function called decodeRct. The stated goal is consistency and using the standard decoding path. The change removes several manual safety checks (for example, checks that the encrypted mask and amount values are valid curve scalars) and no longer verifies that the decoded amount matches the transaction's public commitment. That could, in theory, allow a maliciously crafted proof or transaction to make the wallet accept an incorrect amount, though the practical exploit path is unclear without more context.

Recommended action

Review the implementation of rct::decodeRct to confirm it performs equivalent scalar validation and commitment verification for the relevant RCT types. If decodeRct does not enforce those checks for all transaction types, consider restoring them or ensuring the helper is safe for these call sites. Test reserve proof verification against crafted proofs that supply invalid ECDH tuples or mismatching commitments. If this change fixes a known security bug, request a CVE and vendor advisory.

Security signals we found

01

Removal of manual sc_check validation on ECDH mask and amount scalars

02

Removal of on-chain Pedersen commitment equality check in amount decoding path

03

Delegation to decodeRct, a shared helper, which may or may not preserve the same validation

04

Change affects reserve proof verification, which is used to prove ownership of funds without revealing the wallet's view key

05

Change also affects check_tx_key_helper, used to verify incoming transaction amounts

Risk score

Why this scored 41/100

Our methodology →
Potential impact 12/30
Exploitability 8/25
Stealth signal 6/15
Affected reach 7/15
Confidence 5/10
Evidence quality 3/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.