The _deployFunds
and _freeFunds
functions in the StrategyOp
contract do not validate the operational state of the transmuter
contract. If the transmuter
is paused or malfunctioning, these functions will revert, disrupting fund deployments and withdrawals. Although user funds remain secure, this can lead to delayed access and missed yield opportunities, undermining the strategy's reliability.
The StrategyOp
contract relies on the transmuter
for key functionalities, such as deploying funds and freeing funds for withdrawal. However, there are no checks for the transmuter
's state (e.g., paused or in maintenance) before invoking critical calls like transmuter.deposit
and transmuter.withdraw
.
If the transmuter
is paused:
Deposits via _deployFunds
will fail, leaving funds idle and unutilized.
Withdrawals via _freeFunds
will revert, preventing users from accessing their assets
**In _deployFunds
: **No check is made for the transmuter’s state before calling transmuter.deposit
.
**In _freeFunds
: **No validation is performed before calling transmuter.withdraw
.
The function assumes transmuter.withdraw
will always execute successfully. If the transmuter
is paused, this will revert.
The lack of transmuter state checks can cause significant disruptions:
Failed Withdrawals: Users cannot withdraw funds during transmuter downtime, leading to frustration and delays.
Inoperable Strategy: Core functions like fund deployment and withdrawals will fail, leaving the strategy temporarily non-functional.
Missed Yield Opportunities: When the transmuter is paused, funds intended for yield generation will remain inactive, preventing users from earning returns.
Although user funds remain secure, these issues delay access to assets, disrupt operations, and may erode user confidence in the protocol.
Manual code review
**Add Transmuter State Validation: **Implement a function to check the transmuter
's operational state, such as paused
.
Example:
**Guard Transmuter Interactions: **Validate the transmuter
state before calling any critical functions.
Example for _deployFunds
:
**Introduce Emergency Pausing Logic: **Add functionality to pause the strategy when the transmuter
is non-operational to prevent reverts. This will ensure better operational continuity.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.