NRDAX-T0411 - SIGHASH_SINGLE Missing-Output Validation Gap
consensus_abuse · active · first seen 2026-07-20
provenance: Reproduced in NullRabbit's attack-reproduction pipeline
mechanism
The node's transaction sighash routine fails to reject SIGHASH_SINGLE inputs whose index is >= the number of outputs; instead of throwing (the spec-mandated behavior), it silently substitutes an empty output set when computing the signature digest. An attacker crafts a transparent transaction with more inputs than outputs and signs the offending input with SIGHASH_SINGLE at an out-of-range index against this empty-set digest, producing a signature the defective node validates and accepts into its mempool/block template while spec-compliant nodes reject it. This divergence yields a direct block-validity consensus split between vulnerable and correct implementations.
instances (1)
| chain | primitive | fidelity | origin | reproducer (bundle) | source |
|---|---|---|---|---|---|
| zcash | zebra_sighash_single_missing_output | lab | reverse-engineered-cve | zebra_sighash_single_missing_output | - |
related (consensus_abuse)
cite
https://nrdax.com/techniques/NRDAX-T0411
NRDAX Registry. Technique NRDAX-T0411.
@misc{nrdax_NRDAX_T0411,
title = {SIGHASH_SINGLE Missing-Output Validation Gap (NRDAX-T0411)},
howpublished = {NRDAX Registry},
url = {https://nrdax.com/techniques/NRDAX-T0411},
} {
"id": "nrdax-NRDAX-T0411",
"type": "dataset",
"title": "SIGHASH_SINGLE Missing-Output Validation Gap (NRDAX-T0411)",
"URL": "https://nrdax.com/techniques/NRDAX-T0411",
"publisher": "NRDAX Registry"
} [](https://nrdax.com/techniques/NRDAX-T0411-sighash-single-missing-output-validation-gap)
use from the CLI
Retrieve or cite this technique from a script or the terminal with the NRDAX Python library & CLI.
nrdax get NRDAX-T0411 nrdax cite NRDAX-T0411 --format bibtex