58040 sc low removestrategy is non functional

Submitted on Oct 30th 2025 at 07:49:46 UTC by @teoslaf1 for Audit Comp | Alchemix V3arrow-up-right

  • 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

  1. Cannot remove strategies: All attempts to remove strategies will revert with DataNotTimelocked()

  2. Compromised strategies cannot be removed: If a strategy is hacked or becomes malicious, it cannot be removed

  3. No emergency response: Protocol cannot respond to security incidents involving strategies

  4. Permanent lock-in: Strategies are permanently locked in vaults once added

  5. Deprecated protocols: Cannot remove strategies from deprecated or sunset protocols

  6. 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?