The Graph

Submit a Bug
04 August 2021
Live since
Yes
KYC required
$2,500,000
Maximum bounty
15 December 2022
Last updated

Program Overview

The Graph is an indexing protocol for querying networks like Ethereum and IPFS. It is a decentralized network comprised of multiple stakeholders incentivized to build and offer an efficient and reliable open data marketplace, through GraphQL-based APIs.

The Graph learns what and how to index Blockchain data based on subgraph descriptions, known as the subgraph manifest. The subgraph description defines the smart contracts of interest for a subgraph, the events in those contracts to pay attention to, and how to map data to data that The Graph will index and store in its decentralized network, to be served by Indexers. Indexers are network participants responsible for running their own infrastructure capable of indexing subgraphs and subsequently serve such data.

The network is fully permissionless, meaning that every stakeholder can design, implement and deploy subgraphs, with Indexers choosing which subgraphs to index based on a number of factors such as Curators’ interest (signaling high-quality ones which may result in high query volume). Delegators are another key network participant in this open data economy, who delegate their stake towards Indexers, receiving, in turn, a portion of both network rewards and fees from subsequently served queries. Like Delegators, Curators also receive a portion of the query fees, when staking their own GRT in a subgraph’s bounding curve (signaling).

For more information about The Graph, please visit their website at https://thegraph.com/.

The bug bounty program, managed and funded by The Graph Foundation, is focused on the prevention of negative impacts to the whole ecosystem, such as:

  • Loss of User Funds
  • Exposure of private information (keys, PII)
  • Determinism bugs that could lead to incorrect or inconsistent query results by Indexers in the network
  • Vulnerabilities in the Indexer software (eg. Graph Node, Indexer CLI) that could result in the Indexer being slashed or not running effectively
  • Vulnerabilities that could degrade the indexing or querying service
  • Bugs that could facilitate Sybil attacks

Bug bounty hunters submit bug reports at their own risk of being rejected as a known issue.

Rewards by Threat Level

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

Rewards for critical vulnerabilities are capped at 10% of economic damage, primarily focusing on the possible loss of funds for Indexers, Delegators, and Curators at Smart Contract level only, but also taking into consideration other aspects such as branding and PR, at the discretion of The Graph Foundation.

Final reward amounts for High, Medium, and Low, for web/app assets will be decided by The Graph Foundation based on factors such as economic impact, likelihood of being exploited, and thoroughness of the bug report. Though this bug bounty program takes into consideration the severity classification system, the primary baseline before further consideration is the Impacts in Scope table, though that itself isn’t the final determinant. The Graph Foundation may also reward more than the maximum published amount at its discretion.

In order to qualify for a reward, bug bounty hunters will need to provide KYC through https://register.thegraph.com and share the following information:

  • E-mail address;
  • Name;
  • Wallet address the GRT should be sent to. This address must correspond the same listed in the report. Additionally, all bug reports must come with log components, reproduction, and data about vulnerabilities to support learnings and bug fixes. This can be satisfied by providing relevant screenshots, docs, code, and steps to reproduce the issue.

Payouts are handled by The Graph Foundation and are denominated in USD. All payouts are done in GRT, following the GRT price at transaction time.

Blockchain/DLT

Critical
Level
Up to USD $2,500,000
Payout
High
Level
Up to USD $200,000
Payout
Medium
Level
Up to USD $20,000
Payout
Low
Level
Up to USD $5,000
Payout

Smart Contract

Critical
Level
Up to USD $2,500,000
Payout
High
Level
Up to USD $200,000
Payout
Medium
Level
Up to USD $20,000
Payout
Low
Level
Up to USD $5,000
Payout

Websites and Applications

Critical
Level
Up to USD $50,000
Payout
High
Level
Up to USD $20,000
Payout
Medium
Level
Up to USD $5,000
Payout
Low
Level
Up to USD $5,000
Payout

Assets in scope

Note on Smart Contracts: The Graph protocol is in the process of migrating to Arbitrum, as the preferred L2. For this reason, there are Smart Contracts deployed in multiple chains. Not all are equal, so bug bounty hunters are encouraged to check the code on both chains. Once fully migrated, this bug bounty program will be updated too, removing unnecessary ones.

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.

