Core Contracts

Regnum Aurum Acquisition Corp
HardhatReal World AssetsNFT
77,280 USDC
View results
Submission Details
Severity: medium
Valid

Ether will stuck forever in NFTLiquidator contract

Summary

Ether needs special function to receive it and StabilityPool contract doesn't have one which will make funds stuck in NFTLiquidator when auction end.

Vulnerability Details

  • When the auction for a specific NFT concludes and the token is transferred to the winner, the contract attempts to send the Ether proceeds to the StabilityPool. However, this transfer will fail because the StabilityPool contract lacks a fallback or receive function to accept Ether.

function endAuction(uint256 tokenId) external {
TokenData storage data = tokenData[tokenId];
if (block.timestamp < data.auctionEndTime) revert AuctionNotEnded();
if (data.highestBidder == address(0)) revert NoBidsPlaced();
address winner = data.highestBidder;
uint256 winningBid = data.highestBid;
delete tokenData[tokenId];
nftContract.transferFrom(address(this), winner, tokenId);
payable(stabilityPool).transfer(winningBid); <@
emit AuctionEnded(tokenId, winner, winningBid);
}

Impact

Ether will stuck forever in the contract.

Tools Used

Manual audit

Recommendations

StabilityPool contract must have fallback function to receive ether.

Updates

Lead Judging Commences

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Validated
Assigned finding tags:

StabilityPool misses receive/fallback breaking the integration with NFTLiquidator

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Validated
Assigned finding tags:

StabilityPool misses receive/fallback breaking the integration with NFTLiquidator

Support

FAQs

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

Give us feedback!