Range Protocol

Submit a Bug
30 November 2023
Live since
KYC required
Maximum bounty
13 May 2024
Last updated

Program Overview

Range Protocol is an infrastructure provider for on-chain money managers. This bug bounty program pertains to the Range Protocol’s vaults smart contracts that are built on top of Uniswap V3-like concentrated liquidity AMMs for arbitrary liquidity provision: one-sided, lop-sided, and balanced. The vaults provide a Uniswap-V2 like interface which enables providing fungible liquidity.

The vaults have managers that operate them and liquidity providers that provide liquidity to the vaults. The managers are KYCed and trustful entities that can choose to deploy a vault’s liquidity across specific tick ranges in the pool, remove liquidity and perform swap of vault’s assets on the pool. The managers would operate a sophisticated off-chain strategy to decide when to add or remove liquidity from pool for maximum returns for the liquidity providers, and perform low slippage swaps on the pool when vault’s liquidity is out of the pool.

The architecture of the smart contracts code comprises factory and upgradeable vaults. A Factory can deploy new vaults or upgrade implementation of existing vaults by the factory owner. Ownership of the factory is with a Timelock contract, which is behind a multisig wallet for proposing a creation or upgrading of vaults. The Timelock contract currently has a 24 hours delay between proposal and execution of operations.

For more information about Range Protocol, please visit https://www.rangeprotocol.com/

Range Protocol provides rewards in USDT. For more details about the payment process, please view the Rewards by Threat Level section further below.

Responsible Publication

Range Protocol adheres to category 3. This Policy determines what information whitehats are allowed to make public from their submitted bug reports. For more information about the category selected, please refer to our Responsible Publication page.

Primacy of Impact vs Primacy of Rules

Range Protocol adheres to the Primacy of Impact for the following impacts:

  • Smart Contract - Critical - Direct theft of any user funds, whether at-rest or in-motion, other than unclaimed yield
  • Smart Contract - Critical - Permanent freezing of funds
  • Smart Contract - Critical - Protocol insolvency
  • Smart Contract - High - Theft of unclaimed yield
  • Smart Contract - High - Permanent freezing of unclaimed yield
  • Smart Contract - High - Temporary freezing of funds
  • Smart Contract - Medium - Griefing (e.g. no profit motive for an attacker, but damage to the users or the protocol)

If an impact is covered within the Primacy of Impact, it means that even if the impacted asset is not in-scope but is owned by the project, then it would be considered as in-scope of the bug bounty program. When submitting a report, just select the Primacy of Impact asset placeholder. If the team behind this project has multiple projects, those other projects are not covered under the Primacy of Impact of this program. Instead, check if those other projects have a bug bounty program on Immunefi.

Testnet and mock files are not covered under the Primacy of Impact.

All other impacts are considered under the Primacy of Rules, which means that they are bound by the terms of the bug bounty program.

Known Issue Assurance

Range Protocol commits to providing Known Issue Assurance to bug submissions through their program. This means that Range Protocol will either disclose known issues publicly or at the very least privately via a self-reported bug submission in order to allow for a more objective and streamlined mediation process to prove that an issue is known. Otherwise, assuming the bug report itself is valid, it would result in the bug report being considered in-scope and due 100% of the reward with respect to the bug bounty program terms.

Immunefi Standard Badge

Range Protocol has satisfied the requirements for the Immunefi Standard Badge, which is given to projects that adhere to our best practices.

Rewards by Threat Level

Rewards are distributed according to the impact the vulnerability could otherwise cause based on the Impacts in Scope table further below.

Reward Calculation for Critical Level Reports

For critical Smart Contract bugs, the reward amount is 10% of the funds directly affected up to a maximum of USD 50 000. The calculation of the amount of funds at risk is based on the time and date the bug report is submitted. However, a minimum reward of USD 20 000 is to be rewarded in order to incentivize security researchers against withholding a bug report.

Repeatable Attack Limitations

In cases of repeatable attacks for smart contract bugs, only the first attack will be counted, regardless of whether the smart contract is upgradable, pausable, or killable.

Public Disclosure of Known Issues

Bug reports covering previously-discovered bugs acknowledged below are not eligible for any reward through the bug bounty program.

  • All of the issues described in the following audit reports should be considered known.

Previous Audits

Range Protocol has provided these completed audit review reports for reference. Any unfixed vulnerability mentioned in these reports are not eligible for a reward.

