Core Contracts

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

`CurveVaultUpdated` event in LendingPool contract can be emitted if the same curve vault address is provided when calling `setCurveVault`

Summary

setCurveVault function is defined as follows:

function setCurveVault(address newVault) external onlyOwner {
require(newVault != address(0), "Invalid vault address");
address oldVault = address(curveVault);
curveVault = ICurveCrvUSDVault(newVault);
emit CurveVaultUpdated(oldVault, newVault);
}

CurveVaultUpdated can be emitted when newVault = address(curveVault)which shouldn't be possible.

In comparison, setStabilityPool function ensures that newStabilityPool != stabilityPool, and setCurveVault should do the same.

Impact

The impact of this issue is low, as it leads to incorrect event emission.

Tools Used

Manual review

Recommendations

Make sure to check that newVault != address(CurveVault)in setCurveVault function:

function setCurveVault(address newVault) external onlyOwner {
require(newVault != address(0) && newVault != address(curveVault), "Invalid vault address");
address oldVault = address(curveVault);
curveVault = ICurveCrvUSDVault(newVault);
emit CurveVaultUpdated(oldVault, newVault);
}
Updates

Lead Judging Commences

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

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