The allocateFunds()
function in Treasury contract directly overwrites existing allocations without considering previous values:
Previous allocation value is lost on new allocation. No specification of which token is being allocated and allocations are not checked against actual token balances
This means allocators can accidentally erase previous allocations. There is no way to track which token is allocated and admin can allocate more than treasury actually holds.
Track allocations per token and add/subtract instead of overwrite:
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.