Optimism

Submit a Bug
14 January 2022
Live since
Yes
KYC required
$2,000,042
Maximum bounty

Program Overview

Optimism is a Layer 2 Optimistic Rollup network designed to utilize the strong security guarantees of Ethereum while reducing its cost and latency. Optimism is EVM equivalent, making the transition from L1 to L2 as seamless as possible. This means one-click deployments and full compatibility with most of the tooling Ethereum developers are accustomed to. It also means that with very few exceptions, existing Solidity smart contracts can run on Optimism exactly how they run on Ethereum.

For more information about Optimism, please visit https://www.optimism.io/.

This bug bounty program is focused on their smart contracts and on preventing:

  • Theft of assets held in their Bridge and Messenger smart contracts.

Rewards by Threat Level

Rewards are distributed according to the impact of the vulnerability based on the Immunefi Vulnerability Severity Classification System. This is a simplified 5-level scale, with separate scales for websites/apps and smart contracts/blockchains, encompassing everything from consequence of exploitation to privilege required to likelihood of a successful exploit.

All smart contract bug reports must come with a PoC in order to be considered for a reward.

Any freezing of funds that is recoverable via an upgrade would be considered as High severity.

Critical vulnerabilities are further capped at 10% of economic damage, with the main consideration being the funds affected in addition to PR and brand considerations, at the discretion of the team. However, there is a minimum of USD 75 000 for Critical bug reports.

The following known issues are considered to be out of scope of this bug bounty program:

  • The fact that their contracts are upgradable via a multisig.
  • The fact that fault proofs (FKA fraud proofs) are not yet running.
  • A bug in Lib_MerkleTrie.sol which will prevent withdrawals from succeeding in some cases. There is a workaround for this, by modifying the proof to add an extra element.
  • A bug in Lib_ResolvedDelegateProxy.sol which could result in a storage slot key collision overwriting the address of the implementation. This bug is dependent on the layout of the implementation contract, and Optimism is not affected.
  • The user cannot commit to a L1 gas price, the OVM_GasPriceOracle is owned by a key controlled by Optimism and is responsible for setting the L1 gas price.

Payouts are handled by the Optimism team directly and are denominated in USD. All payouts are done in USDC.

Smart Contracts and Blockchain

Critical
Level
Up to USD $2,000,042
Payout
high
Level
USD $50,000
Payout

Assets in Scope

All smart contracts of Optimism can be found at https://github.com/ethereum-optimism/optimism. However, only those in the Assets in Scope table are considered as in-scope of the bug bounty program.

Smart Contract - Lib_AddressManager
Type
Smart Contract - StateCommitmentChain
Type
Smart Contract - CanonicalTransactionChain
Type
Smart Contract - ChainStorageContainer-CTC-batches
Type
Smart Contract - ChainStorageContainer-SCC-batches
Type
Smart Contract - Proxy__OVM_L1CrossDomainMessenger
Type
Smart Contract - OVM_L1CrossDomainMessenger
Type
Smart Contract - Proxy__OVM_L1StandardBridge
Type
Smart Contract - L1StandardBridge
Type
Smart Contract - L1StandardBridge (not in use, but included for source code verification)
Type
Smart Contract - OVM_L2ToL1MessagePasser
Type
Smart Contract - L2CrossDomainMessenger
Type
Smart Contract - L2StandardBridge
Type
Smart Contract - L2StandardTokenFactory
Type
Smart Contract - L2StandardToken
Type

Prioritized Vulnerabilities

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 Contracts/Blockchain

  • Loss of user funds by permanent freezing or direct theft
  • Temporary freezing of funds for significantly longer than is enforced by the withdrawal delay.

Out of Scope & Rules

The following vulnerabilities are excluded from the rewards for this bug bounty program:

  • 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)

Smart Contracts and Blockchain

  • Incorrect data supplied by third party oracles
    • Not to exclude oracle manipulation/flash loan attacks
  • Basic economic governance attacks (e.g. 51% attack)
  • Vulnerabilities in the implementation of ‘custom token bridges’ which are written by third parties for bridging tokens to their network
  • Lack of liquidity
  • Best practice critiques
  • Sybil attacks
  • Centralization risks

The following activities are prohibited by this bug bounty program:

  • Any testing with mainnet or public testnet contracts; all testing should be done on private testnets
  • 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
  • Automated testing of services that generates significant amounts of traffic
  • Public disclosure of an unpatched vulnerability in an embargoed bounty