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

blindpsbt: refuse to blind a PSET output with no amount

Public commit record

What the developer wrote

Authored by Byron Hambly

73/100 · Adequate
blindpsbt: refuse to blind a PSET output with no amount

BlindPSBT dereferenced output.amount without a nullopt check. A crafted v0
PSET output (m_blinder_index set, amount absent) reached the blinding loop
and dereferenced a disengaged std::optional, which is undefined behaviour.
Refuse such outputs with BlindingStatus::INVALID_BLINDER.
✓ 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/undefined-behavior bug in the Elements wallet's confidential-transaction blinding code. When processing a specially crafted Partially Signed Elements Transaction (PSET), the software would blindly use an output amount that might not exist, which can crash the program or cause unpredictable behavior. The fix now checks whether the amount is present and refuses to blind the output if it is missing.

Recommended action

Apply the patch. Consider adding regression tests for crafted v0 PSETs with missing amount fields and review other optional PSET fields for similar missing-validation issues.

Security signals we found

01

Undefined behavior from dereferencing a disengaged std::optional

02

Missing input validation on optional PSET field

03

Potential denial-of-service/crash via crafted PSET

04

Confidential transaction blinding code path affected

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.