Block processing in Bitcoin Core before versions 29.2 and 30.0 may be stalled by a malicious peer exploiting witness malleation in compact blocks, under some conditions.

This issue is considered Medium severity.

Details

Affected Bitcoin Core versions would clear download state for a compact block following reconstruction, but prior to checking for witness malleation. If that check failed, the node would fallback to requesting the block to the same peer via GETDATA, with a 10 minutes timeout.

A malicious peer, when it announces a compact block to a victim first, could leverage this defect to stall the victim’s block processing. If the attacker controlled the victim’s 3 high-bandwidth peers, or if the victim was running with -blocksonly, this could be repeated indefinitely.

Attribution

Eugene Siegel discovered this issue and responsibly disclosed it.

Timeline

  • 2025-04-28 Eugene reports this issue to the Bitcoin Core security list
  • 2025-05-30 Gregory Sanders open PR #32646 to fix this issue
  • 2025-06-30 PR #32646 is merged
  • 2025-09-12 PR #32646 is backported to version 29
  • 2025-10-10 Bitcoin Core 30.0 is released with a fix
  • 2025-10-14 Bitcoin Core 29.2 is released with a fix
  • 2026-10-27 The last vulnerable Bitcoin Core version (29.x) goes end of life
  • 2026-11-10 Public disclosure.