Skip to main content

Security & Bug Bounty

Bug Bounty Program​

Flashbots maintains an active bug bounty program for MEV-Boost. If you discover a security vulnerability, you can earn rewards based on severity.

Rewards​

SeverityReward
CriticalUp to $25,000 USD
HighUp to $10,000 USD
MediumUp to $5,000 USD
LowUp to $1,000 USD

Scope​

The bug bounty covers:

How to Report​

  1. Do not open a public GitHub issue for security vulnerabilities.
  2. Email security@flashbots.net with:
    • A description of the vulnerability
    • Steps to reproduce
    • Potential impact assessment
    • Any suggested fixes (optional)
  3. You will receive an acknowledgment within 48 hours.
  4. Flashbots will work with you to understand, validate, and fix the issue.

See the full SECURITY.md for complete details and terms.

Security Audit​

Auditor: lotusbumi Date: 2022-06-20

A security assessment of MEV-Boost was conducted for the Flashbots Collective. The full report is available on GitHub.

System Overview​

MEV-Boost allows out-of-protocol proposer/builder separation on PoS Ethereum. The system consists of several actors:

  • Builders — Receive bundles from searchers and construct blocks. They send block headers with bid values to relays. If their bid is selected, they unblind the block contents.
  • Relays — Store registered validators and receive builder bids to make them available to validators.
  • Validator Clients — Register with relays through MEV-Boost, request block headers for their proposing slots, and sign the selected header so the builder can reveal the full block.
  • MEV-Boost — Middleware that receives HTTP requests from the validator client and forwards them to relays, selecting the block header with the highest bid.

Trust Assumptions​

The current system depends on trust between actors:

Validators/MEV-Boost assume:

  • Relays will not send blocks that could cause slashing
  • Relays will not send blocks exceeding the gas limit from validator registration
  • Relays will not use a false bid value

Relays assume:

  • Validators will periodically send registration information
  • Builders will be online to share block contents if the auction is won
  • Builders will not use a false bid value

Builders assume:

  • Relays will not share their blocks with other relays/builders
  • Relays will verify that validators commit to a specific blockhash

Findings Summary​

SeverityCountStatus
Critical0—
High0—
Medium1Fixed
Low4All Fixed

Medium: Signing library skips membership check​

The VerifySignature function in go-boost-utils called the upstream blst library with sigGroupCheck set to false, skipping a required subgroup check per the IETF BLS Signature specification. This could potentially enable signature forgeries.

Status: Fixed in PR#21.

Low: Server-Side Request Forgery via unchecked redirects​

A malicious relay could exploit HTTP redirects to trigger requests to internal services accessible from the MEV-Boost host.

Status: Fixed in PR#205.

Low: Denial of service via server timeouts​

Default http.Server timeout configuration and MaxHeaderBytes values allowed resource exhaustion through large header requests.

Status: Fixed in PR#210.

Low: Client timeout can be set to insecure values​

Setting the client timeout to 0 disables it entirely, allowing a malicious relay to stall communication indefinitely — critical during block proposal when the proposer boost window is ~4 seconds.

Status: Fixed in PR#210.

Low: JSON Decoder allows extra information in memory​

Request payloads were processed without DisallowUnknownFields, allowing extra data to be loaded into memory.

Status: Fixed in PR#211.