Blockchain/DLT

  • A bug that could cause significant (>$1M) funds being lost (not including slashing)
    Critical
    Impact
  • A bug in the default Indexer software that could result in private information being stolen
    High
    Impact
  • A bug that could cause network disruption at Indexer and Gateway level, taking at least 50% of both Gateways and Indexer nodes down
    High
    Impact
  • A bug that could lead to non-deterministic syncing of subgraph data (graph node only)
    High
    Impact
  • A bug that could cause incorrect payouts of query fees or indexing rewards
    High
    Impact
  • An economic attack that could result in Indexers, Curators or Delegators losing a significant amount of funds or being exploited
    High
    Impact
  • A bug that could cause network participants to be impersonated and unwanted actions being taken (eg. funds being transferred)
    High
    Impact
  • A bug that could halt or delay an Indexer’s ability to process a query or receive payments
    Medium
    Impact
  • A bug in the default Indexer software that could result in a “halt" or an impact on liveness
    Medium
    Impact
  • A griefing attack on the services provided or network participants
    Medium
    Impact
  • A bug whereby an attacker does not pay sufficient GRT fees for the load they exert on the network
    Low
    Impact
  • A vulnerability that could cause inaccurate query data to be served
    Low
    Impact
  • A vulnerability that could cause two or more Indexers to provide different results for the same query when the approved code is run
    Low
    Impact
  • A bug that could cause the service functionality, throughput, or utility to be degraded but not disabled
    Low
    Impact

Smart Contract

  • A bug that could cause significant (>$1M) funds being lost (not including slashing)
    Critical
    Impact
  • Private information being stolen
    High
    Impact
  • A bug that could cause incorrect payouts of query fees or indexing rewards
    High
    Impact
  • An economic attack that could result in Indexers, Curators or Delegators losing a significant amount of funds or being exploited
    High
    Impact
  • A bug that could cause network participants to be impersonated and unwanted actions being taken (eg. funds being transferred)
    High
    Impact
  • A bug in a smart contract that could result in a “halt" or an impact on liveness
    Medium
    Impact

Websites and Applications

  • A bug that could cause significant (>$1M) funds being lost (not including slashing)
    Critical
    Impact
  • Halt application functionality for majority of users
    Critical
    Impact
  • A bug that could allow impersonating other users, leading to negative impact to network participants through loss of funds
    High
    Impact
  • A bug that could cause the service (Studio or The Graph’s decentralized network) functionality, throughput, or utility to be degraded but not disabled for other network participants
    Medium
    Impact
  • A bug that allows remote code execution resulting in private information being stolen
    Medium
    Impact

Out of Scope & Rules

There are several known potential exploits on Ethereum and The Graph infrastructure. Bounty hunters will not be rewarded for reporting these:

Additionally, all of the following vulnerabilities and bug report types are not considered as in-scope in this bug bounty program:

  • Attacks that the reporter has already exploited themselves, leading to damage
  • Attacks that rely on social engineering
  • Attacks requiring access to leaked keys/credentials
  • Incorrect data supplied by third party oracles
    • Not to exclude oracle manipulation/flash loan attacks
  • Basic economic governance attacks (e.g. 51% attack)
  • Lack of liquidity
  • Best practice critiques
  • Sybil attacks

Rules and Requirements All bounty hunters must abide by rules when reporting bugs to be eligible for rewards. We appreciate your cooperation.

Report Responsibly

Report vulnerabilities to The Graph first by submitting a bug report on Immunefi, to mitigate attacks and in the best interest of the network’s safety. Give reasonable time for The Graph to fix the bug before sharing publicly.

Don't Exploit Reported Bugs

Do not exploit bugs in the code to gain an advantage or conduct malicious activity in the network. No hacking or social engineering of other network users.

Don’t Violate Privacy

Do not violate the privacy of network users, other bounty hunters, or The Graph.

Don’t Attack or Defraud The Graph

Do not attack The Graph team, operations, or technology (eg. DDOS attack, spam, social engineering) or defraud The Graph team or network users.

Please also note reporting requirements:

  • Bugs will only be rewarded once for successful reporting and confirmation of fix to the first person to report the bug.
  • Vulnerabilities must be reproducible by The Graph team (please include all relevant links, docs, and code)
  • Single vulnerabilities can be submitted per form, multiple submissions for the same vulnerability will not be counted
  • Bounty hunters can submit multiple bug reports
  • Public disclosure of the vulnerability prior to resolution may cancel a pending reward. We reserve the right to disqualify individuals from the program for disrespectful or disruptive behavior.
  • The Graph and affiliates will not negotiate in response to duress or threats (e.g., we will not negotiate the payout amount under threat of withholding the vulnerability or threat of releasing the vulnerability or any exposed data to the public).