The SmartVaultV3::swap() function uses block.timestamp as the deadline which is literally no deadline and can lead to loss of funds during token swaps.
The deadline parameter in the swap() function being set as block.timestamp enforces the user or msg.sender will have to accept a token swap at any block number (i.e., deadline of infinity).
Without a realistic deadline, swaps can be held until the price no longer favors the user thereby resulting in a loss for the user as they would happen in unfavorable price points. Due to this, user vaults can lose significant amount of funds from slippage during swaps.
Manual review
We recommend adding a parameter deadline with a proper timestamp in the function that would be chosen by the user or is determined off-chain.
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.