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

blindpsbt: reject off-curve blinding pubkey before ECDH

Public commit record

What the developer wrote

Authored by Byron Hambly

73/100 · Adequate
blindpsbt: reject off-curve blinding pubkey before ECDH

BlindPSBT passed the blinding pubkey straight to CKey::ECDH, whose only
validation is an assert on the peer key, so a crafted off-curve pubkey
(reaching IsBlinded() but failing IsFullyValid()) aborted the process.
Mirror the non-PSET path and return BlindingStatus::INVALID_BLINDER when the
pubkey is not fully valid.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit fixes a crash bug in Elements' confidential-transaction blinding code for PSBTs (Partially Signed Bitcoin Transactions). A malformed, attacker-chosen 'blinding public key' that is not actually a valid point on the cryptographic curve could slip through earlier checks and reach a low-level ECDH key-exchange routine. That routine only had an internal assertion for validation, so the invalid key would trigger an assertion failure and abort the running process. The fix adds an explicit validity check and returns a controlled error instead of crashing.

Recommended action

Apply the patch. Consider auditing all call sites that pass attacker-controlled public keys to CKey::ECDH or other low-level crypto routines to ensure IsFullyValid() or equivalent validation is performed. Add regression tests with off-curve and invalid pubkeys for the PSBT blinding path.

Security signals we found

01

Off-curve / invalid elliptic-curve public key reaches ECDH

02

Assertion abort (DoS / process termination) via crafted input

03

Missing input validation in PSBT blinding path compared to non-PSBT path

04

Return of controlled BlindingStatus::INVALID_BLINDER instead of crash

Risk score

Why this scored 62/100

Our methodology →
Potential impact 18/30
Exploitability 14/25
Stealth signal 8/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.