Issue:
The claimAndSwap
function lacks validation of the _amountClaim
parameter against the actual claimable balance from the ITransmuter
. If a Keeper provides an _amountClaim
greater than the getClaimableBalance()
for the strategy, the call to transmuter.claim()
may revert, disrupting operations or creating inefficiencies.
Impact:
Medium to High.
Operational Disruption: If _amountClaim
exceeds the claimable amount, the function will revert, preventing swaps from proceeding and halting yield generation.
Keeper Costs: Reverting transactions consume gas, leading to inefficiencies for Keepers performing valid operations.
Systemic Impact: Continuous reverts can destabilize the strategy, leading to delayed fund rebalancing or misaligned user expectations for yield.
Evidence from Code:
The transmuter.claim()
call directly uses _amountClaim
without validating it against transmuter.getClaimableBalance(address(this))
.
Overestimated Claims by Keepers:
A Keeper unintentionally or maliciously specifies _amountClaim
greater than getClaimableBalance()
.
The transmuter.claim()
function reverts, wasting gas and interrupting the strategy's operations.
Repeated Reverts Leading to DoS:
Multiple calls with invalid _amountClaim
values can lead to a Denial-of-Service (DoS) condition where valid swaps are delayed or entirely blocked.
Exploitation of Revert Behavior:
An attacker manipulates Keepers into repeatedly submitting invalid _amountClaim
values, causing operational disruptions.
Validation Check for _amountClaim
: Ensure that _amountClaim
does not exceed the claimable balance.
Graceful Fallback Mechanism: If _amountClaim
exceeds the claimable balance, adjust it dynamically to the available balance.
Updated Function Implementation:
Resilience: Prevents unnecessary transaction failures, ensuring the strategy continues operating even under adverse conditions.
Efficiency: Minimizes wasted gas from reverts, reducing operational costs for Keepers.
Transparency: Logs adjustments and discrepancies, enhancing monitoring and debugging.
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.