arShield
Submit a BugProgram Overview
arShields, developed by the ArmorFi team, are vaults/wrappers that automatically provide hack coverage for the underlying tokens. A user deposits an underlying token, then receives an armorToken. This armorToken has coverage in perpetuity, needs no deposits or payments, and needs no updating. Payment is periodically taken from the pool of underlying tokens to pay for arCore coverage.
The arShield system consists of four parts: arShield.sol, CoverageBase.sol, ShieldController.sol, and YearnOracle.sol (different oracle contracts are needed for different families of tokens).
Further resources regarding arShield can be found at https://docs.google.com/document/d/1FZmiasTBeSd0vhFXIW2IXbPfs-FVKoFHNUX6AGUjy0k/edit?usp=sharing.
The bug bounty program is focused around its smart contracts and is mostly concerned with:
- Any loss of user funds
- Ability to withdraw more Ether than should be owed after a payout
- Ability to game the system so that they get an unfair percentage of payouts (for example, purchasing tokens directly after the hack at a very cheap price before the contract is locked in order to get a large % of the payout)
- Any oracle manipulation resulting in inorganic and harmful token prices
- Unauthorized access to functions that should only be able to be controlled by owner such as the ability to edit shield variables
- Problems with users being able to maliciously manipulate amounts being paid by shields
- Any other problems pertaining to shield coverage
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.
All vulnerabilities that can cause damage of over the equivalent of USD 1 000 000 are considered as Critical within this bug bounty program, regardless of it normally being considered Critical or High. If a bug report normally classified as Critical has an impact of less than USD 1 000 000, then it is reduced to High.
All bug reports submitted as Critical must have a PoC with the report.
Payouts are handled directly by the ArmorFi team and are paid in USDC.
Smart Contracts and Blockchain
- Critical
- Level
- USD $50,000
- Payout
- high
- Level
- USD $10,000
- Payout
- medium
- Level
- USD $5,000
- Payout
- low
- Level
- USD $1,000
- Payout
- none
- Level
- Up to USD $200
- Payout
Prioritized Vulnerabilities
We are especially interested in receiving and rewarding vulnerabilities of the following types:
- Re-entrancy
- Logic errors
- including user authentication errors
- Solidity/EVM details not considered
- including integer over-/under-flow
- including unhandled exceptions
- Trusting trust/dependency vulnerabilities
- including composability vulnerabilities
- Oracle failure/manipulation
- Novel governance attacks
- Economic/financial attacks
- including flash loan attacks
- Congestion and scalability
- including running out of gas
- including block stuffing
- including susceptibility to frontrunning
- Consensus failures
- Cryptography problems
- Signature malleability
- Susceptibility to replay attacks
- Weak randomness
- Weak encryption
- Susceptibility to block timestamp manipulation
- Missing access controls / unprotected internal or debugging interfaces
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)
- 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
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