The Treasury contract manages protocol treasury funds with role-based access control. It allows allocators to give specific fund allocations for users to spend. However, the current implementation, allows for users to front-run changes being made.
Currently, the allocateFunds directly sets a new value for the user's allocation:
This could lead to users front-running updates and for example, when the allocator wants to decrease an allocation, the user uses up his current allocation, then gets a new one set, eventually being able to spend more than what was meant for him.
Users front-run allocation decreases.
Manual review
Check the current user allocation, and then either increase it or decrease it.
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.