MorpheusAI

MorpheusAI
Foundry
22,500 USDC
View results
Submission Details
Severity: low
Invalid

Missing validation for address zero can compromise protocol functionality

Vulnerability Details

The functions setDistribution, setRewardTokenConfig, and setDepositTokenConfig lack checks for zero addresses. This can lead to setting a critical contract address to the zero address, resulting in potential loss of funds or failed transactions.

Impact

Zero address vulnerabilities can render the contract unusable or lead to loss of assets.

Tools Used

Manual Review

Recommendations

function setDistribution(address distribution_) public onlyOwner {
+ require(distribution_ != address(0), "L1S: invalid distribution");
distribution = distribution_;
}
function setRewardTokenConfig(RewardTokenConfig calldata newConfig_) public onlyOwner {
+ require(newConfig_.receiver != address(0), "L1S: invalid receiver");
+ require(newConfig_.gateway != address(0), "L1S: invalid gateway");
rewardTokenConfig = newConfig_;
}
function setDepositTokenConfig(DepositTokenConfig calldata newConfig_) public onlyOwner {
require(newConfig_.receiver != address(0), "L1S: invalid receiver");
+ require(newConfig_.gateway != address(0), "L1S: invalid gateway");
DepositTokenConfig storage oldConfig = depositTokenConfig;
_replaceDepositToken(oldConfig.token, newConfig_.token);
_replaceDepositTokenGateway(oldConfig.gateway, newConfig_.gateway, oldConfig.token, newConfig_.token);
depositTokenConfig = newConfig_;
}

(Additional) Missing Event Emissions: Consider adding events for all the functions above as they cause impactful changes on the protocol.

Updates

Lead Judging Commences

inallhonesty Lead Judge
over 1 year ago
inallhonesty Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Known issue
holydevoti0n Submitter
over 1 year ago
inallhonesty Lead Judge
over 1 year ago
inallhonesty Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Known issue

Support

FAQs

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