The executeSwapExactInput function is called from FeeDistributionBranch and CreditDelegationBranch to swap assets. This function relies on a deadline for Uniswap swaps, but no call to BaseAdapter::setDeadline is made before execution. If the deadline is not explicitly set, swaps will fail in Uniswap V2/V3 due to expired transactions, leading to unexpected failures.
FeeDistributionBranch and CreditDelegationBranch has swap functionality. It calls executeSwapExactInput functions from the adapters. When the swap target is uniswap, the executeSwapExactInput and executeSwapExactInputSingle function passes a deadline parameter with swap data when calling uniswap router:
This deadline is taken from BaseAdapter. If deadline is zero or outdated, Uniswap will reject the swap
Swaps will fail, causing keepers unable to convert assets to WETH in FeeDistributionBranch. convertMarketsCreditDepositsToUsdc, settleVaultsDebt and rebalanceVaultsAssets in CreditDelegationBranch will fail when swap is required. The protocol will not be able to balance vaults and reward users.
Call BaseAdapter::setDeadline to set deadline for new swap before calling adapter for swap and change it's owner restriction to allowed engines such that only allowed engines can call that function
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.