06 January 2021
Live since
No
KYC required
$100,000
Maximum bounty

Program Overview

Released in May 2020, mStable is a protocol that unites stablecoins, lending and swapping into one robust and easy to use standard. Three major problems confront stablecoin users: significant fragmentation in same-peg assets; lack of native yield when it is being increasingly demanded by users; lack of insurance against permanent capital loss. mStable’s products (SWAP, SAVE and EARN) are built specifically to address these pain-points.

This bug bounty program is further covered by the Armor Alliance Bug Bounty Challenge.

Verification

Verification of mStable's bug bounty program on Immunefi is available at

See verification

Rewards by Threat Level

Rewards are distributed according to the impact of the vulnerability based on the Immunefi Vulnerability Severity Classification System. 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.

Payouts up to USD 50 000 are handled by mStable directly and are denominated in USD. Payouts are made in mUSD. Payouts higher than USD 50 000 are further covered by the Armor Alliance Bug Bounty Challenge and remaining amounts are paid in ARMOR and are subject to a vesting schedule of up to 24 months.

Smart Contracts and Blockchain

Critical
Level
USD $100,000
Payout
high
Level
USD $8,000
Payout
medium
Level
USD $4,000
Payout
low
Level
USD $1,250
Payout
none
Level
USD $0
Payout

Assets in Scope

Any Proxy contracts listed in the Assets in Scope table also include the currently active logic contracts, and any external or internal libraries that are used in these.

StakedTokenMTA: Vault that stakes MTA
Type
StakedTokenBPT: Vault that stakes the MTA/ETH 80/20 Balancer Pool Token (BPT).
Type
Masset: mUSD
Type
SavingsContract: mUSD Savings Contract
Type
Masset: mBTC
Type
SavingsContract: imBTC
Type
FeederLogic: Library contract for Feeder Pools
Type
FeederManager: Library contract for Feeder Pools
Type
MassetManager: Manager contract for mAssets
Type
SavingsManager: Validates and distributes system revenue to savers
Type
InvariantValidator: Builds on and enforces the StableSwap invariant
Type
BoostedSavingsVault: Savings Vault
Type
FeederPool: BUSD Feeder Pool
Type
FeederPool: GUSD Feeder Pool
Type
FeederPool: HBTC Feeder Pool
Type
FeederPool: TBTC Feeder Pool
Type
FeederPool: alUSD Feeder Pool
Type
Liquidator: Liquidator
Type
QuestManager: Quest Manager that can add, complete and expire quests
Type
BoostedSavingsVault: GUSD Feeder Pool Vault
Type
BoostedSavingsVault: HBTC Feeder Pool Vault
Type
BoostedSavingsVault: TBTC Feeder Pool Vault
Type
SaveWrapper: Facilitates minting, deposits and staking of massets (mUSD and mBTC)
Type
BoostDirector: Supports the directing of staked Meta (vMTA) balances to boosted vaults.
Type
Nexus: Resolves module addresses
Type
RewardsDistributor: Distributes MTA rewards to vaults
Type
DelayedProxyAdmin: Administors proxy contracts with a one week time delay
Type
SignatureVerifier: Used to verify quest completions signatures
Type
PAaveIntegration: mUSD Aave V2 integration
Type
CompoundIntegration: mUSD Compound Integration
Type
BoostedSavingsVault: imBTC Vault
Type
CompoundIntegration: BUSD FP Iron Bank Integration for mBTC
Type
BoostedSavingsVault: BUSD Feeder Pool Vault
Type
CompoundIntegration: GUSD FP Iron Bank Integration for mBTC
Type
BoostedSavingsVault: alUSD Feeder Pool Vault
Type
InterestValidator: Collects interest and gov fees from Feeder Pools
Type
RevenueRecipient: Receives governance fees and deposits to Balancer pool
Type
AlchemixIntegration: alUSD FP integration to Alchemix's alUSD staking pool
Type
Masset: mUSD
Type
MassetManager: Library contract for mUSD
Type
MassetManager: Library contract for mUSD
Type
SavingsContract: imUSD
Type
FeederPool: FRAX Feeder Pool
Type
SavingsManager: Validates and distributes system revenue to savers
Type
Pliquidator: Liquidates wmatic rewards or USDC
Type
Masset: imUSD Vault
Type
DelayedProxyAdmin: Time delayed proxy admin
Type
PAaveIntegration: Aave integration contract
Type
InterestValidator: Validates the platform interest collection from the Feeder Pools
Type
SaveWrapper: Facilitates minting, deposits and staking of massets (mUSD and mBTC)
Type
Nexus: Resolves module addresses
Type
RewardsDistributor: Distributes MTA rewards to vaults
Type
Basic Rewards Forwarder
Type
Bridge Forwarder
Type
Emissions Controller
Type
L2 Bridge Recipient
Type
L2 Emissions Controller
Type

Prioritized Vulnerabilities

We are especially interested in receiving and rewarding vulnerabilities of the following types:

  • Loss of collateral or unfair payouts in the mStable StakedToken contracts, resulting in a loss of user funds
  • Loss of collateral or stealing of funds from the mAsset, resulting in it becoming under-collateralized
  • Unfair payouts through SAVE, MINT, REDEEM or SWAP functionalities that results in under-collateralized or affected system
  • Manipulating or circumvention of mStable governance mechanism
  • Locking or freezing or any of the mStable contracts or inability to upgrade
  • Ineffective or error prone forge validation mechanisms

Additionally, mStable seeks reports of the following Immunefi Common Vulnerabilities.

Out of Scope & Rules

The following Immunefi Commonly Excluded Vulnerabilities are excluded from the mStable bug bounty program.

The following activities are prohibited by 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