Core Contracts

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

The StabilityPool contract does not have the function of accepting ETH, which makes the endAuction and buyBackNFT functions in NFTLiquidator invalid

Summary

The StabilityPool contract does not have the function of accepting ETH, which makes the endAuction and buyBackNFT functions in NFTLiquidator invalid.

Vulnerability Details

https://github.com/Cyfrin/2025-02-raac/blob/main/contracts/core/pools/StabilityPool/NFTLiquidator.sol#L151

payable(stabilityPool).transfer(winningBid);

https://github.com/Cyfrin/2025-02-raac/blob/main/contracts/core/pools/StabilityPool/NFTLiquidator.sol#L177

payable(stabilityPool).transfer(price);

From these two codes, we can see that stabilityPool needs to receive ETH, but the function of receiving ETH is not implemented in the stabilityPool.sol contract.

Impact

StabilityPool cannot accept ETH, causing the purchase and bidding nft logic in NFTLiquidator to fail to execute normally.

Tools Used

Manual review

Recommendations

Add the receive() function to the StabilityPool.sol contract:

event Received(address sender, uint256 amount);
receive() external payable {
emit Received(msg.sender, msg.value);
}
Updates

Lead Judging Commences

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

StabilityPool misses receive/fallback breaking the integration with NFTLiquidator

inallhonesty Lead Judge 4 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.