Research · Tag · Infrastructure Security

Posts tagged infrastructure security.

27 entries · sorted: recency← All research
EARNED-AUTONOMY
2026-07-28

Beyond Zero answers what the machine decides. It does not answer who said it could.

Google's Beyond Zero moves the trust boundary from the application to the individual action and puts a reasoning layer in the access path. The objection that landed on Hacker News, that a non-deterministic evaluator does not belong there, is aimed one layer too low. The gap is not determinism. It is legitimacy: nothing establishes that a given system has the standing to act in your environment, against your traffic, under your conditions. Vendor-asserted accuracy is not evidence.

Simon Morley
Read →5 min read
CARDANO
2026-07-28

Cardano `cardano-submit-api`: unbounded request body → memory exhaustion

Cardano's HTTP transaction submission service buffers oversized request bodies without limit, pinning ~500 MB per request and potentially causing OOM on commodity validator infrastructure.

Simon Morley
Read →5 min read
QTUM
2026-07-28

Qtum BIP-324 Pre-Authentication ECDH CPU Exhaustion

Qtum's BIP-324 v2 transport runs a pre-authentication ellswift-ECDH on every inbound connection, allowing a single source IP to saturate a core and deny honest peers.

Simon Morley
Read →3 min read
RESEARCH
2026-07-23

What syscall-layer tooling cannot see in P2P infrastructure: a technique-by-technique analysis

If you run Falco, an EDR, or a generic host agent on a validator and a network-DoS attack against the node went undetected, this explains why. A technique-by-technique analysis of five reproduced P2P-infrastructure attacks against the syscall detection surface. Zero are detectable as attributable rules, and the reasons are structural, not a matter of tuning.

Simon Morley
Read →14 min read
SOLANA
2026-07-22

Crashing an Agave validator during snapshot bootstrap with one oversized account length

A snapshot served by an untrusted peer that declares one account with a data_len over Agave's 10 MiB per-account maximum panics a bootstrapping validator during index generation — before the snapshot hash is ever checked — from a ~136-byte crafted storage file.

Simon Morley
Read →7 min read
RESEARCH
2026-07-22

How an exposed debug_traceCall lets one unauthenticated request burn seconds of go-ethereum CPU

debug_traceCall re-runs an eth_call-style message opcode-by-opcode with a full EVM tracer attached, so a single small request converts into up to seconds of single-goroutine CPU on the target — and with no per-source rate or concurrency cap, an unauthenticated caller drives many such traces in parallel against an exposed go-ethereum node.

Simon Morley
Read →5 min read
RESEARCH
2026-07-22

How a wide-range eth_getLogs query turns a few hundred bytes into an unbounded response on exposed go-ethereum RPC nodes

eth_getLogs returns every log matching a filter across the requested block span in one JSON-RPC response, so a tiny wide-range or broad-topic request forces an exposed go-ethereum node to scan the range and serialise an unbounded matched-log set — a response-amplification DoS payable by an unauthenticated caller.

Simon Morley
Read →5 min read
ETHEREUM
2026-07-22

How a zero-value GetBlockHeaders request underflows to serve go-ethereum's entire header chain (CVE-2024-32972)

A go-ethereum eth-protocol peer that sends a GetBlockHeaders request with amount (count) set to 0 triggers an integer underflow — count-1 wraps to UINT64_MAX — bypassing the maxHeadersServe cap and forcing the node to serve headers back to genesis, a publicly disclosed memory-exhaustion DoS (CVE-2024-32972, fixed in geth 1.13.15) that NullRabbit reproduced as a lab detection bundle.

Simon Morley
Read →7 min read
RESEARCH
2026-07-22

One prior-knowledge h2c connection multiplexes N eth_getLogs past an L4 per-connection cap on go-ethereum's JSON-RPC port

go-ethereum's JSON-RPC port terminates cleartext HTTP/2 (h2c) by prior knowledge, so one TCP connection can multiplex N eth_getLogs streams past an L4 edge that only caps connections per IP (nginx stream limit_conn) — measured 20/20 streams and ~39 MB pulled through a single connection the edge counts as one, an amplification-multiplexing bypass of a connection cap, not of an L7 request rate limit.

Simon Morley
Read →7 min read
RESEARCH
2026-07-22

Bypassing go-ethereum's --http.vhosts host allowlist with an empty Host, forged by an HAProxy HTTP/2→1.1 downgrade

An HTTP/2 request with an empty :authority, downgraded to HTTP/1.1 by an HAProxy front, reaches go-ethereum with an empty Host header that its --http.vhosts allowlist accepts (200) though it rejects any concrete disallowed host (403) — a bypass of geth's anti-DNS-rebinding Host filter by an attacker with raw-HTTP/2 reach to the edge.

Simon Morley
Read →7 min read
BITCOIN
2026-07-16

How a missing duplicate-input check in Bitcoin Core let one block crash 0.14.x nodes and silently inflate the supply on 0.15.0–0.16.2 (CVE-2018-17144)

A Bitcoin Core block containing a transaction that spends the same previous output twice reaches a validation path with no duplicate-input check: on 0.14.x this trips an internal assertion and crashes the node, and on 0.15.0-0.16.2 — when the duplicated output was created in an earlier block — it passes silently, letting the block's miner claim that output's value twice. Fixed in 0.16.3 / 0.17.0.

Simon Morley
Read →8 min read
RESEARCH
2026-07-16

How a single crafted gossipsub PRUNE backoff value panics rust-libp2p nodes via an Instant overflow (CVE-2026-34219)

rust-libp2p's gossipsub implementation stores a peer-supplied PRUNE backoff duration and later adds a further duration to it during heartbeat processing using unchecked arithmetic; a single crafted PRUNE with a backoff value near u64::MAX overflows that addition and panics the process.

