Filecoin is a decentralized storage network designed to store humanity's most important data. As such, security is of paramount importance to us.
The Filecoin network shipped the Filecoin Virtual Machine in May 2022. It is based on WebAssembly (Wasm), and is inspired by VM hypervisors and OS virtualization. FVM can support actors written for a variety of execution environments, including Ethereum Virtual Machine (EVM), Secure EcmaScript (SES), eBPF, and actors that compile to WebAssembly. This enables developers to write software that automates the storage, retrieval, and ultimately the transformation of data in a web3-native way.
With the M2.1 release of the FVM roadmap in March 2023, Filecoin launched the Ethereum Virtual Machine (EVM) runtime on top of FVM. Developers can port existing EVM contracts with no changes, while connecting them to Filecoin state and storage services. This makes Filecoin compatible with EVM tools, including wallets like MetaMask, and developer tools like Hardhat or Foundry, making deploying and interacting with EVM-based actors easy.
This bug bounty program is focused on the Filecoin Virtual Machine (FVM) and the Filecoin EVM runtime (FEVM). Smart contracts deployed on FEVM are excluded.
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.
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.
All rewards for the project bug bounty program are scaled based on an internally established team criteria, taking into account the exploitability of the bug, the impact it causes, and the likelihood of the vulnerability presenting itself, which is especially factored in with bug reports requiring multiple conditions to be met that are currently not in-place. However, there is a minimum reward for each severity level, rewards will be provided at the determined fair value by the team depending on these conditions, assuming that the bug report is in-scope of the bug bounty program.
We have payment terms of upto 30 days after the invoice is generated.
Payouts and Payout Requirements:
Payouts are handled by the Filecoin team directly and are denominated in USD. However, payouts are done in FIL. Filecoin 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.
Filecoin does have a Know Your Customer (KYC) requirement for bug bounty payouts.
KYC Info Required:
- Legal Name
- Country of residence
- W9, W8BEN, or W8BENE forms
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 the following links:
|Description of known issue/repository||Related Impact-in-Scope: Issues created in the following repos|
|All issues, PRs and code comments that are already mentioned and listed in the FVM reference implementation repo||https://github.com/filecoin-project/ref-fvm|
|All issues, PRs and code comments that are already mentioned and listed in the FVM reference implementation in the Built-in Filecoin actors repo||https://github.com/filecoin-project/builtin-actors|
|All issues, PRs and code comments that are already mentioned and listed in Lotus, which is our reference node implementation for the Filecoin network||https://github.com/filecoin-project/lotus|
|Issues and recommendations that are listed in the following audit report||https://hackmd.io/@DraganZ/FEVM_M21_Audit_Dashboard_AlexW/edit|
|Issues and recommendations that are listed in the following audit:||https://github.com/oak-security/audit-reports/blob/master/Filecoin%20Foundation/2023-03-09%20Audit%20Report%20-%20Filecoin%20EVM%20(FEVM)%20v1.1.pdf|
- USD $100,000 to USD $500,000
- USD $25,000 to USD $100,000
- USD $10,000 to USD $25,000
- USD $1,000 to USD $10,000
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
Only those listed in the Assets in Scope table are considered to be in-scope of the bug bounty program.
- Blockchain/DLT - PoC, Blockchain/DLT bug reports are to include a runnable Proof of Concept (PoC) in order to prove impact.
- For more information on PoCs please visit: Proof of Concept (PoC) Guidelines and Rules
- The list of all deployed code can be found at:
|Blockchain/DLT Asset||Github Repo|
|FVM reference implementation||https://github.com/filecoin-project/ref-fvm|
|Built-in Filecoin actors - which are written in Rust; Wasm-compiled actors (smart contracts, in Filecoin lingo) that are used by all Filecoin clients||https://github.com/filecoin-project/builtin-actors|
|Lotus is the reference node implementation for the Filecoin network||https://github.com/filecoin-project/lotus|
Dev Environments and Documentation
Filecoin has included dev documentation and/or instructions to help in reviewing code and exploring for bugs:
- Filecoin virtual machine - Docs
- Introduction to Filecoin
- FVM website
- Hyperspace dev environment
- FEVM Hardhat kit
- FVM Hackathon Cheat Sheet
- FVM Implementation FIP
Impacts in Scope
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:
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.
- Network not being able to confirm new transactions (Total network shutdown)CriticalImpact
- Unintended permanent chain split requiring hard fork (Network partition requiring hard fork)CriticalImpact
- Direct loss of fundsCriticalImpact
- Permanent, repeatable freezing of funds affecting core protocol areas (fix requires hard fork)CriticalImpact
- RPC API crash capable of impacting block productionCriticalImpact
- 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 impactHighImpact
- Transient consensus failuresHighImpact
- Inability to propagate new transactionsHighImpact
- Protocol-level bug preventing contracts from using their fundsHighImpact
- Protocol-level bug causing a general inability for developers to deploy new smart contractsHighImpact
- Protocol-level bug rendering a single contract unusable after the exploit (i.e. contract bricked)HighImpact
- High compute consumption by validator/mining nodesMediumImpact
- Attacks against thin clientsMediumImpact
- DoS of greater than 30% of validator or miner nodes and does not shut down the networkMediumImpact
- 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 specific parametersLowImpact
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
- Any smart contract deployed on the FVM platform is out of scope for this bug bounty
- Broken link hijacking is out of scope
- Basic economic governance attacks (e.g. 51% attack)
- Lack of liquidity
- Best practice critiques
- Sybil attacks
- Centralization risks
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.
- 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.