Scope: contracts/core/collectors/Treasury.sol
The allocateFunds
function allows allocators to assign arbitrary fund amounts to recipients without verifying if the treasury holds sufficient tokens. This creates a risk of unrealistic allocations that cannot be fulfilled during actual withdrawals.
Function: allocateFunds(address recipient, uint256 amount)
The allocation system tracks amounts in a generic _allocations
mapping but does not:
Check if the treasury holds enough tokens to honor allocations
Reserve allocated funds to prevent double-spending
Creates systemic risk of unbacked allocations.
Recipients may act on false assumptions (e.g., initiate investments) based on invalid allocations.
Withdrawals tied to allocations will fail when treasury lacks sufficient funds, disrupting operations.
Undermines trust in the protocol's financial reporting.
Manual code review (static analysis)
Verify sufficient balance of the contract when allocating funds + track allocations
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.