6.5 MEDIUM
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): High (H)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Scope (S): Unchanged (U)
- Confidentiality (C): None (N)
- Integrity (I): High (H)
- Availability (A): Low (L)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): High (H)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): None (N)
- Modified Confidentiality (MC): None (N)
- Modified Scope (MS): Unchanged (U)
- Modified Integrity (MI): High (H)
- Modified Availability (MA): Low (L)
Activity log
- Created suggestion
ZEBRA: Persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, a natural or attacker-influenced chain fork can leave stale Sapling and Orchard note-commitment subtree roots in Zebra state. In zebra-state/src/service/non_finalized_state/chain.rs, Chain::pop_tip removed a reverted tip block but did not remove subtree entries whose end_height belonged to that block, unlike the cleanup performed by pop_root. When the winning fork later finalized, the abandoned branch's stale subtree data could be written to RocksDB and survive node restarts. The corrupted history can cause z_getsubtreesbyindex consumers such as lightwalletd and light wallets to receive incorrect subtree roots, producing wallet synchronization failures or incorrect wallet state and requiring a full state rebuild for recovery. 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