The lack of protection against front-running in createNewDAOMembership allows attackers to block legitimate DAO creation by registering the same ensName, resulting in DoS and “snatch registration.”
In the createNewDAOMembership function, the DAOInputConfig is passed as an argument, containing the configuration details for the DAO:
In the function, getENSAddress[daoConfig.ensname] is checked to ensure it doesn't exist.
However, this check leaves the function vulnerable to front-running. An attacker could monitor the network, observe the transaction, and then front-run it by registering the same ensName just before the original transaction. This action effectively blocks the original createNewDAOMembership transaction, resulting in a Denial of Service (DoS) for legitimate DAO creation.
Additionally, this behavior allows for “snatch registration,” where an unauthorized party preemptively registers a desired ensName before the legitimate creator, undermining the integrity of the DAO registration process.
This vulnerability exposes the system to a DoS attack where legitimate DAO creation transactions can be blocked by front-runners who preemptively register identical ensNames. It also enables unauthorized entities to “snatch register” legitimate DAO names, disrupting intended usage and potentially harming the platform’s functionality.
Manual
To mitigate this vulnerability, consider revising the design:
Allow duplicate ensNames to prevent blocking legitimate creations.
Restrict the createNewDAOMembership function to be callable only by FrontEnd Account.
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.