In veRAACToken, users can withdraw their locked RAAC tokens after the lock period ends by calling the withdraw function. However, this function fails to update _lockState.totalLocked, which tracks the total amount of RAAC tokens locked in the system. Since _lockState.totalLocked is never decremented when withdrawals occur, the system will eventually reach _lockState.maxTotalLocked, blocking all future locks or increases and effectively causing a DoS for new or existing users.
High. Once _lockState.totalLocked reaches _lockState.maxTotalLocked, users will be unable to lock new tokens or increase existing lock positions, disrupting core protocol functionality.
High. Since _lockState.totalLocked is never reduced, it is inevitable that it will eventually reach _lockState.maxTotalLocked, triggering the DoS scenario.
Update the _lockState.totalLocked whenever a user calls the withdraw function.
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.