Project

One World
NFTDeFi
15,000 USDC
View results
Submission Details
Severity: medium
Invalid

Using name instead of important parameter when `createNewDAOMembership` may cause DOS

Summary

When createNewDAOMembership, you should use important parameters to check if the same DAO membership has been created. If you only check by name, it may cause DOs

Vulnerability Details

An attacker can prevent the creation of any dao membership by front-running a transaction to submit a DAO membership with the same daoConfig.ensname, resulting in createNewDAOMembership DOS.

function createNewDAOMembership(DAOInputConfig calldata daoConfig, TierConfig[] calldata tierConfigs)
external returns (address) {
require(currencyManager.isCurrencyWhitelisted(daoConfig.currency), "Currency not accepted.");
require(daoConfig.noOfTiers == tierConfigs.length, "Invalid tier input.");
require(daoConfig.noOfTiers > 0 && daoConfig.noOfTiers <= TIER_MAX, "Invalid tier count.");
require(getENSAddress[daoConfig.ensname] == address(0), "DAO already exist.");
//......

Impact

Ordinary users cannot create DAO membership normally

Tools Used

Manual review

Recommendations

When createNewDAOMembership, you should use important parameters to check if the same DAO membership has been created.

Updates

Lead Judging Commences

0xbrivan2 Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Known issue
0xbrivan2 Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Known issue

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.

Give us feedback!