stake.link

stake.link
DeFiHardhatBridge
27,500 USDC
View results
Submission Details
Severity: high
Valid

The approval for the reSDL token is not revoked during a cross-chain transfer

Summary

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.

Vulnerability Details

Let's consider the following scenario:

  1. Eva has a lock on Ethereum.

  2. Eva gives her second address approval to use this token.

  3. Eva transfers this token to Arbitrum using RESDLTokenBridge.transferRESDL.

  4. Eva sells the transferred token to Bob on Arbitrum.

  5. Bob transfers this token back to Ethereum.

  6. Eva steals this token from Bob using the remaining approval.

As a result, Eva receives the previously sold token back.

Impact

Approvals for cross-chain transferred tokens could potentially be exploited to steal reSDL tokens.

Tools Used

Manual Review

Recommendations

Consider revoking token approvals in the SDLPoolPrimary.handleOutgoingRESDL and SDLPoolSecondary.handleOutgoingRESDL functions.

Updates

Lead Judging Commences

0kage Lead Judge over 1 year ago
Submission Judgement Published
Validated
Assigned finding tags:

stale-approval

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.