veRAACToken::lock() has a missing check which prevents users from creating new lock positions with different amount & duration .
Due to this it is possible create more lock positions for lesser duration but when withdraw() is called after lock duration ends, only the most recently locked funds are recieved and calling withdraw() again reverts with LockNotFound()error and all previously locked tokens are lost for user.
TimeLock in VeTokens lock() can be overriden.
Tokens are lost for users if they create multiple position.
Different Lock postions can be made with different amount and durations which will also affect functionality of voting Power calculation.
Prevent user from making multiple lock positions.
Prevent user from changing duration/amount without extend(),increase() functions
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.