Functions that perform several external interactions lack basic reentrancy protection.
Functions do not have re-entrancy protection and do not follow the Check-Effects-Interaction pattern, thus they are vulnerable to exploits. For instance, increasePosition
first transfers the tokens before updating the state:
Similarly, when decreasing position:
First, tokens are transferred to the user and only then the position is decreased. The order of operations leaves a gap to repeat the action and gain benefits more than once.
The contract will be deployed with tokens like LINK support and LINK is ERC677
compatible, it contains transferAndCall
function to support action hooks. This makes it very easy for malicious users to exploit, e.g. repeatedly withdrawals.
Manual review.
Add reentrancy protection modifiers to critical functions that perform external interactions.
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.