Core Contracts

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

DOS of StabilityPool --> NFTLiquidator integration and all other direct Contract -> StabilityPool ETH transfers

Description

First of all there is no payable receive() or fallback() function implemented in StabilityPool or its parent contracts that can help it to receive ETH. That means everytime there is a direct transfer of ETH to StabilityPool , the transfer will always fail

Now, the NFTLiquidator.buyBackNFT() transfers ETH to the stability pool and due to the description bug this function will always revert and their will possibly be no way to buy back NFT

// https://github.com/Cyfrin/2025-02-raac/blob/main/contracts/core/pools/StabilityPool/NFTLiquidator.sol#L177
function buyBackNFT(uint256 tokenId) external payable {
...
payable(stabilityPool).transfer(price);
...
}

Recommendations

contract StabilityPool is IStabilityPool, Initializable, ReentrancyGuard, OwnableUpgradeable, PausableUpgradeable {
...
+ receive() external payable {}
...
}
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.