The core token implementation exposes a critical design weakness in the internal minting logic.
The _mint() function inside ERC20Internals.sol allows arbitrary modification of the total supply and user balances without any form of access control or hard internal constraints.
Although the function is marked as internal, it is part of a reusable token core intended for inheritance. Any external contract that inherits this module can expose the minting mechanism publicly, intentionally or accidentally, without restriction.
This makes the base design fundamentally unsafe in real-world deployments, because inheriting contracts may assume the internal logic enforces supply discipline when it does not.
Likelihood: High
The contract is designed for inheritance.
Many developers rely on internal safety guarantees.
Nothing prevents child contracts from exposing this function publicly.
Impact: High
Unlimited token creation.
Total supply inflation.
Full loss of economic integrity of the token.
The following PoC demonstrates how a malicious inheriting contract can expose minting publicly and allow arbitrary users to mint unlimited tokens.
The test passes, confirming that any account can mint arbitrary tokens.
Add access control directly inside _mint() so that inheriting contracts cannot expose it unsafely.
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.