Filecoin
Program Overview
Filecoin is a decentralized storage network designed to store humanity's most important data. As such, security is of paramount importance to us.
For more information about Filecoin, please visit https://filecoin.io. For more information about the FVM, visit https://fvm.dev.
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.
Note: The program is subject to all terms and conditions of this Bug Bounty Policy (”Policy”), and all submissions to this Program are governed by this Policy.
By submitting a vulnerability through this Program you are agreeing to the Policy.
Filecoin provides rewards in USD/USDC at the Filecoin Foundation’s sole discretion.For more details about the payment process, please view the Rewards by Threat Level section further below.
Payouts and Payout Requirements
The Filecoin Security Team, which consists of core developers and contributors, evaluates the significance of reported vulnerabilities and the appropriate bounty award, if any, in its sole discretion. The Filecoin Security Team may also at its sole discretion increase the award, within the ranges above, for vulnerability reports that include quality written descriptions, test code, scripts and detailed instructions, and well-documented fixes.
Payouts are handled by the Filecoin Foundation directly and are denominated in USD/USDC at the Filecoin Foundation’s sole discretion. Payouts will be distributed according to the terms set out in this Policy at the time of report submission.
For the purposes of determining report validity, this is a Primacy of Rules program. Learn more about this principle here: Best Practice - Primacy of Impact vs Primacy of Rules.
In the event that a bounty award is assigned, the Filecoin Foundation will generate an invoice. Invoices will generally be paid on a net 30 basis, after the Filecoin Foundation has received all necessary information from the researcher, such as wallet details and KYC information. Any taxes and other costs associated with award acceptance are the sole responsibility of the award recipient. The researcher is responsible for resolving any local restrictions or requirements related to the award under the reporter’s local laws.
KYC Requirement
Filecoin will be requesting KYC information in order to pay for successful bug submissions. The following information will be required:
- Full name
- Country of residence
- For US citizens: W9, W8BEN, or W8BENE forms, and any other forms reasonably requested by the Filecoin Foundation
Note: KYC information is required only following confirmation of the validity of a bug report and bounty amount is decided, if any.
Eligibility Criteria
Security researchers who wish to participate must adhere to the rules of engagement set forth in this program and cannot be:
- Subject to sanctions administered by U.S. OFAC or any other office or department of the United States
- Current and former members of the Filecoin core development team, and current and former employees, contractors, and any others who have been paid (directly or indirectly) by Protocol Labs or the Filecoin Foundation to work on the Filecoin project, are not eligible for bug bounty rewards under this Program.
- Security auditors that directly or indirectly participated in audit review(s).
Responsible Publication
Filecoin adheres to category 1 - Transparent. Whitehats are allowed to disclose information about their fixed and paid bug reports. For more information about the category selected, please refer to our Responsible Publication page.
Public disclosure of the vulnerability must conform with the Coordinated Disclosure Policy. The CDP is subject to change at any time.
Primacy of Impact vs Primacy of Rules
Filecoin adheres to the Primacy of Rules, which means that the whole bug bounty program is run strictly under the terms and conditions stated within this page.
Proof of Concept (PoC) Requirements
A PoC, demonstrating the bug's impact, is required for this program and has to comply with the Immunefi PoC Guidelines and Rules.
Report Quality
Reports must be thorough and contain enough information that Filecoin Security Team can easily duplicate any findings. If specially-crafted files are required they should be submitted as attachments. Screenshots are encouraged while videos are discouraged, unless necessary. Submissions should not consist solely of a video.
Reports are welcome for issues that cannot be proven but still suggest a serious impact. Filecoin trusts researchers to make that determination and we will assist in clarifying impact and adjusting the severity as needed. It is encouraged to report a vulnerability early while Filecoin will help to determine the impact rather than waiting days or weeks to create a proof.
Known Issue Assurance
Filecoin commits to providing Known Issue Assurance to bug submissions through their program. This means that Filecoin will either disclose known issues publicly, or at the very least, privately via a self-reported bug submission.
Public Disclosure of Known Issues
Bug reports covering previously-discovered bugs (listed below) are not eligible for a reward within this program. This includes known issues that the project is aware of but has consciously decided not to “fix”, necessary code changes, or any implemented operational mitigating procedures that can lessen potential risk.
Description of known issue/repository
All issues, PRs and code comments that are already mentioned and listed in the In-Scope Assets - Related Impact-in-Scope: Issues created in the following repos:
- https://github.com/filecoin-project/ https://github.com/ipfs/
- https://github.com/whyrusleeping/cbor-gen
- https://github.com/lurklab/neptune/ https://github.com/lurklab/trition
Previous Audits
Filecoins’s completed audit reports can be found in Spec at https://spec.filecoin.io/. Any unfixed vulnerabilities mentioned in these reports are not eligible for a reward.
Feasibility Limitations
The project may be receiving reports that are valid (the bug and attack vector are real) and cite assets and impacts that are in scope, but there may be obstacles or barriers to executing the attack in the real world. In other words, there is a question about how feasible the attack really is. Conversely, there may also be mitigation measures that projects can take to prevent the impact of the bug, which are not feasible or would require unconventional actions and hence, should not be used as reasons for downgrading a bug's severity.
Therefore, Immunefi has developed a set of feasibility limitation standards which by default states what security researchers, as well as projects, can or cannot cite when reviewing a bug report.
Immunefi Standard Badge
By adhering to Immunefi’s best practice recommendations, Filecoin has satisfied the requirements for the Immunefi Standard Badge.
Rewards by Threat Level
Rewards are distributed according to the impact of the vulnerability based on the Immunefi Vulnerability Severity Classification System V2.3.
Reward Calculation for Critical Level Reports
For critical Blockchain/DLT bugs, the reward amount is 10% of the funds directly affected, capped at the maximum critical reward $150,000 . However, a minimum reward of USD $100,000 is to be rewarded in order to incentivize security researchers against withholding on a bug report.
All rewards for this Program are scaled based on a set of criteria, taking into account factors like: ease of exploitation of the bug, impact of the bug, likelihood of the vulnerability (particularly for bug reports where the vulnerability would require multiple conditions to be met), and report quality.
Reported security vulnerabilities will be eligible for a bounty amount based on severity, calculated based on its impact and likelihood using the OWASP Risk Rating model (https://owasp.org/www-community/OWASP_Risk_Rating_Methodology).
Blockchain/DLT
- Critical
- Level
- USD $100,000 to USD $150,000
- Payout
- High
- Level
- USD $25,000 to USD $100,000
- Payout
- Medium
- Level
- USD $10,000 to USD $25,000
- Payout
- Low
- Level
- USD $1,000 to USD $10,000
- Payout
Assets in scope
- Blockchain/DLT - FVM reference implementationType
- Blockchain/DLT - Built-in Filecoin actors - written in Rust, Wasm-compiled built-in actors (smart contracts, in Filecoin lingo) that are used by all Filecoin clientsType
- Blockchain/DLT - Lotus is the reference node implementation for the Filecoin networkType
- Blockchain/DLT - Boost is a tool for Filecoin storage providers to manage data storage and retrievals on Filecoin.Type
- Blockchain/DLT - An implementation of the graphsync protocol in go!Type
- Blockchain/DLT - Lotus miner nodeType
- Blockchain/DLT - Filecoin ProofsType
- Blockchain/DLT - Filecoin Proofs APIType
- Blockchain/DLT - Filecoin Proofs in RustType
- Blockchain/DLT - zk-SNARK libraryType
- Blockchain/DLT - merkle is a lightweight Rust implementation of a Merkle tree.Type
- Blockchain/DLT - Rust Poseidon implementation.Type
- Blockchain/DLT - Futhark implementation of neptune-compatible Poseidon.Type
- Blockchain/DLT - Crate for using pairing-friendly elliptic curves.Type
- Blockchain/DLT - The Filecoin address type, used for identifying actors on the Filecoin network, in various formats.Type
- Blockchain/DLT - Implementation of an array mapped trie using go and ipldType
- Blockchain/DLT - Features iterator based primitives that scale with number of runs instead of number of bits.Type
- Blockchain/DLT - CBOR utilities for reading and writing objects to CBOR representation, optimizing for fast path serialization/deserialization generated by cbor-genType
- Blockchain/DLT - Crypto utility functions used in FilecoinType
- Blockchain/DLT - A go module to perform data transfers over ipfs/go-graphsyncType
- Blockchain/DLT - Conversion Utilities Between CID and Piece/Data/Replica CommitmentsType
- Blockchain/DLT - Tools for mapping between bit-padded and not-bit-padded byte streamsType
- Blockchain/DLT - An abstraction used to manage a storage miner's sectorsType
- Blockchain/DLT - A generic state machineType
- Blockchain/DLT - A general-purpose key-value store for CBOR-encodable dataType
- Blockchain/DLT - This package is a reference implementation of the IPLD HAMT used in the Filecoin blockchainType
- Blockchain/DLT - An implementation of a cbor encoded merkledag object.Type
- Blockchain/DLT - Some basic utilities to generate fast path cbor codecs for your types.Type
Only those listed in the Assets in Scope table are considered to be in scope of the Bug Bounty Program.
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
- Total Chain haltCriticalImpact
- Unintended permanent chain split requiring hard fork (network partition requiring hard fork)CriticalImpact
- Direct loss of fundsCriticalImpact
- Permanent freezing of funds (fix requires hardfork)CriticalImpact
- Protocol-level bug that causes a general breakage of all contracts deployed on the chainCriticalImpact
- Protocol-level bug that enables tricking contracts into sending funds to arbitrary addressesCriticalImpact
- Unintended chain split (Network partition) with localized impacts (which would require hard fork but doesn’t affect the chain as whole)HighImpact
- Transient consensus failures (Temporary halt in transactions leading to consensus failure)HighImpact
- Protocol-level bug preventing contracts from using their fundsHighImpact
- Protocol-level bug causing the inability for developers to deploy new smart contractsHighImpact
- Protocol-level bug rendering a single contract unusable after the exploit (i.e. contract bricked)HighImpact
- Inability to propagate new transactionsHighImpact
- High compute consumption by validator/mining nodesMediumImpact
- DoS of greater than 30% of validator or miner nodes and does not shut down the networkMediumImpact
- EVM instruction fails to execute, in a general wayMediumImpact
- Inability to deploy a contract under a specific circumstancesMediumImpact
- DoS of greater than 10% but less than 30% of validator or miner nodes and does not shut down the networkLowImpact
- Underpricing transaction fees relative to computation timeLowImpact
- Contract on the platform fails to deliver promised returns, but doesn’t lose valuesLowImpact
- EVM instruction fails to execute when provided with concrete parametersLowImpact
Out of Scope & Rules
We encourage good-faith security research. Reporters are required to follow this Policy in order to be eligible for an award. However, the Filecoin Foundation may, in its sole discretion, award a bounty when the researcher makes a good faith attempt to comply.
This is a discretionary award program. The Filecoin Foundation reserves the right to modify, restrict, suspend, or otherwise change any aspect of this Program at any time, and the decision as to whether or not to pay an award is at the sole discretion of the Filecoin Foundation. Any updated rules will be effective as of the time of posting, or upon such a later date as specified by the Filecoin Foundation.
If the Filecoin Foundation determines at any time in its sole discretion that a reporter or potential award recipient is ineligible, in violation of these rules or applicable laws, or engaging in behavior that it deems to violate our Code of Conduct, or that is obnoxious, deceptive, inappropriate, threatening, illegal or that is intended to annoy, abuse, or harass any other person, Filecoin Foundation reserves the right to disqualify that reporter or potential award recipient. Any such disqualified reporter or potential award recipient will then be ineligible for the award.
Public disclosure of the vulnerability must conform with the Coordinated Disclosure Policy. The CDP is subject to change at any time.
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
Blockchain/DLT & Smart Contract Specific:
- 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
Prohibited Activities:
The following activities are prohibited by this 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:
- the forfeiture and loss of access to all bug submissions, and/or
- 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 Filecoin Foundation, storage providers, Filecoin project contributors, ecosystem collaborators, or community members.
- Any denial of service attacks
- Automated testing of services that generates significant amounts of traffic
- Active exploits against the Filecoin network or Filecoin miners and nodes
- Physical or electronic attempts to access offices where project contributors work or data centers where Filecoin nodes are located
- Violating the privacy of Filecoin users and community members, compromising or disrupting their systems, destroying data, stealing funds and/or harming the user experience. If a vulnerability provides unintended access to data, you must limit the amount of data you access to the minimum required for effectively demonstrating a Proof of Concept; and cease testing and submit a report immediately
Play by the rules. This includes following the law, this Policy, and any other relevant agreements and policies, including abiding by the Filecoin Community Code of Conduct in all communications, discussions, and/or posts related to this Program or your discovered vulnerability. Testing must not violate any law or compromise any data that is not your