DeFiFoundry
50,000 USDC
View results
Submission Details
Severity: medium
Valid

Protocol is not compatible with `Avalanche`

Summary

The KeeperProxy contract is incompatible with the Avalanche blockchain due to its reliance on Chainlink’s L2 sequencer uptime feed, which is not supported on Avalanche. Additionally, the contract hardcodes the Arbitrum sequencer address, further limiting its deployment scope.

function initialize() external initializer {
__Ownable2Step_init();
sequencerUptimeFeed = AggregatorV2V3Interface(0xFdB631F5EE196F0ed6FAa767959853A9F217697D); // Hardcoded Arbitrum sequencer
}

Vulnerability Details

The contract initializes sequencerUptimeFeed with an Arbitrum-specific Chainlink feed address, which is not compatible with Avalanche. Since Avalanche lacks Chainlink's L2 sequencer uptime feed, any functionality dependent on this feed will fail.

Impact

  • The contract cannot function on Avalanche, restricting its usability to networks where the Chainlink L2 sequencer uptime feed exists.

  • Any automated operations relying on sequencerUptimeFeed will fail on Avalanche, leading to potential disruptions in contract execution.

  • Deployment flexibility is reduced, limiting multi-chain operability.

Tools Used

Manual review

Recommendations

Use a configurable sequencer uptime feed:

  • Store the feed address in an immutable constructor argument or an upgradeable setter function, rather than hardcoding it.

  • Example:

    function setSequencerUptimeFeed(address _feed) external onlyOwner {
    sequencerUptimeFeed = AggregatorV2V3Interface(_feed);
    }

And use it only on chains where sequencer exists.

Updates

Lead Judging Commences

n0kto Lead Judge 9 months ago
Submission Judgement Published
Validated
Assigned finding tags:

finding_Avalanche_has_no_sequencer

Likelihood: High, run and runNextAction will revert. Impact: Low, any deposit will be retrieve thanks to cancelFlow.

Support

FAQs

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

Give us feedback!