When the DAO creator creates the DAO, they set the token allowance for each tier. During updates, the creator can modify the allowed token amount per tier. However, this creates an opportunity for frontrunning, which could potentially alter the actual token limit intended for existing tiers.
The token amount allowed for each tier is set inside the createNewDAOMembership
function :
Inside updateDAOMembership
the EXTERNAL_CALLER
is allowed to adjust the current amount for each tier. it also include any new tier which will be added.
At Line 124
it is evident that after this update the new allowed amount will be used for current and newly added tiers. it will open a oppurtunity for attacker as dicussed below:
The attacker can exploits it via frontrunning updateDAOMembership
function when adjusting tier configurations in the DAO.
Create DAO:
The DAO has two tiers with the following configuration:
Tier | Amount Allowed | Max Members | Minted |
---|---|---|---|
0 | 15 | 30 | 10 |
1 | 15 | 30 | 10 |
Some token got minted on each tier.
DAO Update:
The DAO owner decides to add a new tier and adjusts the existing token amounts for each tier:
Tier | Amount Allowed | Max Members | Minted |
---|---|---|---|
0 | 10 | 30 | 10 |
1 | 10 | 30 | 10 |
2 | 10 | 30 | 0 |
The DAO owner submits this updateDAOMembership
transaction to adjust the token amounts.
An attacker sees the pending updateDAOMembership
transaction and frontruns it by minting additional tokens for tier 0
.
By doing so, they increase the total tokens minted in tier 0
to 11
, surpassing the updated limit of 10
before the DAO change is applied.
The DAO’s updated configuration now shows 10
tokens allowed for tier 0
, but 11
tokens have already been minted, bypassing the intended token limit.
This inconsistency in the token amounts undermines the DAO’s tier restrictions, allowing the attacker to bypass the intended limits for each tier.
Manual Review
To mitigate this Issue introduce pause/unpause mechanism . which will help you to keep each token tier in limit.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.