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
152152Status: 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