In SmartVaultV3 contract, swap funtion is used to swap tokens, and constructs ISwapRouter.ExactInputSingleParams, using no expiration deadline.
The deadline parameter in the is set to block.timestamp. That means the function will accept a token swap at any block number (i.e., no expiration deadline).
block.timestamp will have the value of whichever block the transaction is inserted into, hence the transaction can be held indefinitely by malicious validators.miners.
Note also that the calculated minimumAMountOut can be 0 (see the calculateMinimumAmountOut function).
Malicious miners can hold the transaction a long as they wish to, and this can lead to tokens being swapped at outdated prices and less yield.
Manual Code Review
Consider a reasonable value to the deadline argument, and let it be updated depending on the chain. For example, Uniswap sets it to 30 minutes on the Etehreum mainnet and to 5 minutes on L2 networks.
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.