zebra-state
Zcash - Financial Privacy in Rust 🦓
Activity
- Latest release
- 1mo ago
- Total releases
- 41
- Cadence
- ~23 days
- Last 12 months
- 19
Reach
- Downloads
- 79.4k
- Stars
- 596
Details
- License
- MIT OR Apache-2.0
- First release
- Apr 18, 2023
| Version | Released | |
|---|---|---|
13.0.0
major
|
13.0.0
major
Dependencies (48)
+ 40 more
Changelog
Compare changes
|
|
12.0.1
unknown
|
12.0.1
unknown
Dependencies (48)
+ 40 more
Changelog
Compare changes
|
|
12.0.0
unknown
|
12.0.0
unknown
Dependencies (48)
+ 40 more
Changelog
Compare changes
|
|
11.1.1
unknown
|
11.1.1
unknown
Dependencies (48)
+ 40 more
Changelog
Compare changes
|
|
11.1.0
unknown
|
11.1.0
unknown
Dependencies (48)
+ 40 more
Changelog
Compare changes
|
|
11.0.0
unknown
|
11.0.0
unknown
Dependencies (48)
+ 40 more
Changelog
Compare changes
|
|
10.1.0
unknown
yanked
|
10.1.0
unknown
yanked
Dependencies (50)
+ 42 more
Changelog
Compare changes
|
|
10.0.0
unknown
|
10.0.0
unknown
Dependencies (50)
+ 42 more
Changelog
Compare changes
|
|
9.0.1
unknown
|
9.0.1
unknown
Dependencies (49)
+ 41 more
Changelog
Compare changes
|
|
9.0.0
unknown
|
9.0.0
unknown
Dependencies (49)
+ 41 more
Changelog
Compare changes
|
|
8.0.0
unknown
|
8.0.0
unknown
Dependencies (49)
+ 41 more
Changelog
Compare changes
|
|
7.0.0
unknown
|
7.0.0
unknown
Dependencies (49)
+ 41 more
Changelog
Compare changes
|
|
6.0.0
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
6.0.0
unknown
Dependencies (49)
+ 41 more
Changelog
Compare changes
|
|
5.0.0
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
5.0.0
unknown
Dependencies (49)
+ 41 more
Changelog
Compare changes
|
|
4.0.0
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
4.0.0
unknown
Dependencies (49)
+ 41 more
Changelog
Compare changes
|
|
3.1.2
unknown
yanked
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
3.1.2
unknown
yanked
Dependencies (49)
+ 41 more
Changelog
Compare changes
|
|
3.1.1
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
3.1.1
unknown
Dependencies (49)
+ 41 more
Changelog
Compare changes
|
|
3.1.0
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
3.1.0
unknown
Dependencies (49)
+ 41 more
Changelog
Compare changes
|
|
3.0.0
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
3.0.0
unknown
Dependencies (48)
+ 40 more
Changelog
Compare changes
|
|
2.0.0
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
2.0.0
unknown
Dependencies (46)
+ 38 more
Changelog
Compare changes
|
|
1.0.1
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.1
unknown
Dependencies (46)
+ 38 more
Changelog
Compare changes
|
|
1.0.0
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0
unknown
Dependencies (46)
+ 38 more
Changelog
Compare changes
|
|
1.0.0-beta.46
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.46
unknown
Dependencies (46)
+ 38 more
Changelog
Compare changes
|
|
1.0.0-beta.45
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.45
unknown
Dependencies (46)
+ 38 more
Changelog
Compare changes
|
|
1.0.0-beta.43
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.43
unknown
Dependencies (45)
+ 37 more
Changelog
Compare changes
|
|
1.0.0-beta.42
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.42
unknown
Dependencies (45)
+ 37 more
Changelog
Compare changes
|
|
1.0.0-beta.39
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.39
unknown
Dependencies (45)
+ 37 more
Changelog
Compare changes
|
|
1.0.0-beta.38
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.38
unknown
Dependencies (45)
+ 37 more
Changelog
Compare changes
|
|
1.0.0-beta.37
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.37
unknown
Dependencies (45)
+ 37 more
Changelog
Compare changes
|
|
1.0.0-beta.36
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.36
unknown
Dependencies (45)
+ 37 more
Changelog
Compare changes
|
|
1.0.0-beta.35
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.35
unknown
Dependencies (44)
+ 36 more
Changelog
Compare changes
|
|
1.0.0-beta.34
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.34
unknown
Dependencies (42)
+ 34 more
Changelog
Compare changes
|
|
1.0.0-beta.32
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.32
unknown
Dependencies (42)
+ 34 more
Changelog
Compare changes
|
|
1.0.0-beta.31
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.31
unknown
Dependencies (42)
+ 34 more
Changelog
Compare changes
|
|
1.0.0-beta.30
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.30
unknown
Dependencies (42)
+ 34 more
Changelog
Compare changes
|
|
1.0.0-beta.29
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.29
unknown
Dependencies (40)
+ 32 more
Changelog
Compare changes
|
|
1.0.0-beta.28
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.28
unknown
Dependencies (40)
+ 32 more
Changelog
Compare changes
|
|
1.0.0-beta.27
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.27
unknown
Dependencies (40)
+ 32 more
Changelog
Compare changes
|
|
1.0.0-beta.26
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.26
unknown
Dependencies (39)
+ 31 more
Changelog
Compare changes
|
|
1.0.0-beta.25
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |
1.0.0-beta.25
unknown
Dependencies (39)
+ 31 more
Changelog
Compare changes
|
|
0.0.0-placeholder.0
unknown
4 CVEs
CVE-2026-52733
GHSA-2gf8-q9rr-jq3h
Jul 02, 2026
zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip
6.5
/ 10
Medium
Network
High
None
None
Unchanged
None
High
Low
Am I affectedYou are affected if:
All default configurations are affected. The corruption persists across restarts because it is written to RocksDB. SummaryWhen DetailsThe non-finalized state provides two methods for removing blocks: When a chain fork occurs and The Patcheszebra-state 7.0.0 and zebrad 4.5.0. The fix adds subtree root cleanup to WorkaroundsThere is no configuration-level workaround. Chain forks are natural events on any Proof-of-Work network. Operators can mitigate the downstream impact by periodically verifying subtree root consistency using ImpactPersistent corruption of Sapling and Orchard subtree root history in the RocksDB state database. The corruption survives node restarts. Downstream consumers that rely on CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52739
GHSA-hhm7-qrv5-h4r6
Jul 02, 2026
Zebra: Repeated Non-Finalized Shielded Transaction Aborts Zebra Before Duplicate-Nullifier Rejection
5.9
/ 10
Medium
Network
High
None
None
Unchanged
None
None
High
Am I affectedYou are affected if:
All default configurations are affected. Summary
The block should be rejected with a duplicate-nullifier contextual validation error. Instead, the ordering of index updates within DetailsIn
The shielded nullifier uniqueness check at step 3 would correctly reject the duplicate transaction. But the The block transaction verifier does not run the best-chain nullifier query for block transactions — that check is gated on mempool transactions only ( There are two attack models: Model A (two attacker blocks): The attacker mines two consecutive valid-work blocks: parent B1 containing a shielded transaction T, and child B2 repeating T. This requires controlling both blocks consecutively. Model B (one attacker block after an honest block): The attacker broadcasts a shielded transaction T into the mempool. When any honest miner includes T in their block B1, the attacker only needs to mine the next child block B2 containing the same T. This requires controlling only one block immediately after an honest block that included the attacker's transaction. The attacker can broadcast a suitable shielded transaction every block until one is included by an honest miner, then attempt to mine the follow-up. Both models require the child block to repeat the shielded-only V5 transaction while the parent is still in non-finalized state. Patcheszebra-state 7.0.0 and zebrad 4.5.0. Replace the
WorkaroundsThere is no configuration-level workaround. The assert is in the non-finalized state push path, which is exercised by all block processing past the checkpoint height. ImpactA malicious block producer can crash targeted Zebra nodes. There are two attack models: In the first model, the attacker mines two consecutive valid-work blocks where the child repeats a shielded transaction from the parent. At 10% hashrate, the attacker has approximately 11.5 opportunities per day; at 5%, approximately 2.9 per day; at 1%, approximately one every 8.7 days. In the second model, the attacker broadcasts a shielded transaction into the mempool and waits for any honest miner to include it. The attacker then only needs to mine the next block containing the same transaction. This is cheaper because the attacker does not need to mine the parent block. At 10% hashrate, the attacker has approximately 14.4 single-block opportunities per day; at 5%, approximately 7.2 per day; at 1%, approximately 1.4 per day. The crash is a process abort (not recoverable within the process). The node must be restarted. Repeated attacks can keep a node down for extended periods. This is a liveness issue, not a consensus divergence: zcashd cleanly rejects the invalid child block while Zebra aborts. CreditReported by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52738
GHSA-w834-cf6p-9m9w
Jul 02, 2026
Zebra: Finalized address balance credit-first overflow on consensus-valid blocks
Medium
Network
Low
None
None
Am I affectedYou are affected if:
SummaryThe finalized transparent address balance writer processes all newly-created outputs (credits) before processing spent outputs (debits) within the same block. A consensus-valid block containing a long chain of same-address transparent self-spends can cause the intermediate per-address balance during the credit pass to exceed Because the triggering block is consensus-valid (zcashd accepts it), the panic recurs on restart when the node re-encounters the same block. This creates a persistent chain halt that can only be resolved by a software patch. DetailsThe finalized state writer at The code panics on the intermediate overflow via An attacker with approximately 1,100–2,100 ZEC and mining capability can construct a block that permanently halts all Zebra nodes. The attacker recovers their capital (the self-spends return funds to the same address), so the net cost is the mining effort only. PatchesPatched in Zebra 4.4.2. The fix processes credits and debits together per transaction rather than all credits then all debits, matching zcashd's approach. WorkaroundsNo workaround is available. Upgrade to Zebra 4.4.2. ImpactA single consensus-valid mined block can permanently halt all Zebra nodes on the network. The halt persists across restarts. Recovery requires deploying a patched version. Downstream consumers (light wallets, exchanges, mining infrastructure) lose service for the duration of the halt. CreditReported by Fixed in
7.0.0
References Updated Jul 02, 2026 · Source: OSV.dev
CVE-2026-52736
GHSA-4m69-67m6-prqp
Jul 02, 2026
Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
High
Network
Low
None
None
DescriptionAm I affectedYou are affected if:
All default configurations are affected. SummaryZebra records a block hash in DetailsZIP-244 defines The attack flow over P2P:
A secondary variant exists where chain pruning (via PatchesPatched in Zebra 4.4.2. The fix removes stale entries from WorkaroundsThere is no complete configuration-level workaround. Reducing the node's inbound peer count ( ImpactA remote unauthenticated P2P peer can permanently stall a targeted Zebra node at a specific block height. The node diverges from the network tip; downstream consumers (lightwalletd, wallets, explorers, mining infrastructure) relying on the node see a stalled chain. The attack requires winning a propagation race: delivering the poisoned block body before honest peers deliver the canonical block. A well-positioned attacker (low-latency connection to the target, observation of new blocks from other peers) can reliably win this race. In sustained form, the attacker repeats for each new block, keeping the target permanently behind. Recovery requires restarting the node (which clears the in-memory sent-hash cache) or waiting for a reorg at the affected height (rare on the canonical chain). CreditReported independently by Fixed in
7.0.0
References
Updated Jul 02, 2026 · Source: OSV.dev |