The lock function in the veRAACToken contract performs an incorrect supply check by comparing the total supply of veRAAC tokens (totalSupply()) with the amount of RAAC tokens being locked (amount). As a result, the contract may allow the total veRAAC supply to exceed the defined MAX_TOTAL_SUPPLY limit of 100 million tokens.
https://github.com/Cyfrin/2025-02-raac/blob/main/contracts/core/tokens/veRAACToken.sol
incorrectly uses amount of RAACTokens to check VeRAACToken max supply.
problematic code ;
This check is flawed because amount represents the raw RAAC token quantity, not the corresponding veRAAC equivalent.
Supply Dilution : The total veRAAC supply can exceed the intended limit of 100 million tokens, diluting the voting power and reward distribution for legitimate users.
manual review
The lock function should calculate the veRAAC equivalent before performing the supply check;
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.