Shell Protocol
Program Overview
Shell Protocol is a set of EVM-based smart contracts on Arbitrum One. Unlike other DeFi protocols that rely on monolithic, single-purpose smart contracts, Shell is a hub for a modular ecosystem of services. Its design makes it much simpler to bundle several smart contracts or build new ones, and for users to batch many services in one transaction.
Known for simplifying DeFi for both users and developers, Shell is a public resource to be governed by the upcoming Shell DAO.
For more information about Shell Protocol, please visit https://shellprotocol.io/
Payouts are handled by the Shell Protocol team directly and are denominated in USD. Payouts are done in USDC.. For more details about the payment process, please view the Rewards by Threat Level section further below.
Responsible Publication
Shell Protocol adheres to category 1. This Policy determines what information whitehats 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 Rules
Shell Protocol adheres to the Primacy of Rules, which means that the whole bug bounty program is run strictly under the terms stated in this page.
Immunefi Severity Classification System
This program was designed using the Immunefi classification system. Bugs are classified on a simplified 4-level scale:
- Critical
- High
- Medium
- Low
See: Immunefi Vulnerability Severity Classification System v2.3
Rewards by Threat Level
Rewards by Threat Level are distributed according to the impact the vulnerability could otherwise cause based on the Impacts in Scope table further below.
Reward Calculation for Critical Level Reports
For critical Smart Contract bugs, the reward amount is 10% of the funds directly affected up to a maximum of $100,000 USD. The calculation of the amount of funds at risk is based on the time and date the bug report is submitted. However, a minimum reward of $25,000 USD is to be rewarded in order to incentivize security researchers against withholding a bug report.
Repeatable Attack Limitations
In cases of repeatable attacks for smart contract bugs, only the first attack is considered if the smart contracts where the vulnerability exists can be upgraded, paused, or killed. If the attack impacts a smart contract directly holding funds that cannot be upgraded or paused, the amount of funds at risk will be calculated with the first attack being at 100% of the funds that could be stolen and then a reduction of 25% from the amount of the first attack for every 300 blocks the attack needs for subsequent attacks from the first attack, rounded down.
Proof of Concept (PoC) Requirements
A PoC is required for the following severity levels:
- Smart Contracts, Critical Severity Level
- Smart Contracts, High Severity Level
- Smart Contracts, Medium Severity Level
- Smart Contracts, Low Severity Level
- Web/App, All Levels
All PoCs submitted must comply with the Immunefi-wide PoC Guidelines and Rules. Bug report submissions without a PoC when a PoC is required will not be provided with a reward.
Reward Payment Terms
Payouts are handled by the Shell Protocol team directly and are denominated in USD. Payments will be issued in USDC or ETH.
Smart Contract
- Critical
- Level
- USD $100,000
- Payout
- High
- Level
- USD $20,000
- Payout
- Medium
- Level
- USD $5,000
- Payout
- Low
- Level
- USD $1,000
- Payout
Websites and Applications
- Critical
- Level
- USD $10,000
- Payout
- High
- Level
- USD $3,000
- Payout
- Medium
- Level
- USD $1,500
- Payout
- Low
- Level
- USD $500
- Payout
Assets in scope
- Smart Contract - MainType
- Smart Contract - Multi-sigType
- Smart Contract - the OceanType
- Smart Contract - AMMType
- Websites and Applications - web/appType
- Websites and Applications - web/appType
All code of Shell Protocol can be found at https://github.com/Shell-Protocol/Shell-Protocol
Unless explicitly listed, only pages of the web/app assets in addition to the direct link are considered in-scope of the bug bounty program. Other subdomains are not considered as in-scope. However, for subdomain takeovers that lead to an impact on the in-scope asset, please refer to our page about Reported Subdomain Takeovers.
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 Contract
- Manipulation of governance voting result deviating from voted outcome and resulting in a direct change from intended effect of original resultsCriticalImpact
- Direct theft of any user funds, whether at-rest or in-motion, other than unclaimed yieldCriticalImpact
- Direct theft of any user NFTs, whether at-rest or in-motion, other than unclaimed royaltiesCriticalImpact
- Permanent freezing of fundsCriticalImpact
- Permanent freezing of NFTsCriticalImpact
- Miner-extractable value (MEV)CriticalImpact
- Unauthorized minting of NFTsCriticalImpact
- Predictable or manipulable RNG that results in abuse of the principal or NFTCriticalImpact
- Unintended alteration of what the NFT represents (e.g. token URI, payload, artistic content)CriticalImpact
- Protocol insolvencyCriticalImpact
- Theft of unclaimed yieldHighImpact
- Theft of unclaimed royaltiesHighImpact
- Permanent freezing of unclaimed yieldHighImpact
- Permanent freezing of unclaimed royaltiesHighImpact
- Temporary freezing of fundsHighImpact
- Temporary freezing NFTsHighImpact
- Smart contract unable to operate due to lack of token fundsMediumImpact
- Block stuffingMediumImpact
- Griefing (e.g. no profit motive for an attacker, but damage to the users or the protocol)MediumImpact
- Theft of gasMediumImpact
- Unbounded gas consumptionMediumImpact
- Contract fails to deliver promised returns, but doesn't lose valueLowImpact
Websites and Applications
- Execute arbitrary system commandsCriticalImpact
- Retrieve sensitive data/files from a running server such as: /etc/shadow, database passwords, blockchain keys (this does not include non-sensitive environment variables, open source code, or usernames)CriticalImpact
- Taking down the application/websiteCriticalImpact
- Taking down the NFT URICriticalImpact
- Taking state-modifying authenticated actions (with or without blockchain state interaction) on behalf of other users without any interaction by that user, such as: Changing registration information, Commenting, Voting, Making trades, Withdrawals, etc.CriticalImpact
- Changing the NFT metadataCriticalImpact
- Subdomain takeover with already-connected wallet interactionCriticalImpact
- Direct theft of user fundsCriticalImpact
- Malicious interactions with an already-connected wallet such as: Modifying transaction arguments or parameters, Substituting contract addresses, Submitting malicious transactionsCriticalImpact
- Direct theft of user NFTsCriticalImpact
- Injection of malicious HTML or XSS through NFT metadataCriticalImpact
- Injecting/modifying the static content on the target application without Javascript (Persistent) such as: HTML injection without Javascript, Replacing existing text with arbitrary text, Arbitrary file uploads, etc.HighImpact
- Changing sensitive details of other users (including modifying browser local storage) without already-connected wallet interaction and with up to one click of user interaction, such as: Email or password of the victim, etc.HighImpact
- Improperly disclosing confidential user information such as: Email address, Phone number, Physical address, etc.HighImpact
- Subdomain takeover without already-connected wallet interactionHighImpact
- Changing non-sensitive details of other users (including modifying browser local storage) without already-connected wallet interaction and with up to one click of user interaction, such as: Changing the name of user, Enabling/disabling notificationsMediumImpact
- Injecting/modifying the static content on the target application without Javascript (Reflected) such as: Reflected HTML injection, Loading external site dataMediumImpact
- Redirecting users to malicious websites (Open Redirect)MediumImpact
- Changing details of other users (including modifying browser local storage) without already-connected wallet interaction and with significant user interaction such as: Iframing leading to modifying the backend/browser state (demonstrate impact with PoC)LowImpact
- Taking over broken or expired outgoing links such as: Social media handles, etc.LowImpact
- Temporarily disabling user to access target site, such as: Locking up the victim from login, Cookie bombing, etc.LowImpact
- Any impact involving a publicly released CVE without a working PoCLowImpact
Out of Scope & Rules
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
Smart Contracts and Blockchain/DLT
- 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 involving centralization risks
- Best practice recommendations
Web/App
- Captcha bypass using OCR without impact demonstration
- UX and UI impacts that do not materially disrupt use of the platform
- Impacts primarily caused by browser/plugin defects
- Leakage of non sensitive API keys (e.g. Etherscan, Infura, Alchemy, etc.)
- Any vulnerability exploit requiring browser bugs for exploitation (e.g. CSP bypass)
- Automated scanner reports without demonstrated impact
- UI/UX best practice recommendations
- Non-future-proof NFT rendering