1. Você executa ` zebrad` até e incluindo ` v 4.4.1 `. 2. O seu nó processa bloqueios em qualquer rede Zcash. O autor de balanço de endereços transparentes finalizado processa todas as saídas recém criadas (créditos) antes de processar saídas gastas (débitos) dentro do mesmo bloco. Um bloco válido por consenso que contenha uma longa cadeia de auto- gasto transparente do mesmo endereço pode fazer com que o saldo intermediário por endereço durante a passagem de crédito exceda `MAX_ MONEY`, desencadeando um pânico no autor do estado finalizado. Como o bloco de ativação é válido por consenso (zcashd o aceita), o pânico se recorre ao reiniciar quando o nó reencontra o mesmo bloco. Isto cria uma parada persistente da cadeia que só pode ser resolvida por um patch de software.
O autor de estado finalizado no `zebra-state/src/service/finalizated_state/zebra_db/transparent.rs` itera todas as saídas de transação em um bloco e as credita para saldos por endereço antes de iterar entradas e debitar saídas gastas. Quando um bloco contém muitos auto- gastas transparentes para o mesmo endereço, o saldo intermediário somente de crédito pode exceder o limite de suprimento ` MAX_ MONEY` mesmo que o saldo líquido final (créditos menos débitos) seja válido. O código entra em pânico no transbordo intermediário via `. expect()` na adição do balanço. Sob o perfil de lançamento do Zebra `panic = "abort" ', isto termina o processo. Ao reiniciar, o nó re- baixa e re- processa o mesmo bloqueio válido para consenso, desencadeando o mesmo pânico. Um atacante com aproximadamente 1,100 – 2,100 A capacidade ZEC e mineração pode construir um bloco que detenha permanentemente todos os nós Zebra. O atacante recupera o capital (os auto- gastas devolvem fundos para o mesmo endereço), por isso o custo líquido é apenas o esforço de mineração.
Patcheado em Zebra 4.4.2. A correção processa os créditos e débitos juntos por transação em vez de todos os créditos, em seguida, todos os débitos, combinando com a abordagem do zcashd. Não há solução disponível. Atualizar para Zebra 4.4.2. Um único bloco minado válido para consenso pode parar permanentemente todos os nós Zebra na rede. A paragem persiste em reinicios. Recuperação requer implantação de uma versão correcionada. Os consumidores a baixar (carnetas ligeiras, trocas, infraestrutura de mineração) perdem o serviço durante a duração do paragem.
Relato por `@sangsoo- oesc`. Registro de aconselhamento: GHSA-w 834 - cf 6 p-. 9 m 9 w. Identificadores relacionados: CVE- 2026 - 52738.
Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 02 T 19: 44: 54.000 Z e lista a sua última modificação como 2026 - 07 - 02 T 19: 44: 54.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 4: CVSS: 4.0 /AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/África do Sul:N.
Informações sobre software e versão afetadas: caixas.io pacote zebra-state — ECOSISTEM: introduzido 0, corrigido 7.0.0. caixas.io pacote zebrad — ECOSISTEM: introduzido 0, corrigido 4.5.0. Classificação e evidência: identificadores de fraqueza CWE- 248. O registro contém 2 suporte de referências nestes tipos: WEB, PACKAGE.