Part 2

Zaros
PerpetualsDEXFoundrySolidity
70,000 USDC
View results
Submission Details
Severity: medium
Invalid

Missing Zero-Address Check in setVaultEngine Function

Summary

The function setVaultEngine does not include a check to ensure the engine address is not address(0).

  • If an invalid (zero) address is set, it could result in undefined or broken functionality when interacting with the vault.

  • This issue could arise due to a misconfiguration or an intentional attack to disrupt vault operations.

Permlink:

Vulnerability Details

Setting the engine to address(0) could disable vault functionalities, making it impossible to process transactions or interact with the vault as intended.

  • This could lead to funds becoming inaccessible or operations being halted if the vault relies on the engine for execution.

  • An attacker or a careless admin could exploit this issue to disrupt the vault's normal operation.

Impact

leads to inaccessibility of important protocol vault functionalities. Setting the engine to address(0) can disable vault functionalities, making it impossible to process transactions or interact with the vault as intended.

Tools Used

Manual Review

Recommendations

Implement a require statement to prevent setting engine to address(0):

This simple check ensures that only valid, non-zero addresses can be assigned to the vaultEngine, preventing unintended or malicious disruptions.

function setVaultEngine(uint128 vaultId, address engine) external onlyOwner {
require(engine != address(0), "VaultEngine: zero address not allowed");
Vault.Data storage vaultData = Vault.load(vaultId);
vaultData.engine = engine;
emit LogSetVaultEngine(vaultId, engine);
}
Updates

Lead Judging Commences

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