ENS-logo

ENS

The Ethereum Name Service (ENS) is a distributed, open, and extensible naming system based on the Ethereum blockchain.

ETH
Infrastructure
Services
Solidity
NextJS
Maximum Bounty
$250,000
Live Since
10 May 2024
Last Updated
18 July 2024
  • PoC required

  • Vault program

VaultImmunefi vault program

Funds available

$155,427.23

30d Avg. Funds availability

$156,948.74

Assets in vault

  • 155.5k  USDC

Public vault address

0x6d9f8f5e2E76A7e43805dbD4464EaC3299B34De5

Rewards by Threat Level

Smart Contract
Critical
USD $150,000 to USD $250,000. Testnet rewards: USD $250,000
High
USD $100,000 to USD $150,000. Testnet rewards: USD $150,000
Medium
USD $100,000. Testnet rewards: USD $100,000
Websites and Applications
Critical
USD $20,000 to USD $50,000
High
USD $5,000 to USD $20,000
Medium
USD $2,500
Low
USD $1,000

Rewards are broadly based on the principles set forth within the Immunefi Vulnerability Severity Classification System V2.3.

For the sake of clarity, in the event of a conflict between that classification system and the rewards schema set forth below, the below language will control.

Reward Calculation for Critical Level Reports

For critical smart contract bugs, the reward amount is 10% of the funds directly affected up to a maximum of USD 250 000. The calculation of the amount of funds at risk is based on the time and date the bug report is submitted. However, a minimum reward of USD 150 000 is to be rewarded in order to incentivize security researchers against withholding a critical bug report.

The reward for critical smart contract bugs on testnet assets ranges between USD 150 000 and USD 250 000, contingent upon the ability to calculate the funds impacted. In cases where objective calculation is not feasible, the minimum reward for testnet will be USD 150 000.

Repeatable Attack Limitations

If the smart contract where the vulnerability exists can be upgraded or paused, only the initial attacks within the first hour will be considered for a reward. This is because the project can mitigate the risk of further exploitation by upgrading or pausing the component where the vulnerability exists. The reward amount will depend on the severity of the impact and the funds at risk.

For critical repeatable attacks on smart contracts that cannot be upgraded or paused, the project will consider the cumulative impact of the repeatable attacks for a reward. This is because the project cannot prevent the attacker from repeatedly exploiting the vulnerability until all funds are drained and/or other irreversible damage is done. Therefore, this warrants a reward equivalent to 10% of funds at risk, capped at the maximum critical reward.

Reward Calculation for High Level Reports

High vulnerabilities concerning theft/permanent freezing of unclaimed yield/royalties are considered at the full amount of funds at risk, capped at the maximum high reward. This is to incentivize security researchers to uncover and responsibly disclose vulnerabilities that may have not have significant monetary value today, but could still be damaging to the project if it goes unaddressed.

In the event of temporary freezing, the reward increases at a multiplier of two from the full frozen value for every additional 24h that the funds are temporarily frozen, up until a max cap of the high reward. This is because as the duration of the freezing lengthens, the potential for greater damage and subsequent reputational harm intensifies. Thus, by increasing the reward proportionally with the frozen duration, the project ensures stronger incentives for bug disclosure of this nature.

For high smart contract bugs on testnet assets, the reward ranges between USD 100 000 to USD 150 000, contingent upon the ability to calculate the funds impacted. In cases where objective calculation is not feasible, the minimum reward for testnet will be USD 100 000.

For critical web/apps bug reports will be rewarded with USD 50 000, only if the impact leads to:

  • A loss of funds involving an attack that does not require any user action
  • Unauthorized minting of tokens on-chain
  • Private key or private key generation leakage leading to unauthorized access to user funds
  • The impact occurs on a user facing application, generally hosted under ens.domains

All other impacts that would be classified as Critical would be rewarded a flat amount of USD 30 000.

For high web/app impacts, the maximum reward of USD 20 000 will only be paid out for issues that affect our main user-facing applications, generally hosted under ens.domains.

The rest of the severity levels are paid according to the Impact in Scope table.

Reward Payment Terms

Payouts are handled by the ENS team directly and are denominated in USD. However, payments are done in USDC.

The calculation of the net amount rewarded is based on the average price between CoinMarketCap.com and CoinGecko.com at the time the bug report was submitted. No adjustments are made based on liquidity availability.

Program Overview

The Ethereum Name Service (ENS) is a distributed, open, and extensible naming system based on the Ethereum blockchain.

ENS’s job is to map human-readable names like ‘alice.eth’ to machine-readable identifiers such as Ethereum addresses, other cryptocurrency addresses, content hashes, and metadata. ENS also supports ‘reverse resolution’, making it possible to associate metadata such as canonical names or interface descriptions with Ethereum addresses.

ENS has similar goals to DNS, the Internet’s Domain Name Service, but has significantly different architecture due to the capabilities and constraints provided by the Ethereum blockchain. Like DNS, ENS operates on a system of dot-separated hierarchical names called domains, with the owner of a domain having full control over subdomains.

