Members of sponsored DAOs can upgrade their memberships by burning two tokens from their current tier to mint one token in a higher tier. While these changes are applied in the membership contract, they are not reflected in the DAOConfig struct in the factory contract, resulting in a desynchronization between the actual membership distribution and the DAO configuration.
When the tier-specific member counts are not updated in the DAOConfig struct, fewer users may be able to mint tokens in lower tiers than intended, while more users than allowed can mint tokens in higher tiers. This leads to an imbalanced distribution of memberships, deviating from the intended structure set by the DAO. Additionally, the upgrade function does not verify if the new tier has already reached its maximum membership limit, allowing more tokens to be minted than configured.
The PoC below demonstrates this issue: Alice mints two tier 6 memberships, then upgrades to tier 5. Although the tier-specific token balances are updated in the membership contract, the DAOConfig struct in the factory does not reflect these changes. This inconsistency can disrupt DAO governance by skewing the tier allocations.
Manual review.
Update the tier counts in the DAOConfig struct after each upgrade, and add a validation check to ensure the target tier does not exceed its maximum allowed membership 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.