8.7 HIGH
- CVSS version (CVSS): 4.0
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Attack Requirement (AT): None (N)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Vulnerable System Impact Confidentiality (VC): None (N)
- Vulnerable System Impact Integrity (VI): High (H)
- Vulnerable System Impact Availability (VA): None (N)
- Subsequent System Impact Confidentiality (SC): None (N)
- Subsequent System Impact Integrity (SI): None (N)
- Subsequent System Impact Availability (SA): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Attack Requirement (MAT): None (N)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): None (N)
- Modified Vulnerable System Impact Confidentiality (MVC): None (N)
- Modified Vulnerable System Impact Integrity (MVI): High (H)
- Modified Vulnerable System Impact Availability (MVA): None (N)
- Modified Subsequent System Impact Confidentiality (MSC): Negligible (N)
- Modified Subsequent System Impact Integrity (MSI): Negligible (N)
- Modified Subsequent System Impact Availability (MSA): Negligible (N)
- Safety (S): Not Defined (X)
- Automatable (AU): Not Defined (X)
- Recovery (R): Not Defined (X)
- Value Density (V): Not Defined (X)
- Vulnerability Response Effort (RE): Not Defined (X)
- Provider Urgency (U): Not Defined (X)
- Confidentiality Req. (CR): Not Defined (X)
- Integrity Req. (IR): Not Defined (X)
- Availability Req. (AR): Not Defined (X)
- Exploit Maturity (E): Not Defined (X)
Activity log
- Created suggestion
ZEBRA: Block suppression via NU5 same-header body poisoning of sent-hash cache
ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, a remote unauthenticated P2P peer can stall a Zebra node by racing an invalid block body against the valid canonical body for the same block header hash. ZIP-244 permits the attacker to mutate coinbase scriptSig authentication data while retaining the transaction identifiers, merkle root, and block header hash, so the poisoned body fails later commitment validation but shares the canonical hash. In zebra-state/src/service.rs, queue_and_commit_to_non_finalized_state recorded the hash in non_finalized_block_write_sent_hashes before contextual validation completed and did not remove it when the write task rejected the body. When the honest body later arrived, the cached hash caused KnownBlock::WriteChannel duplicate handling to suppress it, leaving the node stuck one height behind until restart or reorganization. This issue is fixed in version 4.5.0.
References
Affected products
- ==< 4.5.0
Matching in nixpkgs
pkgs.typstPackages.zebra
None
pkgs.typstPackages.zebraw
None
pkgs.typstPackages.zebra-notes
None
pkgs.typstPackages.zebra_0_1_0
None
pkgs.typstPackages.zebraw_0_1_0
None
pkgs.typstPackages.zebraw_0_2_0
None
pkgs.typstPackages.zebraw_0_3_0
None
pkgs.typstPackages.zebraw_0_4_0
None
pkgs.typstPackages.zebraw_0_4_1
None
pkgs.typstPackages.zebraw_0_4_2
None
pkgs.typstPackages.zebraw_0_4_3
None
pkgs.typstPackages.zebraw_0_4_4
None
pkgs.typstPackages.zebraw_0_4_5
None
pkgs.typstPackages.zebraw_0_4_6
None
pkgs.typstPackages.zebraw_0_4_7
None
pkgs.typstPackages.zebraw_0_4_8
None
pkgs.typstPackages.zebraw_0_5_0
None
pkgs.typstPackages.zebraw_0_5_1
None
pkgs.typstPackages.zebraw_0_5_2
None
pkgs.typstPackages.zebraw_0_5_3
None
pkgs.typstPackages.zebraw_0_5_4
None
pkgs.typstPackages.zebraw_0_5_5
None
pkgs.typstPackages.zebraw_0_6_0
None
pkgs.typstPackages.zebraw_0_6_1
None
pkgs.typstPackages.zebraw_0_6_3
None
pkgs.typstPackages.zebra-notes_0_1_0
None