DAO's maximum number of members can be exceeded because lack of validation in function updateDAOMembership()
In DAOMembership creation flow, the maximum number of a DAO is counted as total number in all tiers
Also, in joining DAOMembership flow, the tier capacity is checked as below:
However, in case the DAOMembership is updated, the new tier amount config is not validated against both the old tier amount config and the minted amount. This can cause the DAO maximum number to be incorrectly tracked and can be exceeded
For example:
A DAO is created with 15 max members in 3 tier as [5, 5, 5]
All tiers reached maximum
DAO is updated with a new tier config having 4 tiers with numbers [4, 4, 4, 4]. After updated, the DAO will update the dao.maxMembers to 16, but there would be 4 more users can still join
dao.maxMemberscan be exceeded, which renders its usage redundant
Manual
Check the tier.amount againt tier.minted in update DAOMembership flow
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.