6.9 MEDIUM
- 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): None (N)
- Vulnerable System Impact Availability (VA): Low (L)
- 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): None (N)
- Modified Vulnerable System Impact Availability (MVA): Low (L)
- 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: Finalized address balance credit-first overflow on consensus-valid blocks
ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, a consensus-valid block containing a long chain of transparent self-spends to one address can permanently halt Zebra nodes. In zebra-state/src/service/finalized_state/zebra_db/transparent.rs, the finalized-state writer originally applied every newly created output as a credit before applying any spent-output debit from the same block. That credit-first ordering can make the intermediate per-address balance exceed MAX_MONEY even though the final net balance is valid, causing an expect-based panic under the panic equals abort release profile. Because zcashd accepts the triggering block and Zebra encounters it again after every restart, the halt persists until patched software is deployed; exploitation requires mining the specially constructed block and temporarily committing sufficient ZEC to the self-spend chain. This issue is fixed in version 4.5.0.
References
Affected products
- ==< 4.5.0
- ==< 7.0.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