Stellar is a layer-1 open-source, decentralized, peer-to-peer blockchain network that provides a framework for developers to create applications, issue assets, and connect to existing financial rails. Stellar is designed to enable creators, innovators, and developers to build projects on the network that can interoperate with each other.
Soroban is a smart contracts platform that is designed to integrate with and work alongside the Stellar blockchain. It is currently live on Testnet.
Stellar provides rewards in XLM, denominated in USD. For more details about the payment process, please view the Rewards by Threat Level section further below.
Stellar will be requesting KYC information in order to pay for successful bug submissions. The following information will be required:
- Full name
- Date of birth
- Proof of address (either a redacted bank statement with address or a recent utility bill)
- Copy of Passport or other Government issued ID
- Tax form (W-9/W-8BEN/W-8BEN-E)
Security researchers who wish to participate must adhere to the rules of engagement set forth in this program and cannot be:
- On OFACs SDN list
- Official contributor, both past or present
- Employees and/or individuals closely associated with the project
- Security auditors that directly or indirectly participated in the audit review
Stellar adheres to category 3: Approval Required. This Policy determines what information researchers are allowed to make public from their submitted bug reports. For more information about the category selected, please refer to our Responsible Publication page.
Primacy of Impact vs Primacy of Rules
Stellar adheres to the Primacy of Rules, which means that the whole bug bounty program is run strictly under the terms stated in 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.
Known Issue Assurance
Stellar commits to providing Known Issue Assurance to bug submissions through their program. This means that Stellar will either disclose known issues publicly, or at the very least, privately via a self-reported bug submission.
In a potential scenario of a mediation, this allows for a more objective and streamlined process, in order to prove that an issue is known. Otherwise, assuming the bug report is valid, it would result in the report being considered as in-scope, and due a reward.
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. Researchers should check the github repositories issues marked with a security label to make sure a vulnerability has not been published already.
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 action 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, Stellar 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.
For critical Blockchain/DLT bugs, the reward amount is 10% of the funds directly affected, capped at the maximum critical reward USD 250 000. However, a minimum reward of USD 50 000 is to be rewarded in order to incentivize security researchers against withholding on a bug report.
For critical Blockchain/DLT bugs with a non-funds-at risk impact, the reward will be paid out as follows:
- Network not being able to confirm new transactions (total network shutdown) USD 50 000
- Unintended permanent chain split requiring hard fork (network partition requiring hard fork) USD 50 000
- Permanent freezing of funds (fix requires hardfork) USD 50 000
For high Blockchain/DLT impacts, the reward will be paid out as follows:
- Unintended chain split (network partition) USD 50 000
- Temporary freezing of network transactions by delaying one block by 500% or more of the average block time of the preceding 24 hours beyond standard difficulty adjustments USD 30 000
- Causing network processing nodes to process transactions from the mempool beyond set parameters USD 20 000
- RPC API crash affecting projects with greater than or equal to 25% of the market capitalization on top of the respective layer USD 30 000
For the asset (https://github.com/stellar/wasmi), Stellar uses a fork of parity wasmi with few patches for Soroban. We encourage researchers to submit vulnerabilities for wasmi but we retain the right to declare that a vulnerability is out of scope and should be reported to Parity Tech instead.
Reward Payment Terms
Payouts are handled by the Stellar team directly and are denominated in USD. However, payments are done in XLM.
The calculation of the net amount rewarded is based on the average price between CoinMarketCap.com and CoinGecko.com at the time the bug report was submitted. No adjustments are made based on liquidity availability.
- USD $50,000 to USD $250,000
- USD $10,000 to USD $50,000
- USD $5,000
- USD $1,000
Assets in scope
- Blockchain/DLT - Stellar core nodeType
- Blockchain/DLT - Soroban Rust SDKType
- Blockchain/DLT - Soroban contract engine environmentType
- Blockchain/DLT - Soroban CLI and RPC serverType
- Blockchain/DLT - Soroban JS clientType
- Blockchain/DLT - Rust XDR libraryType
- Blockchain/DLT - Rust strkeys libraryType
- Blockchain/DLT - Rust crate git version management libraryType
- Blockchain/DLT - Bytes Array libraryType
- Blockchain/DLT - Wasmi forkType
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 freezing of funds (fix requires hardfork)CriticalImpact
- Unintended chain split (network partition)HighImpact
- Temporary freezing of network transactions by delaying one block by 500% or more of the average block time of the preceding 24 hours beyond standard difficulty adjustmentsHighImpact
- Causing network processing nodes to process transactions from the mempool beyond set parametersHighImpact
- RPC API crash affecting projects with greater than or equal to 25% of the market capitalization on top of the respective layerHighImpact
- Increasing network processing node resource consumption by at least 30% without brute force actions, compared to the preceding 24 hoursMediumImpact
- Shutdown of greater than or equal to 30% of network processing nodes without brute force actions, but does not shut down the networkMediumImpact
- A bug in the respective layer 0/1/2 network code that results in unintended smart contract behavior with no concrete funds at direct riskMediumImpact
- Shutdown of greater than 10% or equal to but less than 30% of network processing nodes without brute force actions, but does not shut down the networkLowImpact
- Modification of transaction fees outside of design parametersLowImpact
Out of Scope & Rules
These impacts are out of scope for this bug bounty program.
- 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
- Impacts on test files and configuration files unless stated otherwise in the bug bounty program
- 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
- Any testing on mainnet or public testnet deployed code; all testing should be done on local-forks of either public testnet or mainnet
- 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 that are executed against project assets
- Automated testing of services that generates significant amounts of traffic
- Public disclosure of an unpatched vulnerability in an embargoed bounty