Reserve

Submit a Bug
27 April 2023
Live since
Yes
KYC required
$5,000,000
Maximum bounty
06 October 2023
Last updated

Program Overview

The Reserve Protocol is the first platform that allows for the permissionless creation of asset-backed, yield-bearing & overcollateralized stablecoins on Ethereum. The end goal of the Reserve Protocol is to provide highly scalable, decentralized, stable money in contrast to volatile cryptocurrencies such as Bitcoin and Ether.

In our view, clear flaws can be demonstrated with many existing stablecoin designs. In the 2018 Reserve Protocol whitepaper, we present arguments for why a widely used stablecoin should implement an exchange rate peg to a fiat currency first and a basket of assets later, using off-chain foreign collateral that has been tokenized by a diversity of issuers.

Furthermore, we believe that open exploration and competition can lead to the discovery of the best type of basket and governance system for ideal on-chain money. There's a lot to explore, and it's better not to keep that under the control of the initial founding team. For this reason, the Reserve Protocol is entirely permissionless — allowing anyone to deploy a Reserve stablecoin (RToken) with their preferred collateral basket, governance system and revenue distribution.

For more information about Reserve, please visit https://reserve.org/

Responsible Publication

Reserve adheres to category 2. 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.

For Whitehats: It is highly recommended that you review the details of this program in full. Although many Bug Bounty programs have standard terms and conditions, each also has their own unique details that are critical to your success.

Prior to submitting a report please review the Immunefi Bug Report Template and Best Practices.

If the bug report has been closed, and 2 weeks has passed since final upgrade, and the security researcher does not want to publish but Reserve would like to publish, then Reserve will take over all intellectual property of the bug report and can publish at will in coordination with Immunefi.

Rewards by Threat Level

Please review how rewards are distributed based on the Immunefi Vulnerability Severity Classification System V2.2. This is a simplified 5-level scale system with separate scales for Smart Contracts and Websites/Apps.

Rewards for critical smart contract bug reports will be further capped at 5% of direct funds at risk if the bug discovered is exploited. In cases of repeatable attacks, only the first attack is considered unless the smart contract cannot be upgraded or paused. However, there is a minimum reward of USD 100 000.

Rewards for high smart contract vulnerabilities are further capped at 5% of the funds at risk. In cases of repeatable attacks, only the first attack is considered unless the smart contract cannot be upgraded or paused. However, there is a minimum reward of USD 10 000 for High smart contract bug reports.

ImpactCriteria for assessing economic damage
Temporary freezing of RToken ERC20 functionality (% TVL frozen at time of submission)Temporary freezing time < 24hr: medium. 24hr < Temporary freezing time < *governance cycle + 1 day: high, 1%. *governance cycle + 1 day < Temporary freezing time: high
Temporary freezing of fundsTemporary freezing time < 24hr: medium 1%. 24hr < Temporary freezing time < *governance cycle + 1 day8 days: high, 12%. *governance cycle + 1 day8 days < Temporary freezing time: 5% high
  • governance cycle = the total time between when a proposal is made to when it can be executed. For eUSD, 1 governance cycle = 2 days (voting delay) + 3 days (voting period) + 3 days (execution delay) = 8 days

Payouts and Payout Requirements

Payouts are handled by the Reserve team directly and are denominated in USD. However, payouts are done in USDC and RSR. Reserve commits to honoring payouts according to the terms set out in this program at the time of report submission, and to treat this program as the agreement and source of truth concerning bug reports and responsible disclosures.

For the purposes of determining report validity, this is a Primacy of Rules program.

Learn more about report validity best practices here: Best Practice - Primacy of Impact vs Primacy of Rules.

KYC Requirements

Reserve does have a Know Your Customer (KYC) requirement for bug bounty payouts.

KYC Info Required

  • Anyone who receives $600 or more from our company will need to either provide their US taxpayer information via a form W-9, or a W-8BEN declaring that they are not a US taxpayer subject to withholding.

KYC information is only required on confirmation of the validity of a bug report.

Audit Discoveries and Known Issues

Bug reports covering previously-discovered bugs are not eligible for any reward through the bug bounty program. If a bug report covers a known issue, it may be rejected together with proof of the issue being known before escalation of the bug report via Immunefi.

Previous audits and known issues can be found at:

