Part 2

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

Medium Severity - Missing Zero Address Check for Chainlink Verifier

Summary

The update function in StabilityConfiguration.sol lacks validation for the Chainlink verifier address, allowing a zero-address configuration that would permanently disable price verification.

Vulnerability Details

The update function accepts any address for chainlinkVerifier without validation:

function update(address chainlinkVerifier, uint128 maxVerificationDelay) internal {
Data storage self = load();
self.chainlinkVerifier = IVerifierProxy(chainlinkVerifier);
// ...
}

If set to address(0), all calls to verifyOffchainPrice will fail since the verifier proxy is invalid.

Proof of concept:

  1. Admin accidentally calls update(0x0, 3600)

  2. All verifyOffchainPrice calls revert due to:
    IVerifierProxy(0x0).verifyReport(...)

  3. Protocol becomes unusable until upgraded

Impact

Complete disruption of price verification system

Halting of all trading/liquidation functionality

Requires emergency protocol shutdown to resolve

High risk of protocol insolvency from unverified prices

Tools Used

Manual code review

Address validation pattern analysis

Recommendations

Add zero-address check:

function update(address chainlinkVerifier, uint128 maxVerificationDelay) internal {
if (chainlinkVerifier == address(0)) revert Errors.InvalidAddress();
// ...
}
Updates

Lead Judging Commences

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