CVE-2026-52739
Təsvir
ZEBRA tamamilə Rust dilində yazılmış Zcash nodudur. 4.5.0 versiyasından əvvəl bədniyyətli blok istehsalçısı eyni gizli tranzaksiyanı finalizasiya olunmamış valideyn bloka və onun övlad bloğuna yerləşdirməklə zebrad prosesini dayandıra bilər. zebra-state/src/service/non_finalized_state/chain.rs faylında Chain::push funksiyası əvvəlcə tranzaksiya heşini tx_loc_by_hash-ə daxil edir və gizli məlumatları yeniləməzdən və təkrarlanan Sprout, Sapling və ya Orchard nullifier yoxlamalarını həyata keçirməzdən əvvəl unikallığı təsdiqləyirdi. Buna görə də təkrarlanan tranzaksiya kontekstual validasiya onu təmiz şəkildə rədd etməmişdən əvvəl "tranzaksiyalar tək bir zəncirdə unikal olmalıdır" təsdiqinə (assertion) çatırdı. Zebra-nın release build-ləri "panic equals abort" parametrindən istifadə etdiyindən, bu əlçatan təsdiq bütün prosesi dayandırır; istismarı üçün ya hücumçu tərəfindən çıxarılmış iki ardıcıl blok, ya da dürüst blok hücumçunun gizli tranzaksiyasını daxil etdikdən dərhal sonra hücumçu tərəfindən çıxarılmış övlad blok tələb olunur. Bu problem 4.5.0 versiyasında düzəldilmişdir.
Necə düzəltmək olar
Mənbələrdə bu zəiflik üçün düzəldilmiş versiya və ya yamaq keçidi yoxdur.
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| ZcashFoundation zebra | < 4.5.0 | — |
| ZcashFoundation zebra-state | < 7.0.0 | — |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.