blockchainsv
News

Analyzing CertiK’s Independent Security Audit of Hyperledger Besu

CertiK has published technical details on five resource-exhaustion and denial-of-service vulnerabilities it identified in Hyperledger Besu, the Java-based Ethereum execution client now maintained…

Caleb North·updated August 25, 2026

Analyzing CertiK’s Independent Security Audit of Hyperledger Besu

CertiK has published technical details on five resource-exhaustion and denial-of-service vulnerabilities it identified in Hyperledger Besu, the Java-based Ethereum execution client now maintained under Linux Foundation Decentralized Trust. The research was conducted independently, with no client engagement or scope document in place. Each finding could let a connected peer degrade or crash a node using nothing beyond default protocol interfaces. Besu shipped version 26.7.1 on July 27 to patch all five; the corresponding advisories went public on August 14. Besu's release notes credit CertiK, alongside a separate disclosure from Ethereum Foundation Security, for responsible disclosure.

Attack surface: NEW_BLOCK_HASHES handling

The most severe path concerns Besu's treatment of NEW_BLOCK_HASHES messages — ordinary eth-protocol announcements any peer on the network can send. The client treated every hash inside an incoming message as an independent unit of work. Each one triggered its own scheduled fetch task and a native thread, with no upper bound on how many could pile up at once.

The result: a single peer, using only default P2P access, drove a properly-provisioned node to tens of thousands of threads and forced an out-of-memory kill within seconds. Pointed at a majority of validators in a QBFT network, the same technique stalled consensus outright. Besu replaced the unbounded thread pool backing this path with a fixed-size, bounded pool, throttling floods rather than letting them spawn threads without limit. Two of the five findings shared a root cause and a fix and are documented under the same advisory; the remaining four findings map to four public GitHub Security Advisories in total, including two classified as Major severity.

Operator checklist

  • Confirm nodes are running Besu 26.7.1 or later. The release shipped July 27; public advisories followed on August 14.
  • Audit peer allow-lists on QBFT networks. An admitted peer alone is sufficient to replicate the attack — allow-listing does not remove the vector.
  • Verify thread and memory limits on production nodes. Default JVM settings are not a substitute for bounded work pools.
  • Review monitoring for thread-count and memory-pressure spikes. The OOM-kill pattern is observable in standard telemetry.
  • Track GHSA-j2j5-x2rr-cv75 for the full technical detail on the NEW_BLOCK_HASHES fix.
  • Treat default P2P access as a hostile surface in any execution client deployment. The protocol grants no trust.

Adversarial methodology

The work was not a paid engagement. CertiK deployed a private, multi-node Besu testnet and applied an adversarial testing methodology adapted from chaos engineering in telecom and large-scale distributed systems. Instead of hoping the system handles failure gracefully, the team injected failure under controlled conditions and observed what breaks. That methodology now underpins Chain Scan, CertiK's continuous adversarial-testing service for blockchain infrastructure. The pattern matters more than the specific bugs: failure injection against a live, multi-node network catches degradation modes that static code review cannot reproduce.

Long audit cycles demand deliberate decompression. Anyone spending hours on forensic execution traces benefits from time away from the screen — for some, that means walking through historic old town districts instead of staring at thread dumps.