Description:
The MembershipFactory contract lacks validation that:
DAO creators have completed required KYC/AML process
DAO joiners own a pseudo-KYC Identity NFT
From One World Project's website:
DAO Creation: Sign Up and Verify - Create an account and complete the KYC/AML process.
DAO Membership: Purchase an Identity NFT, which serves as your pseudo-KYC and digital business card. This NFT verifies your identity and grants you access to the platform's features.
However, examining MembershipFactory.sol shows no validation at the contract level for either requirement:
Impact:
Complete bypass of platform's identity verification and compliance requirements
Any address can create DAOs without KYC/AML verification
Any address can join DAOs without Identity NFT verification
Core platform functionality that relies on verified identities is compromised
Reliance solely on frontend restrictions which can be circumvented by anyone who knows the contract address post-deployment.
Explanation of severity:
This is considered a high severity bug as likelihood is High(very easy to circumvent) and the impact is also High(having members be KYC'd is core principle of protocol).
Security through obscurity is not a valid approach.
If it was the intention of the protocol to control entire business flow on the frontend, the functions should have access controls, thus the issue remains.
Proof of Code:
Create a new test folder and ensure foundry.toml::profile.default::test points to test folder.
Create a contract in the folder with the following code:
run forge test.
Tools Used:
Manual review and custom Forge test suite - Convert Hardhat project to Foundry
Recommended Mitigation:
Add access controls if the intention was frontend control from the protocol.
Implement on-chain KYC tracking for DAO creation.
Add Identity NFT check to DAO joining:
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.