CVE-2026-34377
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 17 - wyżej niż 17% wszystkich znanych CVE
Streszczenie
ZEBRA (węzeł Zcash) przed wersjami zebrad 4.3.0 i zebra-consensus 5.0.1 ma błąd logiczny w pamięci podręcznej weryfikacji transakcji. Złośliwy górnik może wywołać podział konsensusu, dopasowując txid prawidłowej transakcji do nieprawidłowych danych autoryzacyjnych, co powoduje akceptację nieprawidłowego bloku przez podatne węzły.
Ocena ryzyka
Podział konsensusu może zakłócić działanie sieci Zcash, powodując rozbieżności w stanie łańcucha między węzłami, co może wpłynąć na integralność transakcji.
Rekomendacja
Zaktualizuj zebrad do wersji 4.3.0 lub nowszej oraz zebra-consensus do wersji 5.0.1 lub nowszej.
Inne podatności w ZEBRA
Zobacz wszystkie- CVE-2026-52735Krytyczne
ZEBRA, węzeł Zcash napisany w Rust, przed wersją 4.5.0 może zaakceptować blok, który zcashd odrzuca z powodu niedoszacowania licznika operacji podpisu P2SH dla skryptów zawierających wyłączony opcode. Atakujący może wykorzystać to do spowodowania rozłamu łańcucha, co wpływa na integralność i dostępność sieci.
- CVE-2026-52829Wysokie
ZEBRA (węzeł Zcash) przed wersją 4.5.0 ma podatność na zdalne zatrzymanie przez nieuwierzytelnionego peera IPv4. Poprzez wykonanie uzgadniania P2P i reklamowanie nieprawidłowej transakcji mempool, atakujący może doprowadzić do asercji w kodzie, co skutkuje przerwaniem działania węzła (panic/abort). Problem naprawiono w wersji 4.5.0.
- CVE-2026-52739Średnie
ZEBRA przed wersją 4.5.0 może zostać zatrzymany przez złośliwego producenta bloków, który umieszcza tę samą transakcję shieldowaną w bloku nadrzędnym i podrzędnym. Asercja o unikalności transakcji w łańcuchu jest osiągalna przed walidacją kontekstową, a wersje release używają panic=abort, co kończy proces.
- CVE-2026-52738Średnie
ZEBRA przed wersją 4.5.0 może zostać trwale zatrzymany przez konsensusowo ważny blok zawierający długi łańcuch transparentnych self-spendów. Kolejność kredytów przed debetami może spowodować przekroczenie MAX_MONEY, co prowadzi do paniki w wersji release. Blok jest akceptowany przez zcashd, więc zatrzymanie utrzymuje się po restarcie.
- CVE-2026-52737Średnie
ZEBRA przed wersją 4.5.0 może być spowolniony przez złośliwego peera P2P, który odpowiada na żądania getblocks/FindBlocks małą listą i serwuje blok z coinbase height znacznie powyżej lokalnego tipa. Błąd nie jest przypisywany do peera, co powoduje anulowanie pobrań i 67-sekundowe opóźnienie synchronizacji. Peer nie jest oceniany ani rozłączany, więc może powtarzać atak.
- CVE-2026-52736Wysokie
ZEBRA przed wersją 4.5.0 ma podatność na zablokowanie węzła przez zdalnego, nieuwierzytelnionego peera P2P. Atakujący może wysłać nieprawidłowe ciało bloku, które ma ten sam hash co prawidłowe ciało, co powoduje, że węzeł odrzuca później prawidłowe ciało i pozostaje w tyle o jeden blok aż do restartu lub reorganizacji. Problem naprawiono w wersji 4.5.0.
- CVE-2026-52734Średnie
ZEBRA to węzeł Zcash napisany w języku Rust. Przed wersją 4.5.0 nieuwierzytelniony peer P2P może spowodować, że potok pobierania mempoola będzie przechowywał transakcje po przekroczeniu limitu czasu RATE_LIMIT_DELAY. W rezultacie wpisy cancel_handles nie są usuwane po przekroczeniu limitu czasu, co prowadzi do niekontrolowanego wzrostu pamięci i może doprowadzić do awarii węzła.
- CVE-2026-52733Średnie
ZEBRA to węzeł Zcash napisany w języku Rust. Przed wersją 4.5.0 naturalny lub wywołany przez atakującego fork łańcucha może pozostawić nieaktualne korzenie poddrzew zobowiązań Sapling i Orchard w stanie węzła. Te nieaktualne dane mogą zostać zapisane do RocksDB i przetrwać restarty, co prowadzi do błędnych odpowiedzi dla klientów takich jak lightwalletd.
- CVE-2026-52732Średnie
ZEBRA to węzeł Zcash napisany w języku Rust. Przed wersją 4.5.0 jeden nieuwierzytelniony peer P2P może zmonopolizować wszystkie 25 slotów MAX_INBOUND_CONCURRENCY w potoku pobierania i weryfikacji mempoola. Atakujący może reklamować fałszywe identyfikatory transakcji i blokować sloty, co prowadzi do odrzucania uczciwych transakcji i lokalnych żądań sendrawtransaction.
- CVE-2026-52731Średnie
ZEBRA to węzeł Zcash napisany w języku Rust. Przed wersją 4.5.0 atakujący z uwierzytelnieniem do włączonego punktu końcowego RPC może spowodować zakończenie działania zebrad, dostarczając getblocktemplate LongPollId zawierający wielobajtowe znaki UTF-8. Błąd prowadzi do paniki Rust, a wersje produkcyjne używają panic=abort, co kończy cały proces.
Oryginalny opis (angielski, źródło NVD)
ZEBRA is a Zcash node written entirely in Rust. Prior to zebrad version 4.3.0 and zebra-consensus version 5.0.1, a logic error in Zebra's transaction verification cache could allow a malicious miner to induce a consensus split. By matching a valid transaction's txid while providing invalid authorization data, a miner could cause vulnerable Zebra nodes to accept an invalid block, leading to a consensus split from the rest of the Zcash network. This would not allow invalid transactions to be accepted but could result in a consensus split between vulnerable Zebra nodes and invulnerable Zebra and Zcashd nodes. This issue has been patched in zebrad version 4.3.0 and zebra-consensus version 5.0.1.