Simon Morley
Read →6 min read
RESEARCH
2026-07-13

How unauthenticated simulateTransaction requests saturate an Agave RPC node's executor pool

Agave runs the simulateTransaction handler synchronously on its shared Tokio executor threads, so unauthenticated, gas-free simulate requests pin those workers and add queue latency across the validator's entire JSON-RPC tier — not just the simulate path.

Simon Morley
Read →7 min read
RESEARCH
2026-07-13

How CometBFT's SecretConnection handshake spends CPU before authenticating the peer

CometBFT completes the full SecretConnection STS handshake — an X25519 Diffie–Hellman exchange and an Ed25519 signature verification — for any connecting peer before checking whether that peer's node-ID is allowlisted, so an unauthenticated remote source can spend the node's asymmetric-crypto budget at will.

Simon Morley
Read →8 min read
RESEARCH
2026-07-13

How unbounded HTTP/2 concurrent streams let one TCP connection OOM-kill an IOTA node's public gRPC server

An IOTA node's public gRPC server accepts an unbounded number of concurrent HTTP/2 streams on a single TCP connection, so one client multiplexing around 200 concurrent GetTransactions calls drives resident memory from a few hundred MB to multiple GB in about 10 seconds until the kernel OOM-killer terminates the node.

Simon Morley
Read →7 min read
RESEARCH
2026-07-13

How an unauthenticated TLS half-open flood pins rippled's memory and crashes it under low file-descriptor limits

rippled's inbound TLS listeners on the peer port (51235) and the RPC-HTTPS port (5006) accept a partial TLS handshake with no deadline and no per-IP half-open cap, so a single source IP can pin server memory indefinitely and, at a default file-descriptor limit, crash the process.

Simon Morley
Read →8 min read
RESEARCH
2026-05-13

Open data for blockchain validator security: the first multi-modal dataset for infrastructure attacks

We've published nr-bundles-public on Hugging Face: the first open, multi-modal dataset for blockchain validator security. 31 schema-pinned observations across Sui and Solana, seven attack families, CC-BY-4.0. Open bundle format, open ten-family taxonomy, closed corpus. The substrate for cross-chain ML detection of infrastructure attacks.

Simon
Read →7 min read
RESEARCH
2026-05-12

NR-2026-001 - Three Agave RPC architectural findings

Three architectural findings in the Agave JSON-RPC layer at v3.1.9: response amplification on getMultipleAccounts, Tokio executor saturation via simulateTransaction, and spawn_blocking pool saturation via getProgramAccounts. Architectural patterns, not rate-limit DoS - operator rate limits don't close them.

Simon
Read →12 min read
SOLANA
2026-03-26

Introducing Slashr: A Live Feed of Every Validator Incident

Validators go down constantly. Almost nobody is watching it happen in real time, across chains, in one place. So we built slashr.dev, a live incident feed tracking Solana, Ethereum, Sui, and Cosmos.

Simon
Read →5 min read
SUI
2026-03-25

DeFi Under the Microscope: 1,075 Hosts, 3,001 Ports, One Timing Scan

A first look at what DeFi validator infrastructure looks like at the kernel level. We crack open the consolidated dataset: embedding galaxies, jitter fingerprints, RTT ridgelines, and 10,000 anomaly events across 642 silent hosts.

Simon
Read →6 min read
SUI
2026-03-20

What Does a DeFi Network Actually Look Like?

Every blockchain network has a physical fingerprint. We pointed our eBPF/XDP scanner at 1,075 hosts across multiple DeFi validator networks and mapped 3,001 timing fingerprints to reveal the structure underneath the consensus layer.

Simon
Read →4 min read
SUI
2026-03-13

What We Found Scanning the Sui Validator Network

We scanned 138 Sui validators across 20 countries using kernel-level temporal fingerprinting. 41% have SSH exposed, 57 run unexpected internet-facing services, and 9 confirmed CVEs sit on 4 hosts, including 2 critical at CVSS 9.8. Here is what we found and why it matters for DeFi.

Simon
Read →6 min read
OPEN-SOURCE
2026-02-26

Open-Sourcing Our Autonomous Defence Arsenal: Here's What's Inside

We're open-sourcing the tooling behind NullRabbit's autonomous kernel-level network defence: the scanning, intelligence, observation, and adversarial validation layers that feed our enforcement pipeline. Six tools, MIT licensed, with more coming.

Simon
Read →5 min read
EARNED-AUTONOMY
2026-02-13

Why Autonomous Enforcement Must Earn Authority

The technology to defend networks autonomously exists. The legitimacy to deploy it does not. Introducing earned autonomy: a governance framework where defensive authority is demonstrated before granted, scoped per abuse class, and continuously re-earned or revoked.

NullRabbit Research
Read →9 min read
EARNED-AUTONOMY
2026-02-05

Building the Jig (Again): Claiming the Time Dimension

Inline defence without understanding is guesswork. Before machines act, they need evidence. Why we're open-sourcing our scanning system, building jigs instead of shortcuts, and claiming time as a first-class signal in infrastructure security.

NullRabbit Research
Read →4 min read
EARNED-AUTONOMY
2026-01-28

Earned Autonomy: The Paper

Machines attack at machine speed. Humans defend at human speed. The technology to close this gap exists - the governance doesn't. A framework for when machines should be permitted to act without human approval.

NullRabbit Research
Read →2 min read
EARNED-AUTONOMY
2026-01-21

Validating Inline Enforcement with XDP: IBSR and the Path to Earned Autonomy

Inline enforcement operates at machine speed, but trust cannot. IBSR is a validation step: using XDP to observe real traffic, simulate enforcement, and generate evidence before any blocking is enabled.

NullRabbit Research
Read →4 min read