The _mint() function in Token-0x's base implementation is correctly marked as internal, requiring derived contracts to implement proper access control when exposing minting functionality. However, derived contracts can expose this function publicly without any access controls, allowing anyone to mint unlimited tokens.
This creates a critical vulnerability when developers inherit from Token-0x without implementing proper access control patterns.
Likelihood:
Any derived contract that exposes _mint() publicly without access controls will be vulnerable
Developers inheriting from Token-0x may not realize they need to implement access control
The vulnerability manifests immediately upon deployment of such contracts
Impact:
Unlimited token minting by anyone, completely destroying token economics
Total loss of value for all legitimate token holders
Protocol failure and potential financial losses
The test demonstrates that a contract exposing _mint() without access control allows any address to mint unlimited tokens. The attacker address successfully mints 1 million tokens without any restrictions.
Derived contracts must implement proper access control when exposing minting functions. The base contract itself is secure - the responsibility lies with implementers.
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.
The contest is complete and the rewards are being distributed.