Root Cause: The decentralized_stable_coin.vy exports the set_minter function from snekmate's ERC20 module, allowing the owner to add arbitrary addresses as authorized minters at any time.
Impact: If the owner account is compromised or acts maliciously, they can add any address as a minter and mint unlimited DSC without any collateral backing. This destroys the peg and results in total loss of funds for all DSC holders.
Normal Behavior: Only the DSCEngine contract should be authorized to mint DSC tokens. This ensures all minted DSC is properly backed by collateral.
Issue: The decentralized_stable_coin.vy exports set_minter from snekmate's ERC20 module. The owner can add arbitrary addresses as minters, bypassing the collateral requirement entirel
Likelihood:HIGH
Reason 1 : Owner account is compromised (private key theft, phishing, social engineering)
Reason 2 : Malicious or compromised team member with owner access
Impact:
Impact 1 : Unlimited DSC minting without collateral backing
Impact 2 : Complete destruction of the peg and token value
An attacker who compromises the owner account calls set_minter(attacker_address, True) to grant themselves minting privileges. They then call mint(attacker_address, 1_000_000_000e18) to create 1 billion unbacked DSC. Finally, they sell this DSC on DEXs for WETH/WBTC, crashing the DSC price to zero and extracting all liquidity.
Remove the set_minter export entirely and set the DSCEngine as the only authorized minter during construction. This ensures the minting authority is immutably tied to the collateral-backed engine contract.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.