NRDAX-T0408 - Unbounded Address List Validation CPU Exhaustion
memory_amp · active · first seen 2026-07-17
provenance: Reproduced in NullRabbit's attack-reproduction pipeline
mechanism
wasmd message types (MsgStoreCode, MsgStoreAndInstantiateContract, MsgUpdateInstantiateConfig, MsgAddCodeUploadParamsAddresses, etc.) carry an unbounded AccessConfig.Addresses/msg.Addresses list that ValidateBasic() de-duplicates via a map, and this validation runs during ABCI CheckTx before antehandler signature verification. An attacker submits a single unsigned tx via broadcast_tx_sync packing tens of thousands of distinct addresses (bounded only by tx-size gas cost and CometBFT max_bytes), causing large memory allocation and map-operation slowdown in the mempool of every node that receives it. The fix class is bounding/validating list length (or moving the check post-auth) in ValidateBasic before the map de-dup step.
instances (1)
| chain | primitive | fidelity | origin | reproducer (bundle) | source |
|---|---|---|---|---|---|
| cosmos | cosmwasm_validate_basic_address_count | lab | reverse-engineered-cve | cosmwasm_validate_basic_address_count | - |
related (memory_amp)
cite
https://nrdax.com/techniques/NRDAX-T0408
NRDAX Registry. Technique NRDAX-T0408.
@misc{nrdax_NRDAX_T0408,
title = {Unbounded Address List Validation CPU Exhaustion (NRDAX-T0408)},
howpublished = {NRDAX Registry},
url = {https://nrdax.com/techniques/NRDAX-T0408},
} {
"id": "nrdax-NRDAX-T0408",
"type": "dataset",
"title": "Unbounded Address List Validation CPU Exhaustion (NRDAX-T0408)",
"URL": "https://nrdax.com/techniques/NRDAX-T0408",
"publisher": "NRDAX Registry"
} [](https://nrdax.com/techniques/NRDAX-T0408-unbounded-address-list-validation-cpu-exhaustion)
use from the CLI
Retrieve or cite this technique from a script or the terminal with the NRDAX Python library & CLI.
nrdax get NRDAX-T0408 nrdax cite NRDAX-T0408 --format bibtex