CVE-2026-52739 in Zebra
Zusammenfassung
von VulDB • 18.08.2026
ZEBRA ist ein Zcash-Knoten, der vollständig in Rust geschrieben wurde. Vor Version 4.5.0 kann ein böswilliger Block-Produzent zebrad beenden, indem es dieselbe shielded Transaktion sowohl in einem nicht finalisierten Elternblock als auch in dessen Kindblock platziert. In zebra-state/src/service/non_finalized_state/chain.rs hat Chain::push ursprünglich den Transaktionshash in tx_loc_by_hash eingefügt und die Einzigartigkeit assertiert, bevor die shielded-Daten aktualisiert wurden und die doppelten Sprout-, Sapling- oder Orchard Nullifier-Prüfungen durchgeführt wurden. Die wiederholte Transaktion erreichte daher die Assertionsbedingung „Transaktionen müssen innerhalb einer einzelnen Chain eindeutig sein“, bevor sie durch kontextuelle Validierung sauber abgelehnt werden konnte. Zebra Release-Builds verwenden panic equals abort, sodass der erreichbare Assertion den gesamten Prozess beendet; zur Ausnutzung sind entweder zwei aufeinanderfolgende vom Angreifer geminte Blöcke oder ein vom Angreifer geminter Kindblock erforderlich, der unmittelbar nach einem ehrlichen Block folgt, der die shielded Transaktion des Angreifers enthält. Dieses Problem wurde in Version 4.5.0 behoben.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.