The transferFrom()
function can be used by a privileged address to steal SantaToken
tokens from any user.
The transferFrom()
function inside the ERC20
contract inherited by SantaToken
grants special privilege to the address 0x815F577F1c1bcE213c012f166744937C889DAF17
If the msg.sender
is this address, it can transfer tokens from any address to another without requiring approval.
https://github.com/PatrickAlphaC/solmate-bad/blob/c3877e5571461c61293503f45fc00959fff4ebba/src/tokens/ERC20.sol#L89-L96
The victim has been granted tokens from the SantaToken
contract
The attacker who owns the privileged address calls transferFrom()
to transfer all the tokens from the victim to himself.
All SantaToken
tokens are at risk
Manual review
The malicious ERC20
is a modification of the Solmate ERC20
contract.
Consider implementing the original Solmate contract.
Some sneaky elf has changed this library to a corrupted one where his wallet address skips all the approval checks for SantaToken! Shenanigans here - https://github.com/PatrickAlphaC/solmate-bad/blob/c3877e5571461c61293503f45fc00959fff4ebba/src/tokens/ERC20.sol#L88
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.