NRDAX-T0387 - QPACK Blocked-Decode Flow-Control Leak
memory_amp · active · first seen 2026-07-13
provenance: Reproduced in NullRabbit's attack-reproduction pipeline
mechanism
The QPACK decoder returns QUIC stream- and connection-level flow-control credit for HEADERS bytes belonging to field sections that reference dynamic-table entries not yet inserted (Required Insert Count > inserted count), even though those bytes remain resident in the decoder's blocked-section heap buffer. An attacker sends such blocked field sections and never supplies the corresponding encoder-stream inserts, so the sections never decode or free, while continuing to send more HEADERS traffic using the wrongly-returned flow-control credit. This decouples flow-control accounting from actual buffer occupancy, letting the attacker drive unbounded heap growth in the decoder and exhaust memory/DoS the HTTP/3 stack.
instances (1)
| chain | primitive | fidelity | origin | reproducer (bundle) | source |
|---|---|---|---|---|---|
| http3 | envoy_http3_qpack_blocked_decode_leak | proxy | reverse-engineered-cve | envoy_http3_qpack_blocked_decode_leak | - |
related (memory_amp)
cite
https://nrdax.com/techniques/NRDAX-T0387
NRDAX Registry. Technique NRDAX-T0387.
@misc{nrdax_NRDAX_T0387,
title = {QPACK Blocked-Decode Flow-Control Leak (NRDAX-T0387)},
howpublished = {NRDAX Registry},
url = {https://nrdax.com/techniques/NRDAX-T0387},
} {
"id": "nrdax-NRDAX-T0387",
"type": "dataset",
"title": "QPACK Blocked-Decode Flow-Control Leak (NRDAX-T0387)",
"URL": "https://nrdax.com/techniques/NRDAX-T0387",
"publisher": "NRDAX Registry"
}