Element Finance

Submit a Bug
13 May 2021
Live since
No
KYC required
$100,000
Maximum bounty

Program Overview

Element Finance brings high fixed yield income to the DeFi market, initially focused on ETH, BTC, USDC, and DAI. Users can purchase ETH, BTC, USDC, and DAI at a discount without being locked into a term, allowing the exchange of the discounted asset and the base asset at any time. The fixed rate income can be secured with the exchange of any major base asset. For active DeFi users, the Element Protocol provides capital efficiency on yield positions they are already depositing into, such as Yearn or ETH2 staking. Users can sell their deposited principal at a discount as fixed yield income, leveraging or increasing exposure to yield without liquidation risk. This competitive activity is what drives the high fixed yield markets. This construction paper breaks down the Element Protocol and discusses how it can open the door to a number of new primitives and innovations.

Further information regarding Element Finance can be found on their Construction Paper, https://paper.element.fi/.
The bug bounty program is focused around its smart contracts and is mostly concerned with the loss of user funds and the access to those funds without user permission.

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.

In addition to assessing severity, the rewards will be considered based on the impact of the discovered vulnerability as well as the level of difficulty in discovering such vulnerability.

Payouts are handled by the Element Finance team directly and are denominated in USD. However, payouts are done in DAI or USDC.

Smart Contracts and Blockchain

Critical
Level
USD $20,000 - USD $100,000
Payout
high
Level
USD $5,000 - USD $20,000
Payout
medium
Level
USD $1,000 - USD $5,000
Payout
low
Level
Up to USD $1,000
Payout
none
Level
USD $0
Payout

Assets in Scope

All Smart Contracts deployed or intended for deployment (e.g not in the test folder) in https://github.com/element-fi/elf-contracts/tree/5517dbe0982b85bc7a7207b5119d9a728bf1f830 are within the scope of this bug bounty program. However, the Smart Contracts listed in this table are prioritized, and this prioritization is taken into account when deciding on the reward amount.

Disclosure and Reporting Guidelines

We ask that all bug bounty hunters, security engineers, and researchers:

  • Make it a priority to avoid privacy violations, degradation of user experience, and disruption to production systems during security testing.
  • Report vulnerabilities as soon as they have been discovered and keep them confidential between yourself and the Element team until the issue(s) has been resolved.
  • Only use the Immunefi bug reporting interface to report vulnerability information to us.
  • Provide the team with at least 5 working days to investigate the issue and get back to you before taking any further action.
Core Contract (Wrapped Position)
Type
Core Contract (Tranche)
Type
Core Contract (Tranche Factory)
Type
Core Contract (Interest Token)
Type
Core Contract (Interest Token Factory)
Type
Core Contract (User Proxy)
Type
Library Contract (Authorizable)
Type
Integration Contract (Y Vault Asset Proxy)
Type
Custom Balancer Curve (Convergent Curve Pool)
Type
Custom Balancer Curve (Convergent Pool Factory)
Type
Smart Contract - Core Voting
Type
Smart Contract - Simple Proxy
Type
Smart Contract - GSC Vault
Type
Smart Contract - Locking Vault
Type
Smart Contract - Optimistic Rewards
Type
Smart Contract - Vesting Vault
Type
Smart Contract - History
Type
Smart Contract - Merkle Rewards
Type
Smart Contract - Reentrancy Block
Type
Smart Contract - Storage
Type
Smart Contract - Vesting Vault Storage
Type
Smart Contract - Optimistic Grants
Type
Smart Contract - Spender
Type
Smart Contract - Timelock
Type
Smart Contract - Treasury
Type

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

Additionally, the following aspects are prioritized for the Smart Contracts listed in the Assets in Scope table. We want to be confident that:

Core Contracts:

  • No user either loses or loses access to funds.
  • No user funds are moved without user permission.
  • No Principal or Yield tokens can be minted that are not fully backed.
  • The user proxy always returns the correct amount to users.

For the Integration Contracts:

  • No flash loan or other attack can manipulate the interest earned or balance calculations.
  • These integrations will always be able to retrieve funds from the protocols.
  • There are no conditions where these contracts will lose money.

For the Custom Balancer Curve:

  • The math in the contract matches the math we intended.
  • The error conditions mean that the calculation is within a tolerance of the real result.
  • There is no way to manipulate the pool to produce a profit for an attacker.

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

Terms

By submitting your report through Immunefi, you grant Element Finance the rights to validate, mitigate, and disclose the vulnerability. All bug bounty reward decisions, including eligibility, amounts for rewards, and how such rewards will be paid, are made at Element’s sole discretion. The terms and conditions of this Bug Bounty Program may be altered at any time.