Skip to content

Commit efbd386

Browse files
UltraDAGcomClaude Opus 4.7 (1M context)
andcommitted
bounty: award BB-2026-0005 to Sumitshah00 (10K UDAG, Critical)
GHSA-9chc-gjfr-6hrq — pocket spending-policy bypass. Fixed in fb6ef59. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent fb6ef59 commit efbd386

1 file changed

Lines changed: 45 additions & 5 deletions

File tree

docs/security/bug-bounty/LEDGER.md

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**Program Start:** March 8, 2026
44
**Total Allocated:** 500,000 UDAG (mainnet)
5-
**Total Awarded:** 42,500 UDAG
5+
**Total Awarded:** 52,500 UDAG
66
**Total Paid (Testnet):** 0 UDAG (pending — faucet rate-limited)
77
**UDAG Mainnet Token:** [`0x9cFD2011DF13d9E394B5Bb59f0f7e7A5C512155b`](https://arbiscan.io/token/0x9cFD2011DF13d9E394B5Bb59f0f7e7A5C512155b) (Arbitrum One, deployed 2026-04-12)
88
**Bounty Payment Source:** Genesis allocation holder `0x9aEcb515361af7980eaa16fE40c064f69738EbF9` (to be reimbursed from treasury post-emission)
@@ -152,6 +152,46 @@ Advisory: GHSA-hf8w-rcvm-rgqr
152152
Status: Validated / Fixed / Pending Testnet Payout / Pending Mainnet
153153
```
154154

155+
### BB-2026-0005
156+
```
157+
ID: BB-2026-0005
158+
Date: 2026-04-21
159+
Hunter: Sumitshah00 (tudg17lzd76ue95ht07hxzna8mzey4tkpk85jtjns2d)
160+
Severity: Critical
161+
Reward: 10,000 UDAG (mainnet promise)
162+
Testnet Paid: Pending (faucet rate-limited; will send via validator key)
163+
Source: Treasury (paid from treasury emission post-launch)
164+
Issue: SmartAccount spending-policy enforcement was not applied to
165+
transfers originating from pocket sub-addresses. Authorization
166+
in verify_smart_transfer correctly resolved pocket_to_parent →
167+
parent, but check_spending_policy and apply_smart_transfer_tx
168+
keyed enforcement on tx.from — with no SmartAccountConfig at
169+
the pocket address, the default-deny branch fell through to
170+
Ok(None) and bypassed every constraint on the account: daily
171+
limit, vault threshold + time-lock delay, whitelist restriction,
172+
and per-key daily limit. A holder of a low-security key whose
173+
entire purpose is to cap blast radius could drain every pocket.
174+
Reporter supplied a self-contained PoC against a 1 UDAG daily
175+
limit demonstrating instant drainage of a 10K UDAG pocket.
176+
Fix: check_spending_policy now resolves pocket_to_parent → parent
177+
before loading the policy config. apply_smart_transfer_tx threads
178+
the same policy_owner through the per-key daily-limit check and
179+
pushes pending vault transfers onto the parent config. Added
180+
`from: Address` to PendingVaultTransfer so apply_cancel_vault_tx
181+
refunds to the origin surface rather than silently rehoming the
182+
balance onto the parent. Zero-address fallback on the new field
183+
routes legacy records to the parent.
184+
Regression tests: crates/ultradag-coin/tests/smart_account_policy_pocket.rs
185+
- pocket_transfer_respects_parent_daily_limit
186+
- pocket_transfer_routes_large_spend_to_parent_vault
187+
- pocket_vault_cancel_refunds_pocket_not_parent
188+
- pocket_transfer_respects_per_key_daily_limit
189+
- pocket_transfer_inherits_parent_whitelist
190+
Advisory: GHSA-9chc-gjfr-6hrq
191+
Fix: fb6ef59d
192+
Status: Validated / Fixed / Pending Testnet Payout / Pending Mainnet
193+
```
194+
155195
---
156196

157197
## Pending Validation
@@ -169,9 +209,9 @@ Status: Validated / Fixed / Pending Testnet Payout / Pending Mainnet
169209
- Unique hunters: 0
170210

171211
### April 2026
172-
- Submissions: 4 valid (GHSA-q8wx-2crx-c7pp, GHSA-6gwf-frh8-ppw7, GHSA-rprp-wjrh-hx7g, GHSA-hf8w-rcvm-rgqr)
173-
- Validated: 4
174-
- Rewards: 42,500 UDAG
212+
- Submissions: 5 valid (GHSA-q8wx-2crx-c7pp, GHSA-6gwf-frh8-ppw7, GHSA-rprp-wjrh-hx7g, GHSA-hf8w-rcvm-rgqr, GHSA-9chc-gjfr-6hrq)
213+
- Validated: 5
214+
- Rewards: 52,500 UDAG
175215
- Unique hunters: 1 (Sumitshah00)
176216

177217
### Mainnet launched: 2026-04-10
@@ -280,5 +320,5 @@ All changes to this ledger are tracked in git history. Each reward entry include
280320
---
281321

282322
**Ledger Maintainer:** UltraDAG Core Team
283-
**Last Updated:** April 15, 2026
323+
**Last Updated:** April 21, 2026
284324
**Next Audit:** May 11, 2026

0 commit comments

Comments
 (0)