DeFiFoundrySolidity
16,653 OP
View results
Submission Details
Severity: medium
Invalid

No Automatic Rebalancing Mechanism

Description

The strategy heavily depends on keepers calling claimAndSwap to convert accumulated WETH (underlying) into alETH (asset). There is no built-in trigger—such as a _tendTrigger or a price-based check—that automatically rebalances positions when certain thresholds are met (e.g., a large WETH balance builds up or the price environment becomes highly advantageous). If keepers delay or fail to act, the contract may hold significant WETH unexchanged for a prolonged period, thereby missing yield opportunities or incurring price risk.

Impact: Medium to High

  1. Yield Loss

    • Large sums of WETH remain idle instead of being swapped and redeployed, reducing total returns.

  2. Excessive Price Risk

    • If the protocol aims to maintain a synthetic peg (alETH ~ 1 WETH), unexchanged WETH introduces exposure to price fluctuations or de-pegging events.

  3. Keeper Exploit / Negligence

    • Dishonest or incompetent keepers might wait for favorable conditions (or front-run trades) to gain an edge, potentially extracting additional value at the protocol’s expense.


Evidence from Code

  • _deployFunds and _harvestAndReport:

    • No logic enforces a certain level of WETH is immediately swapped for alETH—just a direct deposit of alETH or a snapshot of current balances.

  • claimAndSwap:

    • Entirely relies on external keepers to call it, with no fallback if they don’t.

// Pseudocode snippet (not actual code):
if (transmuter.getClaimableBalance(address(this)) > 0) {
// Still needs manual "claimAndSwap" call by keeper
// No automatic rebalancing...
}

Potential Attack / Failure Scenario

  1. Keeper Inaction

    • The keeper simply never calls claimAndSwap. Significant WETH accumulates, sitting idle.

  2. Market Price Shifts

    • The WETH:alETH price changes drastically in the meantime. By the time a swap is finally executed, the peg is off, or a front-run occurs.

  3. Arbitrage / Sandwich

    • Malicious keepers or external actors exploit the delayed large swap for personal gain, capturing the arbitrage premium.


Recommended Mitigations

  1. Implement a _tendTrigger or Automated Rebalance

    • Use a function that checks if unclaimed WETH or the price deviation exceeds a certain threshold, then calls _tend() or similar to rebalance automatically.

    • This can be built into the strategy or invoked by external keepers but triggered by on-chain criteria.

  2. Incentivize Frequent claimAndSwap

    • Introduce a reward or fee-sharing model for keepers who perform small, regular swaps rather than allowing large amounts to accumulate.

  3. Use an On-Chain Price Oracle

    • Compare WETH:alETH price to a trusted oracle. If the protocol’s price diverges from the peg by more than X%, automatically rebalance or restrict deposits until alignment is restored.

  4. Multisig or Additional Governance Oversight

    • If keepers are unresponsive, allow governance or a privileged role to step in and rebalance. Ensure it can’t be used maliciously by requiring a short timelock or a multi-signature consensus.


Conclusion

Without an automated mechanism to rebalance positions when WETH accumulates or the price becomes favorable, the strategy is exposed to significant timing risks and missed yield opportunities. Incorporating periodic or threshold-based rebalancing logic—through _tendTrigger or a similar feature—can bolster efficiency, reduce reliance on keepers, and safeguard against potential market manipulation or negligence.

Updates

Appeal created

inallhonesty Lead Judge 5 months ago
Submission Judgement Published
Invalidated
Reason: Design choice

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.