Description of known issueRelated Impact-in-Scope
Asset.lotPrice() doesn't use the most recent price in case of oracle timeout (https://github.com/code-423n4/2023-01-reserve-findings/issues/326)Smart-Contract
Unsafe cast of uint8 datatype to int8 (https://github.com/code-423n4/2023-01-reserve-findings/issues/265)Smart-Contract
refresh() will revert on Oracle deprecation, effectively disabling part of the protocol (https://github.com/code-423n4/2023-01-reserve-findings/issues/234)Smart-Contract
Shortfall might be calculated incorrectly if a price value for one collateral isn't fetched correctly (https://github.com/code-423n4/2023-01-reserve-findings/issues/200)Smart-Contract
BasketHandler: Users might not be able to redeem their rToken when protocol is paused due to refreshBasket function (https://github.com/code-423n4/2023-01-reserve-findings/issues/39)Smart-Contract
Attacker can cause loss to rToken holders and stakers by running BackingManager._manageTokens before rewards are claimed (https://github.com/code-423n4/2023-02-reserve-mitigation-contest-findings/issues/22)Smart-Contract
StRSR: attacker can steal excess rsr that is returned after seizure (https://github.com/code-423n4/2023-02-reserve-mitigation-contest-findings/issues/17)Smart-Contract
All audit reports (Ackee, Halborn, Solidified, Trail of Bits) Smart-Contract

Smart Contract

Critical
Level
USD $100,000 to USD $5,000,000
Payout
PoC Required
High
Level
USD $10,000 to USD $100,000
Payout
PoC Required
Medium
Level
USD $5,000
Payout
PoC Required
Low
Level
USD $1,000
Payout
PoC Required

Assets in scope

Only those listed in the Assets in Scope table are considered to be in-scope of the bug bounty program.

Smart Contracts

Whitehats are highly encouraged to review any potential subdomains and what specific port(s) are in scope. Even though the domain may be the same, different ports may point to different assets.

Dev Environment and Documentation

Reserve has included dev documentation and/or instructions to help in reviewing code and exploring for bugs:

Impacts in Scope

(For Blockchain/DLTR and Smart Contracts Only) This program is considered to be governed by Primacy of Rules. For more information on what this means visit: Best Practice - Primacy of Impact vs Primacy of Rules.

Impacts are based on the Immunefi Vulnerability Severity Classification System V2.2.

At Immunefi, we classify bugs on a simplified 5-level scale:

  • Critical
  • High
  • Medium
  • Low
  • None

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

  • Any governance voting result manipulation
    Critical
    Impact
  • Direct theft of any user funds, whether at-rest or in-motion, other than unclaimed yield
    Critical
    Impact
  • Permanent freezing of assets
    Critical
    Impact
  • Theft of unclaimed yield
    High
    Impact
  • Permanent freezing of unclaimed yield
    High
    Impact
  • Protocol insolvency
    High
    Impact
  • Temporary freezing of RToken ERC20 functionality
    Medium
    Impact
  • Temporary freezing of funds
    Medium
    Impact
  • Griefing (e.g. no profit motive for an attacker, but damage to the users or the protocol)
    Medium
    Impact
  • Contract fails to deliver promised returns, but doesn't lose value
    Low
    Impact
  • Theft of gas
    Low
    Impact
  • Unbounded gas consumption, that does not cause a more severe bug
    Low
    Impact

Out of Scope & Rules

The following impacts and attack vectors are excluded from rewards by default for all Immunefi bug bounty programs:

  • Attacks that the reporter has already exploited themselves, leading to damage
  • Attacks requiring access to leaked keys/credentials
  • 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
  • Broken link hijacking is out of scope

Smart Contracts and Blockchain/DLT

  • Basic economic governance attacks (e.g. 51% attack)
  • Lack of liquidity
  • Best practice critiques
  • Sybil attacks
  • Centralization risks
CategoryAdditional specific vulnerabilities and/or attacks to exclude
Smart ContractRToken minting can be DoS’d by a grief-attack where the attacker redeems an amount equal to the available mint throttle, then mints that amount in the same transaction.
Smart ContractRToken redeeming can be DoS’d by a grief-attack where the attacker mints an amount equal to the available redeem throttle, then redeems that amount in the same transaction.
Smart ContractMalicious governance. We assume governance is trusted and competent for all protocol configurations over which it has control
Smart ContractMalicious guardians. We assume guardians are trusted and competent for their given duties.
Smart ContractMalicious long-freezers. We assume long-freezers are trusted and competent for their given duties.

Prohibited Activities

The following activities are prohibited by this bug bounty program. Violation of these rules can result in a temporary suspension or permanent ban from the Immunefi platform at the sole discretion of the Immunefi team, which may also result in: 1) the forfeiture and loss of access to all bug submissions, and 2) zero payout.

Please note that Immunefi has no tolerance for spam/low-quality/incomplete bug reports, “beg bounty” behavior, and misrepresentation of assets and severity. Immunefi exists to protect the global crypto community, not facilitate grift.

Prohibited:

  • Any testing with mainnet or public testnet deployed code; all testing should be done on private testnets
  • 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
  • Automated testing of services that generates significant amounts of traffic
  • Public disclosure of an unpatched vulnerability in an embargoed bounty
  • Any other actions prohibited by the Immunefi Rules. These rules are subject to change at any time.