Podatność w węźle Zcash ZEBRA (napisanym w języku Rust) powoduje, że nieprawidłowy typ sighash może zostać błędnie zaakceptowany podczas walidacji podpisów. Prowadzi to do rozszczepienia konsensusu między węzłami ZEBRA a zcashd, co stanowi krytyczne zagrożenie dla integralności sieci.
▸ Pokaż oryginał (EN)
ZEBRA is a Zcash node written entirely in Rust. Prior to zebrad version 4.4.0 and prior to zebra-script version 6.0.0, the fix for CVE-2026-41583 introduced a separate issue due to insufficient error handling of the case where the sighash type is invalid, during sighash computation. Instead of returning an error, the normal flow would resume, and the input sighash buffer would be left untouched. In scenarios where a previous signature validation could leave a valid sighash in the buffer, an invalid hash-type could be incorrectly accepted, which would create a consensus split between Zebra and zcashd nodes. This issue has been patched in zebrad version 4.4.0 and zebra-script version 6.0.0.
Podczas obliczania sighash, poprawka dla CVE-2026-41583 wprowadziła niewystarczającą obsługę błędów dla przypadku, gdy typ sighash jest nieprawidłowy. Zamiast zwrócić błąd, kod kontynuuje normalny przepływ wykonania, pozostawiając bufor sighash niezmieniony. Jeśli poprzednia walidacja podpisu pozostawiła w buforze prawidłowy sighash, nieprawidłowy typ hash może zostać błędnie zaakceptowany jako poprawny. Skutkuje to rozbieżnością w ocenie ważności transakcji między węzłami ZEBRA a zcashd.
Atakujący może doprowadzić do rozszczepienia konsensusu (consensus split) między węzłami ZEBRA a zcashd, zagrażając integralności i spójności sieci Zcash oraz umożliwiając potencjalną manipulację weryfikacją transakcji.
Należy zaktualizować zebrad do wersji 4.4.0 lub nowszej oraz zebra-script do wersji 6.0.0 lub nowszej. Patche są dostępne w repozytorium ZcashFoundation/zebra.
Zfnd zebrad w wersjach poprzedzających 4.4.0 oraz Zfnd zebra-script w wersjach poprzedzających 6.0.0.
Podatność jest bezpośrednim następstwem błędnej poprawki dla CVE-2026-41583 — fix wprowadził nowy błąd związany z niewystarczającą obsługą wyjątku nieprawidłowego typu sighash.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XZfnd Zebrad
APPZfnd< 4.4.0Zfnd Zebra Script
APPZfnd< 6.0.0
Powiązane podatności
Crash węzła Zebra (Zcash) przez pole rk z wartością tożsamości w transakcjach Orchard
Błąd walidacji sighash w Zebra — możliwy consensus split z zcashd
Błędne zliczanie sigops w Zebra powoduje split sieci Zcash
ZEBRA is a Zcash node written entirely in Rust. Prior to zebrad version 4.3.1 and zebra-consensus version 5.0....
ZEBRA is a Zcash node written entirely in Rust. From zebrad versions 2.2.0 to before 4.3.1 and from zebra-rpc ...