58345 sc low operators in alchemistallocator sol can allocate higher than dao defined limits
Submitted on Nov 1st 2025 at 12:29:29 UTC by @TyroneX for Audit Comp | Alchemix V3
Report ID: #58345
Report Type: Smart Contract
Report severity: Low
Target: https://github.com/alchemix-finance/v3-poc/blob/immunefi_audit/src/AlchemistAllocator.sol
Impacts:
Contract fails to deliver promised returns, but doesn't lose value
Description
Brief/Intro
Operator role in AlchemistAllocator.sol can allocate higher than DAO defined limits, potentially messing up internal accounting
Vulnerability Details
The AlchemistAllocator contract allows two users call AlchemistAllocator::allocate. Admin and operator. It also defines caps set by both the vault and DAO. Admins can deposit upto vault cap however operators are restricted to DAO defined caps. However, a wrong comparison logic allows operators bypass this check and deposit up to vault cap. Also, the adjusted variable, which tracks the cap, is never used for any check.
Impact Details
Operator addresses can allocate to vault, values above DAO defined limits. Potentially messing up internal accounting and allowing operators overexpose funds to risky strategies.
References
Recommended Mitigation: Cap adjusted for operator at DAO target and add check
Proof of Concept
Proof of Concept
Proof of Concept: Place the following inside MockAlchemistAllocator in AlchemistAllocator.t.sol to simulate allocate function with real DAO target
Place this in AlchemistAllocatorTest contract
This passes showing operators can deposit higher than dao limits
Was this helpful?