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

scope payjoin endpoints to the payment tab and transaction instead of the destination address

Public commit record

What the developer wrote

Authored by Craig Raw

50/100 · Thin
scope payjoin endpoints to the payment tab and transaction instead of the destination address
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
The short version

What changed, and why it matters

This commit changes how Sparrow Wallet remembers Payjoin payment instructions. Previously, the app stored Payjoin details keyed only by the destination Bitcoin address. That meant if you later made an unrelated payment to the same address, the app might still treat it as a Payjoin and contact the original Payjoin server. Now, Payjoin details are tied to the specific transaction (using its ID) and the payment tab, so they don't leak across separate payments to the same address. The included tests explicitly check that a later payment to the same address no longer retrieves the old Payjoin URI.

Recommended action

Reviewers should verify that `calculateTxId(false)` is stable across PSBT lifecycle stages (creation, export, signing, finalization) and that the URI is cleared in all cancellation/close paths, not only on broadcast. Users should upgrade to a release containing this commit if they use Payjoin.

Security signals we found

01

State isolation bug: Payjoin metadata previously shared per address across unrelated transactions

02

Fix maps Payjoin URI to transaction ID (PSBT txid) instead of destination address

03

Payjoin URI is now cleared after broadcast, reducing window for reuse

04

New regression test confirms same-address later transaction does not retrieve old Payjoin URI

05

No explicit CVE, vendor advisory, or researcher attribution in commit or supplied references

Risk score

Why this scored 44/100

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