DeFiFoundry
20,000 USDC
View results
Submission Details
Severity: medium
Invalid

Stuck funds for `auctionToken` blacklisted recipients

Summary

claimTokens() function directly performs token transfers to the caller. However, these tokens could be those with blacklist functionality such as USDC. If this is the case, the transfer will always revert if the user is blacklisted by the auctionToken.

Vulnerability Details

function claimTokens() external {
---SNIP---
uint256 claimable = userBids.mul(multiplier).div(PRECISION_18);
bids[msg.sender] = 0;
>> auctionToken.transfer(msg.sender, claimable);
emit TokensClaimed(msg.sender, claimable);
}

As seen, the claimable amount will be sent to the caller direcly (msg.sender).

Impact

The problem however stems from the fact that the caller, could be blacklisted by the auctionToken resulting in a revert by the transfer function.

Tools Used

Manual Review

Recommendations

Let the caller of claimTokens() provide a to address to receive the tokens.

- function claimTokens() external {
+ function claimTokens(address to) external {
---SNIP---
uint256 claimable = userBids.mul(multiplier).div(PRECISION_18);
bids[msg.sender] = 0;
- auctionToken.transfer(msg.sender, claimable);
+ auctionToken.transfer(to, claimable);
emit TokensClaimed(msg.sender, claimable);
}
Updates

Lead Judging Commences

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

Support

FAQs

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