zkSync
Submit a BugProgram Overview
zkSync is a scaling engine for Ethereum. Its current functionality scope includes low gas transfers of ETH and ERC20 tokens in the Ethereum network, atomic swaps & limit orders as well as native L2 NFT support.
zkSync is built on ZK Rollup architecture. ZK Rollup is an L2 scaling solution in which all funds are held by a smart contract on the mainchain, while computation and storage are performed off-chain. For every Rollup block, a state transition zero-knowledge proof (SNARK) is generated and verified by the mainchain contract. This SNARK includes the proof of the validity of every single transaction in the Rollup block. Additionally, the public data update for every block is published over the mainchain network in the cheap calldata.
For more information about zkSync, please visit https://zksync.io/.
This bug bounty program is focused on their smart contracts, ZK-SNARK circuits, web and app and is focused on preventing:
- Loss of user funds by permanent freezing or direct theft
- Temporary freezing of funds
- Smart contract destruction
- Double spending
- Ability to execute a transaction with changed signed parameters
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 consequence of exploitation to privilege required to likelihood of a successful exploit. For the ZK-SNARK Circuits, the classification will be based on the impacts listed on the Impacts in Scope section below
All critical and high severity bug reports must come with a PoC with an end-effect impacting an asset-in-scope in order to be considered for a reward. Explanations and statements are not accepted as PoC and code is required.
Rewards for critical smart contract vulnerabilities are further capped at 10% of economic damage, with the main consideration being the funds affected in addition to PR and brand considerations, at the discretion of the team. However, there is a minimum reward of USD 50 000 for Critical bug reports.
The rewards for the Blockchain/DLT section is only for the ZK-SNARK Circuits assets and not any other blockchain/DLT section.
Payouts are handled by the zkSync team directly and are denominated in USD. However, payouts are done in USDC.
Blockchain/DLT
- Critical
- Level
- USD $500,000
- Payout
- High
- Level
- USD $10,000
- Payout
Smart Contract
- Critical
- Level
- Up to USD $2,100,000
- Payout
- High
- Level
- USD $50,000
- Payout
- Medium
- Level
- USD $5,000
- Payout
- Low
- Level
- USD $1,000
- Payout
Websites and Applications
- Critical
- Level
- USD $50,000
- Payout
- High
- Level
- USD $5,000
- Payout
Assets in scope
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- TargetBlockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- TargetBlockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- TargetBlockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Blockchain/DLT - ZK-SNARK CircuitsType
- Smart Contract - Upgrade gatekeeperType
- Smart Contract - ProxyType
- Smart Contract - zkSync targetType
- Smart Contract - Additional zkSync targetType
- Smart Contract - Verifier targetType
- Smart Contract - Governance targetType
- Smart Contract - Token governanceType
- Smart Contract - NFT factoryType
- TargetWebsites and Applications - WalletType
- TargetWebsites and Applications - ExplorerType
- TargetWebsites and Applications - zkLinkType
- Websites and Applications - Alternative WithdrawalType
- Websites and Applications - zkCheckoutType
All smart contracts of zkSync can be found at https://github.com/matter-labs/zksync/tree/breaking/contracts. However, only those in the Assets in Scope table are considered as in-scope of the bug bounty program.
Note that the bug bounty program includes contracts from the active upgrade - zkSync target/governance target/additional zkSync.
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
- Double spendingCriticalImpact
- Inability to generate a block for a priority operation that is added through a smart contractCriticalImpact
- Minting fungible tokens not through a depositCriticalImpact
- Ability to steal/burn/freeze other people's tokensCriticalImpact
- Ability to execute a transaction with changed signed parameters (e.g. sender/recipient/amount/tokenId/feeToken/...)HighImpact
- Ability to create a block with public input information that is not enough to restore state transitionHighImpact
Smart Contract
- Loss of user funds by permanent burning, freezing or direct theftCriticalImpact
- Network shutdownCriticalImpact
- Temporary freezing of funds for at least 24 hoursHighImpact
- Forceful activation of exodus modeHighImpact
- Blocking of upgrade systemHighImpact
- Smart contract gas drainageMediumImpact
- Griefing (e.g. no profit motive for an attacker, but damage to the users or the protocol)MediumImpact
- Smart contract fails to deliver promised returns, but doesn’t lose valueLowImpact
Websites and Applications
- Leak of user dataCriticalImpact
- Redirected funds by address modificationCriticalImpact
- Site goes downCriticalImpact
Out of Scope & Rules
The following vulnerabilities are excluded from the rewards for this bug bounty program:
- 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)
Smart Contracts and Blockchain
- Basic economic governance attacks (e.g. 51% attack)
- Logic errors with rebase tokens and interest-bearing tokens
- Best practice critiques
- Sybil attacks
- Centralization risks
Websites and Apps
- Theoretical vulnerabilities without any proof or demonstration
- Content spoofing / Text injection issues
- Self-XSS
- Captcha bypass using OCR
- CSRF with no security impact (logout CSRF, change language, etc.)
- Missing HTTP Security Headers (such as X-FRAME-OPTIONS) or cookie security flags (such as “httponly”)
- Server-side information disclosure such as IPs, server names, and most stack traces
- Vulnerabilities used to enumerate or confirm the existence of users or tenants
- Vulnerabilities requiring unlikely user actions
- URL Redirects (unless combined with another vulnerability to produce a more severe vulnerability)
- Lack of SSL/TLS best practices
- DDoS vulnerabilities
- Attacks requiring privileged access from within the organization
- Feature requests
- Best practices
The following activities are prohibited by this bug bounty program:
- Any testing with mainnet or public testnet contracts; all testing should be done on private testnets
- 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
- Automated testing of services that generates significant amounts of traffic
- Public disclosure of an unpatched vulnerability in an embargoed bounty