Skip to content
This repository has been archived by the owner on Nov 26, 2023. It is now read-only.

0x52 - Malicious users can honeypot other users by transferring out ERC20 and ERC721 tokens right before sale #291

Open
sherlock-admin opened this issue May 5, 2023 · 1 comment
Labels
Has Duplicates A valid issue with 1+ other issues describing the same vulnerability High A valid High severity issue Reward A payout will be made for this issue Sponsor Confirmed The sponsor acknowledged this issue is valid Will Fix The sponsor confirmed this issue will be fixed

Comments

@sherlock-admin
Copy link
Contributor

0x52

high

Malicious users can honeypot other users by transferring out ERC20 and ERC721 tokens right before sale

Summary

Since the club and escrow are separate and tokens can be transferred at any time by the owner, it allows malicious users to honeypot victims.

Vulnerability Detail

Tokens can be transferred out of the escrow by the owner of the club at anytime. This includes right before (or even in the same block) that the club is sold. This allows users to easily honeypot victims when selling clubs:

  1. User A owns Club 1
  2. Club 1 has players worth 5 ETH
  3. User A lists Club 1 for 2.5 ETH
  4. User B buys Club 1
  5. User A sees the transaction in the mempool and quickly transfers all the players out
  6. User A maintains all their players and User B now has an empty club

Impact

Malicious users can honeypot other users

Code Snippet

https://github.com/sherlock-audit/2023-04-footium/blob/main/footium-eth-shareable/contracts/FootiumEscrow.sol#L105-L111

https://github.com/sherlock-audit/2023-04-footium/blob/main/footium-eth-shareable/contracts/FootiumEscrow.sol#L120-L126

Tool used

Manual Review

Recommendation

Club/escrow system needs a redesign

@github-actions github-actions bot added High A valid High severity issue Has Duplicates A valid issue with 1+ other issues describing the same vulnerability labels May 10, 2023
@logiclogue logiclogue added the Sponsor Confirmed The sponsor acknowledged this issue is valid label May 16, 2023
@sherlock-admin sherlock-admin added the Reward A payout will be made for this issue label May 22, 2023
@logiclogue logiclogue added the Will Fix The sponsor confirmed this issue will be fixed label Jun 16, 2023
@logiclogue
Copy link

Currently discussed solution involves either adding a timelock on the contract or removing the escrow contract entirely. Both have product implications and will need longer to evaluate

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Has Duplicates A valid issue with 1+ other issues describing the same vulnerability High A valid High severity issue Reward A payout will be made for this issue Sponsor Confirmed The sponsor acknowledged this issue is valid Will Fix The sponsor confirmed this issue will be fixed
Projects
None yet
Development

No branches or pull requests

2 participants