The increase
function in veRAACToken.sol allows users to bypass the minimum lock duration requirement by adding tokens to an existing lock after some time has passed, enabling shorter-than-intended lock periods and potential governance and boost manipulation.
When users lock tokens via the function lock in veRAAC token, there are proper checks in place to see to that the MIN_LOCK_DURATION
is not breached:
But, the veRAACToken::function increase
updates the lock amount without recalculating or validating the remaining lock duration:
A user could use the following attack path to exploit the vulnerability to manipulate governance and boost they might receive:
Due to this vulnerabillity, the malicious user gains voting power and boosts their rewards for 1000 RAAC with only 65-day commitment.
This loophole undermines the protocol's governance integrity by allowing users to gain disproportionate voting power with minimal commitment. It creates an unfair advantage for sophisticated users who can exploit this mechanism, potentially leading to skewed governance outcomes.
Manual review
Can add checks in the increase function to solve this issue:
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.