Feasibility Limitations

Bug reports that require an attack that involve one or more other protocols (e.g. utilizing flash loans from a margin protocol or manipulating the spot prices on a DEX), either to make an attack more severe than it would be in isolation, or to achieve an attack that would otherwise be impossible or infeasible, would be both a reduction in the severity level and a corresponding decrease in the payout. However, they will be considered as in-scope and categorized according to the program rules as long as all of the following are true:

  • Losses or other negative effects of the attack are inflicted upon Range Protocol ecosystem participants
  • The additional protocols used must have enough liquidity in various assets to allow the attack to succeed at the time of bug report submission. For example: if an attack requires an ETH flash loan, but the amount is larger than all the ETH available for loan across the ecosystem

Proof of Concept (PoC) Requirements

A PoC is required for the following severity levels:

  • Smart Contract - Critical - PoC Required
  • Smart Contract - High - PoC Required
  • Smart Contract - Medium - PoC Required

All PoCs submitted must comply with the Immunefi-wide PoC Guidelines and Rules. Bug report submissions without a PoC when a PoC is required will not be provided with a reward.

Other Terms and Information

All the listed assets above are branches from the same repository. The codebase across all of the branches is similar in functionality and is built on top of either Uniswap V3, Pancakeswap V3 or Algebra, with Swapsicle using Algebra Integral The following files/directories are included in audit scope from all branches.

  • contracts/RangeProtocolVaultStorage.sol
  • contracts/RangeProtocolVault.sol
  • contracts/RangeProtocolFactory.sol
  • contracts/access/OwnableUpgradeable.sol
  • contracts/interfaces
  • contracts/errors

The following additional files/directories are included in the branches named next to them:

Reward Payment Terms

Payouts are handled by the Range Protocol team directly and are denominated in USD. However, payments are done in USDT.

Smart Contract

USD $20,000 to USD $50,000
PoC Required
USD $10,000 to USD $20,000
PoC Required
USD $5,000
PoC Required

Assets in scope

All code of Range Protocol can be found at https://github.com/Range-Protocol/contracts. Documentation for the assets provided in the table can be found at https://range-protocol.gitbook.io/range-protocol/.

Impacts in scope

Only the following impacts are accepted within this bug bounty program. All other impacts are not considered as in-scope, even if they affect something in the assets in scope table.

Smart Contract

  • Direct theft of any user funds, whether at-rest or in-motion, other than unclaimed yield
  • Permanent freezing of funds
  • Protocol insolvency
  • Theft of unclaimed yield
  • Permanent freezing of unclaimed yield
  • Temporary freezing of funds
  • Griefing (e.g. no profit motive for an attacker, but damage to the users or the protocol)

Out of Scope & Rules

These impacts are out of scope for this bug bounty program.

All Categories

  • Impacts requiring attacks that the reporter has already exploited themselves, leading to damage
  • Impacts caused by attacks requiring access to leaked keys/credentials
  • Impacts caused by attacks requiring access to privileged addresses (governance, strategist) except in such cases where the contracts are intended to have no privileged access to functions that make the attack possible
  • Impacts relying on attacks involving the depegging of an external stablecoin where the attacker does not directly cause the depegging due to a bug in code
  • Mentions of secrets, access tokens, API keys, private keys, etc. in Github will be considered out of scope without proof that they are in-use in production
  • Best practice recommendations
  • Feature requests
  • Impacts on test files and configuration files unless stated otherwise in the bug bounty program

Smart Contracts

  • Incorrect data supplied by third party oracles:
    • Not to exclude oracle manipulation/flash loan attacks
  • Impacts requiring basic economic and governance attacks (e.g. 51% attack)
  • Lack of liquidity impacts
  • Impacts from Sybil attacks
  • Impacts involving centralization risks
  • Best practice recommendations

The following activities are prohibited by this bug bounty program:

  • Any testing on mainnet or public testnet deployed code; all testing should be done on local-forks of either public testnet or mainnet
  • Any testing with pricing oracles or third-party smart contracts
  • Attempting phishing or other social engineering attacks against our employees and/or customers
  • Any testing with third-party systems and applications (e.g. browser extensions) as well as websites (e.g. SSO providers, advertising networks)
  • Any denial of service attacks that are executed against project assets
  • Automated testing of services that generates significant amounts of traffic
  • Public disclosure of an unpatched vulnerability in an embargoed bounty