Reentrancy in processDepositCancellation
before state update
In processDepositCancellation
, user is called before status update:
If self.depositCache.user
is a smartcontract with receive function, it can call protocol back while it's status is not updated e.g. cancel deposit again.
Functions that use processDepositCancellation
like GMXVault.processDepositCancellation has no nonReentrant modifier
Double deposit cancellation possibility
Withdraw ether when state is consistent. Add nonReentrant
to functions that work with logic can be impacted by reentrancy
Impact: High Likelihood: Low The only possible external caller is the keepers. But this is still a vulnerability and it is strongly recommended to implement CEI pattern. Given the limited impact, similar issues (reentrancy by keepers) are grouped.
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.