The SDLPoolPrimary.handleOutgoingRESDL
and the SDLPoolSecondary.handleOutgoingRESDL
functions do not revoke token approvals. If the transferred token is ever returned to the source chain, the approved address could potentially steal this token.
Let's consider the following scenario:
Eva has a lock on Ethereum.
Eva gives her second address approval to use this token.
Eva transfers this token to Arbitrum using RESDLTokenBridge.transferRESDL
.
Eva sells the transferred token to Bob on Arbitrum.
Bob transfers this token back to Ethereum.
Eva steals this token from Bob using the remaining approval.
As a result, Eva receives the previously sold token back.
Approvals for cross-chain transferred tokens could potentially be exploited to steal reSDL tokens.
Manual Review
Consider revoking token approvals in the SDLPoolPrimary.handleOutgoingRESDL
and SDLPoolSecondary.handleOutgoingRESDL
functions.
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.