Lido on Polkadot
Submit a BugProgram Overview
Lido on Polkadot is a liquid staking solution for DOT. Lido lets users earn DOT staking rewards without needing to maintain infrastructure and enables them to trade staked positions, as well as participate in on-chain decentralized finance with their staked assets. Lido on Polkadot gives you:
- Liquidity through tokenization — no activation delays and the ability to sell your staked tokens or use them in decentralized finance;
- One-click staking — no complicated steps;
- Decentralized security and maximized staking performance — assets spread across the best performing validators from the whole network, that are not predefined. That is possible because of an algorithm based on provable data and decentralized oracles. You can learn more here.
For more information about Lido on Polkadot, please visit https://lido.fi/polkadot.
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, smart contracts, and blockchains/DLTs, focusing on the impact of the vulnerability reported.
All web/app 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.
Smart Contracts Rewards Breakdowns
Smart Contracts Critical:
- Loss of user funds:
- 1% of assets at risk, minimum 100 000 USD, maximum 2 000 000 USD
- Loss of non-user funds (e.g. treasury):
- 1% of assets at risk, minimum 50 000 USD , maximum 1 000 000 USD
- Loss of user funds:
Smart Contracts High:
- 1% of assets at risk when attack persists for 24 hours
- minimum 20 000 USD, maximum of 400 000 USD
- 1% of assets at risk when attack persists for 24 hours
Smart Contracts Medium:
- 1% of assets at risk when attack persists for 1 month
- minimum 5 000 USD, maximum 100 000 USD
- 1% of assets at risk when attack persists for 1 month
Smart Contracts Low:
- 2 000 USD
Web/App Rewards Breakdowns
Web/App Critical:
- 40 000 USD
Web/App High:
- 7 500 USD
Web/App Medium:
- 3 250 USD
Web/App Low:
- 1 000 USD
The following vulnerabilities are not eligible for a reward:
- All vulnerabilities found in https://github.com/Dedaub/audits/blob/main/Lido/Lido%20on%20Kusama%20audit%20Mar22.pdf
- All vulnerabilities found in https://github.com/mixbytes/audits_public/tree/master/Lido/Lido%20KSM
- Equal or duplicate issues submissions both for Lido on Kusama and Lido on Polkadot and vice versa since their codebase is very close.
Payouts are handled by the Lido on Polkadot team directly and are denominated in USD. However, payouts are done in LDO, ETH and DAI, with the choice of the ratio at the discretion of the team.
Smart Contract
- Critical
- Level
- USD $50,000 to USD $2,000,000
- Payout
- High
- Level
- USD $20,000 to USD $400,000
- Payout
- Medium
- Level
- USD $5,000 to USD $100,000
- Payout
- Low
- Level
- USD $2,000
- Payout
Websites and Applications
- Critical
- Level
- USD $40,000
- Payout
- High
- Level
- USD $7,500 to USD $40,000
- Payout
- Medium
- Level
- USD $3,250
- Payout
- Low
- Level
- USD $1,000
- Payout
Assets in scope
- Smart Contract - Controller ProxyType
- Smart Contract - ControllerType
- Smart Contract - AuthManager ProxyType
- Smart Contract - AuthManagerType
- Smart Contract - Lido ProxyType
- Smart Contract - LidoType
- Smart Contract - OracleType
- Smart Contract - OracleMaster ProxyType
- Smart Contract - OracleMasterType
- Smart Contract - LedgerType
- Smart Contract - Ledger BeaconType
- Smart Contract - Ledger factoryType
- Smart Contract - wstKSMType
- Smart Contract - Withdrawal ProxyType
- Smart Contract - WithdrawalType
- TargetWebsites and Applications - Main Web AppType
All smart contracts of Lido on Polkadot can be found at https://github.com/mixbytes/lido-dot-ksm. However, only those in the Assets in Scope table are considered as in-scope of the bug bounty program.
If an impact can be caused to any other asset managed by Lido on Polkadot that isn’t on this table but for which the impact is in the Impacts in Scope section below, you are encouraged to submit it for the consideration by the project. This applies to only Critical and High impacts.
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
- Any governance voting result manipulationCriticalImpact
- Direct theft of any user funds, whether at-rest or in-motion, other than unclaimed yieldCriticalImpact
- Permanent freezing of fundsCriticalImpact
- InsolvencyCriticalImpact
- Theft of unclaimed yieldCriticalImpact
- Permanent freezing of unclaimed yieldHighImpact
- Temporary freezing of funds for a minimum of 24 hoursHighImpact
- Smart contract unable to operate due to lack of token fundsMediumImpact
- Block stuffing for profitMediumImpact
- 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
- Ability to execute system commandsCriticalImpact
- Extract Sensitive data/files from the server such as /etc/passwdCriticalImpact
- Taking Down the application/websiteCriticalImpact
- Stealing User CookiesCriticalImpact
- Signing transactions for other usersCriticalImpact
- Redirection of user deposits and withdrawalsCriticalImpact
- Subdomain takeover resulting in financial loss (applicable for subdomains with addresses published)CriticalImpact
- Wallet interaction modification resulting in financial lossCriticalImpact
- Tampering with transactions submitted to the user’s walletCriticalImpact
- Direct theft of user fundsCriticalImpact
- Submitting malicious transactions to an already-connected walletCriticalImpact
- Spoofing content on the target application (Persistent)HighImpact
- Users Confidential information disclosure such as EmailHighImpact
- Subdomain Takeover without financial loss (applicable for subdomains with no addresses published)HighImpact
- Privilege escalation to access unauthorized functionalitiesHighImpact
- Changing details of other users without direct financial impact (CSRF)MediumImpact
- Third-Party API keys leakage that demonstrates loss of funds or modification on the websiteMediumImpact
- Redirecting users to malicious websites (Open Redirect)MediumImpact
- Broken Link HijackingLowImpact
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)
- Equal or duplicate issues submissions both for Lido on Kusama and Lido on Polkadot and vice versa since their codebase is very close.
Smart Contracts and Blockchain
- Incorrect data supplied by third party oracles
- Not to exclude oracle manipulation/flash loan attacks
- Basic economic governance attacks (e.g. 51% attack)
- Lack of liquidity
- Best practice critiques
- Sybil attacks
- Centralization risks
Websites and Apps
- Theoretical vulnerabilities without any proof or demonstration
- Attacks requiring physical access to the victim device
- Attacks requiring access to the local network of the victim
- Reflected plain text injection ex: url parameters, path, etc.
- This does not exclude reflected HTML injection with or without javascript
- This does not exclude persistent plain text injection
- Self-XSS
- Captcha bypass using OCR without impact demonstration
- CSRF with no state modifying security impact (ex: logout CSRF)
- Missing HTTP Security Headers (such as X-FRAME-OPTIONS) or cookie security flags (such as “httponly”) without demonstration of impact
- Server-side non-confidential information disclosure such as IPs, server names, and most stack traces
- Vulnerabilities used only to enumerate or confirm the existence of users or tenants
- Vulnerabilities requiring un-prompted, in-app user actions that are not part of the normal app workflows
- Lack of SSL/TLS best practices
- DDoS vulnerabilities
- Feature requests
- Issues related to the frontend without concrete impact and PoC
- Best practices issues without concrete impact and PoC
- Vulnerabilities primarily caused by browser/plugin defects
- Leakage of non sensitive api keys ex: etherscan, Infura, Alchemy, etc.
- Any vulnerability exploit requiring browser bugs for exploitation. ex: CSP bypass
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