MyCut

First Flight #23
Beginner FriendlyFoundry
100 EXP
View results
Submission Details
Severity: high
Invalid

Dangerous use of transfer() instead of safeTransfer

Summary

The standard transfer() method of ERC20.sol do not return a value indicating success or failure. This can lead to failed transfers being treated as successful.

Vulnerability Details

The transfer() method is used throughout Pot.sol. Specifically in Pot.sol::_transferReward as well as within Pot.sol::closePot(), Pot.sol::claimCut() and ContestManager.sol::fundContest.

Impact

A transfer can fail but be treated as successful by the protocol. Users and owner may permanently lose funds as a result.

Tools Used

Manual Review

Recommendations

Implement SafeERC20 Library from Open Zeppelin and use safeTransfer() instead.

Updates

Lead Judging Commences

equious Lead Judge 12 months ago
Submission Judgement Published
Invalidated
Reason: Known issue

Support

FAQs

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