NRDAX
CLI Submit

← registry

NRDAX-T0389 - Precompile Gas Underpricing CPU Burn

compute_amp · active · first seen 2026-07-14

provenance: Reproduced in NullRabbit's attack-reproduction pipeline

mechanism

The BLAKE2F precompile (0x09) exposes an attacker-controlled 'rounds' field that is charged at a flat 1-gas-per-round rate but executes synchronously on the node's RPC-serving thread; because gas cost scales linearly while wall-clock compute per round is effectively free to request, a small eth_call payload (~585 bytes) can force tens of millions of compression rounds. This yields a large asymmetry between request size/cost and CPU time consumed (~405ms vs ~1ms baseline), letting a single cheap call monopolize a worker thread and degrade node responsiveness. The fix-class is bounding/metering precompile-invoked loop primitives (rounds/iteration caps, tighter gas-to-wall-time calibration, or synchronous-call time budgets) at the eth_call/precompile-dispatch layer.

instances (1)

chainprimitivefidelityoriginreproducer (bundle)source
ethereum eth_call_blake2f_precompile_rounds_cpu_amp proxy NullRabbit Labs eth_call_blake2f_precompile_rounds_cpu_amp -

related (compute_amp)

cite

https://nrdax.com/techniques/NRDAX-T0389

plain

NRDAX Registry. Technique NRDAX-T0389.

bibtex
@misc{nrdax_NRDAX_T0389,
  title = {Precompile Gas Underpricing CPU Burn (NRDAX-T0389)},
  howpublished = {NRDAX Registry},
  url = {https://nrdax.com/techniques/NRDAX-T0389},
}
json (csl)
{
  "id": "nrdax-NRDAX-T0389",
  "type": "dataset",
  "title": "Precompile Gas Underpricing CPU Burn (NRDAX-T0389)",
  "URL": "https://nrdax.com/techniques/NRDAX-T0389",
  "publisher": "NRDAX Registry"
}

use from the CLI

Retrieve or cite this technique from a script or the terminal with the NRDAX Python library & CLI.

Retrieve this technique
nrdax get NRDAX-T0389
Cite it (BibTeX)
nrdax cite NRDAX-T0389 --format bibtex

CLI guide → GitHub ↗