Install
$ agentstack add skill-shuvonsec-web3-bug-bounty-hunting-ai-skills-web3-case-study-role-misconfig ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
CASE STUDY: ROLE MISCONFIGURATION IN A YIELD AGGREGATOR
> Bug Class: Access Control | Severity: Critical/Medium | Payout Range: $10K–$50K > This file shows how to apply the full 10-class methodology to a real yield aggregator target.
TARGET PROFILE (Anonymized)
| Field | Value | |-------|-------| | Protocol Type | Yield aggregator — stablecoin → lending protocol → harvest → DEX → reward token | | Max Bounty | $50K (Critical) | | TVL | Low (fresh program, under $100K) | | Core Contracts | Vault.sol, RewardsDistributor.sol | | Program Age | ~5 days when hunted (fresh = low competition) | | Prior Audits | Firm A (16 findings, all Risk Accepted) + Firm B (18 findings, all Risk Accepted) |
Scorecard: Max bounty (+2) + custom math (+1) + recent code (+1) + known prior audits (+1) + public source (+1) + program new (+2) = 8/10 → HUNT
Why this scores high: Fresh program on a live bounty platform + prior audits that accepted all risk = team is aware of issues but hasn't patched them. Hunt for what auditors missed or flagged but accepted.
ARCHITECTURE + FUND FLOW
User deposits Stablecoin
↓ deposit(uint256 amount)
Vault.sol stores:
- deposits[user] += amount
- totalDeposited += amount
- depositTimestamp[user] = block.timestamp
↓ safeTransferFrom(user, address(this), amount)
↓ lendingProtocol.supply(stablecoin, amount, address(this), 0)
Interest-bearing token accrues in Vault.sol balance
↓ (periodic) _performHarvest()
aToken balance > totalDeposited + DUST_THRESHOLD
↓ lendingProtocol.withdraw(stablecoin, harvestAmount - 1, address(this))
↓ dex.exactInputSingle(stablecoin → rewardToken)
↓ RewardsDistributor.distribute(rewardToken, amount)
RewardsDistributor tracks:
- cumulativeRewardPerShare updates
- users can call claimFor(user) to collect rewardToken
User withdraws:
↓ withdraw(uint256 amount)
if block.timestamp \
"getRoleMemberCount(bytes32)(uint256)" \
"$(cast keccak 'DISTRIBUTOR_ROLE')"
# Expected: 0 = confirmed bug
# Alternative: Etherscan → Events → filter "RoleGranted"
# If no RoleGranted events with DISTRIBUTOR_ROLE hash = confirmed
3. Incomplete Path — Known (Risk Accepted)
Firm B HAL-05: deposit() resets depositTimestamp[user] even on partial top-ups, extending the lock period for all existing deposits. Risk Accepted by team.
4. Off-by-One — CLEAN
All boundary operators (>=, ` grantRole calls → investigate each missing grant
**Protocols to check for this pattern:** Any protocol where `RewardsDistributor`, `FeeDistributor`, `YieldDistributor`, or `Distributor` is a separate contract from the main vault.
---
→ NEXT: [08-ai-tools.md](08-ai-tools.md)
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [shuvonsec](https://github.com/shuvonsec)
- **Source:** [shuvonsec/web3-bug-bounty-hunting-ai-skills](https://github.com/shuvonsec/web3-bug-bounty-hunting-ai-skills)
- **License:** MIT
- **Homepage:** https://awarexone.com/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.