Sablier

Sablier
DeFiFoundry
53,440 USDC
View results
Submission Details
Severity: low
Invalid

`SablierV2Lockup::withdrawMaxAndTransfer` function transfers NFT by calling `ERC721::_transfer` function, could lead to potential NFT loss.

Vulnerability Details

The SablierV2Lockup::withdrawMaxAndTransfer function is used for withdrawing the maximum amount of tokens from the stream to the current recipient and then transfering the NFT to the new recipient, so that the new recipient can withdraw tokens from the stream. However, the way the NFT is transfered is by using the ERC721::_transfer function, which does not check whether the recipient is aware of the ERC721 protocol. This could lead to potential NFT loss.

Impact

If the recipient is a contract which is not aware of incoming NFTs, then the transferred NFT would be locked in the recipient forever.

Tools Used

Manual Review

Recommendations

Consider using ERC721::_safeTransfer, which checks if contract recipients are aware of the ERC721 standard to prevent tokens from being forever locked.

Updates

Lead Judging Commences

inallhonesty Lead Judge
about 1 year ago
inallhonesty Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Info/Gas/Invalid as per Docs

https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity

Support

FAQs

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