Top-level domains, like ‘.eth’ and ‘.test’, are owned by smart contracts called registrars, which specify rules governing the allocation of their subdomains. Anyone may, by following the rules imposed by these registrar contracts, obtain ownership of a domain for their own use. ENS also supports importing in DNS names already owned by the user for use on ENS.

Because of the hierarchal nature of ENS, anyone who owns a domain at any level may configure subdomains - for themselves or others - as desired. For instance, if Alice owns 'alice.eth', she can create 'pay.alice.eth' and configure it as she wishes.

ENS is deployed on the Ethereum main network and on several test networks. If you use a library such as the ensjs Javascript library, or an end-user application, it will automatically detect the network you are interacting with and use the ENS deployment on that network.

For more information about ENS, please visit https://ens.domains/

ENS provides rewards in USDC, denominated in USD. For more details about the payment process, please view the Rewards by Threat Level section further below.

Eligibility Criteria

Security researchers who wish to participate must adhere to the rules of engagement set forth in this program and cannot be:

  • On OFACs SDN list
  • Official contributor, both past or present
  • Employees and/or individuals closely associated with the project
  • Security auditors that directly or indirectly participated in the audit review

Responsible Publication

ENS adheres to category 3: Approval Required. This Policy determines what information researchers are allowed to make public from their submitted bug reports. For more information about the category selected, please refer to our Responsible Publication page.

Primacy of Impact vs Primacy of Rules

ENS adheres to the Primacy of Impact for the following levels:

  • Smart Contract - Critical
  • Smart Contract - High
  • Web/App - Critical
  • Web/App - High

Primacy of Impact means that the impact is prioritized rather than a specific asset. This encourages security researchers to report on all bugs with an in-scope impact, even if the affected assets are not in scope. For more information, please see Best Practices: Primacy of Impact

When submitting a report on Immunefi’s dashboard, the security researcher should select the Primacy of Impact asset placeholder. If the team behind this project has multiple programs, those other programs are not covered under Primacy of Impact for this program. Instead, check if those other projects have a bug bounty program on Immunefi.

Commits tagged with vx.x.x-RCX (e.g. v1.2.3-RC0), vx.x.x-<testnet name or ‘testnet’> (e.g. v1.2.3-testnet) or vx.x.x (e.g. v1.2.3) are potentially eligible for the bug bounty. To be clear this includes testnet releases. For testnet releases, only version numbers greater than or equal to the latest mainnet release are eligible. For mainnet, only the latest release is eligible. See releases here: https://github.com/ensdomains/ens-contracts/releases.

All other impacts are considered under the Primacy of Rules, which means that they are bound by the terms and conditions set within this program.

Proof of Concept (PoC) Requirements

A PoC, demonstrating the bug's impact, is required for this program and has to comply with the Immunefi PoC Guidelines and Rules.

Public Disclosure of Known Issues

Bug reports covering previously-discovered bugs (listed below) are not eligible for a reward within this program. This includes known issues that the project is aware of but has consciously decided not to “fix”, necessary code changes, or any implemented operational mitigating procedures that can lessen potential risk.

Previous Audits

ENS has provided these completed audit review reports for reference. Any unfixed vulnerability mentioned in these reports are not eligible for a reward.

Feasibility Limitations

The project may be receiving reports that are valid (the bug and attack vector are real) and cite assets and impacts that are in scope, but there may be obstacles or barriers to executing the attack in the real world. In other words, there is a question about how feasible the attack really is. Conversely, there may also be mitigation measures that projects can take to prevent the impact of the bug, which are not feasible or would require unconventional action and hence, should not be used as reasons for downgrading a bug's severity.

Therefore, Immunefi has developed a set of feasibility limitation standards which by default states what security researchers, as well as projects, can or cannot cite when reviewing a bug report.

Immunefi Standard Badge

By adhering to Immunefi’s best practice recommendations, ENS has satisfied the requirements for the Immunefi Standard Badge.

KYC not required

No KYC information is required for payout processing.

Prohibited Activities

Default prohibited activities
  • Any testing on mainnet or public testnet deployed code; all testing should be done on local-forks of either public testnet or mainnet
  • 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 that are executed against project assets
  • Automated testing of services that generates significant amounts of traffic
  • Public disclosure of an unpatched vulnerability in an embargoed bounty
  • Any other actions prohibited by the Immunefi Rules

Feasibility Limitations

The project may be receiving reports that are valid (the bug and attack vector are real) and cite assets and impacts that are in scope, but there may be obstacles or barriers to executing the attack in the real world. In other words, there is a question about how feasible the attack really is. Conversely, there may also be mitigation measures that projects can take to prevent the impact of the bug, which are not feasible or would require unconventional action and hence, should not be used as reasons for downgrading a bug's severity. Therefore, Immunefi has developed a set of feasibility limitation standards which by default states what security researchers, as well as projects, can or cannot cite when reviewing a bug report.

30d Avg. Funds Availability
$156,948.74
Total Assets in Scope
10