NRDAX-T0099 - Half-Open Handshake Slowloris
Connection exhaustion (also memory amplification) · P2P and gossip · no bound · active · first seen 2026-07-01
provenance: Reproduced in NullRabbit's attack-reproduction pipeline
mechanism
IC quic_transport half-open QUIC handshake memory pin (IC_QUIC_HALFOPEN_PIN): a burst of QUIC v1 Initial packets (distinct SCID each) whose CRYPTO frame declares a large TLS handshake length (4096) but delivers a truncated ClientHello (~200 B) leaves rustls 'incomplete, waiting', so each `Connecting` future lives to the pre-handshake timeout pinning ~100 KiB/conn. No Retry (EndpointConfig::default()), no per-IP UDP cap, mTLS only after state is committed. Measured on the real replica (release-2026-05-29_04-44-base, commit a47e543, 2026-06-02): n=200 -> +25.5 MiB (~128 KiB/conn), n=1000 -> +129 MiB (~132 KiB/conn), n=3000 -> +278 MiB (abs 420 MiB, ~95 KiB/conn); across 12,200 total connections ZERO were rejected at admission. MEDIUM/5.9 (bounded only by IC's default-deny firewall + 512 GiB replica RAM, not by any transport control). NullRabbit measurement; chains/ic/findings/IC_QUIC_HALFOPEN_PIN.
live exposure
No exposure data. Slashr ↗ has no risk signal mapped to this technique yet — absence of data is not absence of exposure.
research
In-depth write-ups of this attack on nullrabbit.ai.
instances (6)
| chain | primitive | fidelity | origin | reproducer (bundle) | source |
|---|---|---|---|---|---|
| ic | ic_quic_halfopen_pin | lab | NullRabbit Labs | ic_quic_halfopen_pin | github.com ↗ |
| iota | iota_http_tls_halfopen_plaintext_grpc | lab | NullRabbit Labs | iota_http_tls_halfopen_plaintext_grpc | github.com ↗ |
| near | near_handshake_preauth_pending_starvation | lab | NullRabbit Labs | near_handshake_preauth_pending_starvation | - |
| solana | sol_tpu_quic_handshake_flood | lab | reverse-engineered-cve | sol_tpu_quic_handshake_flood | neodyme.io ↗ |
| solana | sol_tpu_quic_slowloris | lab | reverse-engineered-cve | sol_tpu_quic_slowloris | neodyme.io ↗ |
| xrp | rippled_tls_slow_handshake | lab | NullRabbit Labs | rippled_tls_slow_handshake | github.com ↗ |
related (Connection exhaustion)
cite
https://nrdax.com/techniques/NRDAX-T0099
NRDAX Registry. Technique NRDAX-T0099.
@misc{nrdax_NRDAX_T0099,
title = {Half-Open Handshake Slowloris (NRDAX-T0099)},
howpublished = {NRDAX Registry},
url = {https://nrdax.com/techniques/NRDAX-T0099},
} {
"id": "nrdax-NRDAX-T0099",
"type": "dataset",
"title": "Half-Open Handshake Slowloris (NRDAX-T0099)",
"URL": "https://nrdax.com/techniques/NRDAX-T0099",
"publisher": "NRDAX Registry"
} [](https://nrdax.com/techniques/NRDAX-T0099-half-open-handshake-slowloris)
use from the CLI
Retrieve or cite this technique from a script or the terminal with the NRDAX Python library & CLI.
nrdax get NRDAX-T0099 nrdax cite NRDAX-T0099 --format bibtex