For the complete documentation index, see llms.txt. This page is also available as Markdown.

76031 bc insight privileged admin and p2p rpc are publicly exposed

Submitted on May 2nd 2026 at 10:41:15 UTC by @psb01 for Audit Comp | Base Azul

  • Report ID: #76031

  • Report Type: Blockchain/DLT

  • Report severity: Insight

  • Target: https://github.com/base/base/tree/v0.8.0-rc.28

  • Impacts:

    • Shutdown of greater than or equal to 30% of network processing nodes without brute force actions, but does not shut down the network

    • Unintended chain split (network partition)

Description

Brief/Intro

Privileged admin_* and opp2p_* methods are exposed on the node’s public JSON-RPC interface instead of a separate authenticated operator-only endpoint, turning a reachable RPC port into an unauthenticated control plane for node administration and peer-management actions.

Vulnerability Details

Privileged admin_* and opp2p_* control methods are exposed on the main JSON-RPC listener for full nodes instead of being kept behind a dedicated, authenticated operator interface. The runtime registers these namespaces based on the presence of network_admin and p2p_network channels, while full-node startup wiring always provides those channels and RpcActor::start does not enforce the documented enable_admin boundary. The server stack described in the findings also lacks request authentication, and the default listener configuration can make the RPC socket network reachable. Once mounted, the handlers forward attacker-controlled inputs directly into sequencer-control, payload-ingestion, and swarm-management operations. As a result, normal public RPC exposure becomes an unauthenticated control plane for both node administration and peer-network policy.

Impact Details

A remote caller that can reach the RPC port can stop or start sequencing, flip recovery mode, override leadership behavior, reset derivation, and inject attacker-chosen unsafe payload work into the engine path. The same caller can also block or disconnect honest peers, blacklist IPs or subnets, protect attacker-controlled peers, and force outbound dials, letting them isolate the node, bias its peer set, or repeatedly degrade availability.

References

Affected file: crates/consensus/service/src/actors/rpc/actor.rs

Considerations for below POC

PoC uses an in-process RpcActor with stubbed engine/sequencer clients and local channel receivers to verify that unauthenticated HTTP callers can invoke admin_* and opp2p_* methods when enable_admin=false. It demonstrates public exposure and forwarding of privileged control messages.

Remediation

Gate registration of the privileged admin_* and opp2p_* RPC namespaces on RpcBuilder.enable_admin, so channel presence alone no longer exposes operator control methods on the public listener.

Proof of Concept

Test case artifact

Extra files

crates/consensus/service/tests/rpc_admin_public_exposure.rs

Setup script artifact

Output artifact

Was this helpful?