58040 sc low removestrategy is non functional
Submitted on Oct 30th 2025 at 07:49:46 UTC by @teoslaf1 for Audit Comp | Alchemix V3
Report ID: #58040
Report Type: Smart Contract
Report severity: Low
Target: https://github.com/alchemix-finance/v3-poc/blob/immunefi_audit/src/AlchemistCurator.sol
Impacts:
Protocol insolvency
Description
Summary
The removeStrategy() function in AlchemistCurator is completely non-functional and will always revert. This prevents the protocol from removing strategies from vaults, even in emergency situations where a strategy becomes compromised or malicious.
Vulnerability Details
Root Cause
The removeStrategy() function calls vault.removeAdapter() directly without first submitting the operation to the timelock queue. However, removeAdapter() in VaultV2 has a timelocked() modifier that requires the operation to be submitted via vault.submit() first.
Vulnerable Code
VaultV2 Implementation
Impact
Cannot remove strategies: All attempts to remove strategies will revert with
DataNotTimelocked()Compromised strategies cannot be removed: If a strategy is hacked or becomes malicious, it cannot be removed
No emergency response: Protocol cannot respond to security incidents involving strategies
Permanent lock-in: Strategies are permanently locked in vaults once added
Deprecated protocols: Cannot remove strategies from deprecated or sunset protocols
Risk accumulation: Bad strategies accumulate over time with no removal mechanism
Proof of Concept
Proof of Concept
Add this to AlchemistCurator.t.sol
Was this helpful?