Platform: Code4rena
Start Date: 20/01/2022
Pot Size: $80,000 USDC
Total HM: 5
Participants: 37
Period: 7 days
Judge: Jack the Pug
Total Solo HM: 1
Id: 76
League: ETH
Rank: 7/37
Findings: 1
Award: $3,287.14
🌟 Selected for report: 0
🚀 Solo Findings: 0
🌟 Selected for report: kirk-baird
Also found by: static
static
If the SHER token performs a callback, such as in ERC-777 tokens, when performing transfers, the _sendSherRewardsToOwner
function can be run multiple times to extract more rewards than should be available for a single NFT.
The attackers stakes Sherlock for the minimum period and transfer the NFT to a contract with a fallback that calls ownerRestake
when called. Once the period is up, they call ownerRestake
from the contract (using the fallback), which triggers multiple more ownerRestake
s before returning. This causes the contract to call safeTransfer
multiple times giving them more reward than they're entitled to.
N/A
delete the sherRewards_[_id]
prior to transferring the SHER token to the user.
#0 - Evert0x
2022-02-03T22:31:55Z