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

fix: Cross-store privilege escalation to approved pull payments/payouts in GreenfieldPullPaymentController (#7244)

Public commit record

What the developer wrote

Authored by Cerberus

90/100 · Strong
fix: Cross-store privilege escalation to approved pull payments/payouts in GreenfieldPullPaymentController (#7244)

Co-authored-by: Cerberus Merlin <merlin@cerberus.security>
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
The short version

What changed, and why it matters

This commit fixes a privilege escalation bug in BTCPay Server's Greenfield API. Two authorization checks were passing 'null' instead of the actual store ID when verifying whether a user could auto-approve pull payments or payouts. In BTCPay Server's authorization system, a null resource likely causes the check to fall back to a global permission evaluation, meaning a user who only had permission on one store could potentially approve or auto-approve pull payments/payouts for other stores where they should have been denied. The patch simply passes the correct storeId so the permission is scoped properly.

Recommended action

Upgrade to the patched version. If running an affected release, review audit logs for cross-store pull payment or payout approvals, especially auto-approved claims and manually approved payouts created by users who only had CanCreatePullPayments on a different store. Consider rotating API keys and re-evaluating store-level role assignments.

Security signals we found

01

Cross-store privilege escalation

02

Authorization bypass via null resource

03

Missing resource scoping in policy check

04

Pull payment/payout auto-approval affected

05

Co-authored by security researcher (Cerberus Merlin / merlin@cerberus.security)

Risk score

Why this scored 81/100

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