The cancelFlow function in the PerpetualVault contract could revert due to the use of safeTransfer when transferring collateral tokens. If a token receiver is blacklisted between the deposit and the cancel order, the transfer will fail, preventing the function from executing successfully.
The function calls safeTransfer(collateralToken, recipient, amount), which relies on the token contract’s implementation of transfer().
If the token receiver gets blacklisted, because the protocol is using USDC
Denial of Service (DoS): A blacklisted receiver can make cancelFlow revert.
Manual Review
Add try/catch to prevent this problem.
Likelihood: Extremely Low, when user is blacklisted between the deposit/withdraw and cancelFlow is called by the Keeper. Impact: Medium/High, cancelFlow DoS.
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.