1. Você executa qualquer versão de ` zebrad` até e incluindo ` v 4.4.1 `. 2. Seu nó valida blocos na mainnet, testnet ou em qualquer rede onde ambos os nós Zebra e zcashd participam. Todas as configurações padrão são afetadas. Não são necessárias bandeiras de recursos, configurações não predefinidas ou opções especiais de compilação. P do Zebra 2 O contador de sigop SH usa um caminho de código puro- Rust que abrevia os circuitos em opcodes desabilitados (como `OP_ CODESEPARATOR`), retornando uma contagem parcial de zero para qualquer sigops que segue o opcode desabilitado. A implementação de referência (zcashd) conta corretamente através de opcodes desativados na sua análise de sigop estático. Isto produz uma divergência de consenso: O Zebra aceita blocos que o zcashd rejeita quando o bloco em todo o bloco `MAX_BLOCK_SIGOPS = 20,000 ` limite é cruzado de um lado, mas não do outro.

Um atacante pode explorar isso sem capacidade de mineração. Transacções de transmissão que gastam P 2 Saídas SH com scripts de resgate maliciosos são suficientes; qualquer mineiro Zebra que inclua essas transações em um bloco desencadeia uma divisão de cadeia entre validadores Zebra e zcashd. O P 2 Contador de sigop SH em ` zebra-script/src/lib.rs: 399 ` chama `script::Code(redeemed_bytes).sig_op_count(true)`, que é um caminho de pureza-Rust através de `zcash_script- 0.4.4 `. O legado (não- P) 2 SH) contador de sigop em `lib.rs: 282 - 289 ` use corretamente o FFI C++ via `interpreter.legacy_sigop_count_script()`. Apenas o P 2 O caminho SH contorna o FFI. O analisador Rust em ` zcash_script- 0.4.4 /src/opcode/mod.rs: 1247 - 1260 ` tratamentos 16 opcodes desativados ( 0 x 7 e através 0 xab, incluindo `OP_CAT`, `OP_SUBSTR`, `OP_AND`, `OP_OR`, `OP_XOR`, `OP_SUBSTR', `OP_ 2 MUL`, `OP_ 2 DIV`, `OP_ MUL`, `OP_ DIV`, `OP_ MOD`, `OP_ LSHIFT`, `OP_ RSHIFT` e `OP_ CODESEPARATOR`) como `Error(Error:: Disabled(...)'. A função `sig_op_count` em `iter.rs: 104 - 115 ` usa `try_fold`, que termina no primeiro `Err` e retorna a soma parcial acumulada até agora.

O 'GetOp' do zcashd 2 ` (`script.h: 514 - 562 `) retorna `verdadeiro` para todos os opcodes não empurrados, incluindo o intervalo de desabilitação. Sua `GetSigOpCount( true)` (`script.cpp: 152 - 174 `) continua contando através de opcodes desabilitados. o zcashd rejeita opcodes desativados no tempo de execução no intérprete, não durante a análise estática de sigop. Um script de resgate de `[ 0 xab, OP_CHECKMULTISIG x 50 ]` produz: Zebra = 0 Sigops, zcashd = 1,000 Sigops. Através 21 entradas num bloco, Zebra calcula 0 enquanto zcashd calcula 21,000, cruzando o ` MAX_BLOCK_SIGOPS = 20,000 ` limiar em um só lado.

Patcheado em Zebra 4.4.2. A correção rotas do P 2 Contador de sigop SH através do mesmo FFI C++ já usado pelo contador de sigop legado. Não há solução de nível de configuração. Todos os nós Zebra validando blocos em uma rede compartilhada com o zcashd são afetados. Atualize assim que a versão com patches estiver disponível.

Uma cadeia dividida entre validadores Zebra e zcashd. O atacante transmite transações de gastos referindo-se a P 2 Saídas SH cujos scripts de resgate contêm um opcode desabilitado seguido de opcodes `OP_ CHECKSIG` ou `OP_ CHECKMULTISIG`. Quando um mineiro Zebra (estimado ~ 30% do hashrate de rede atual) inclui estas transações em um bloco, validadores Zebra aceitam o bloco enquanto validadores zcashd o rejeitam com `bad- blk- sigops`. As duas metades da rede divergem e cada bloco subsequente que estende a ponta do lado Zebra herda a divergência. O atacante não precisa de capacidade de mineração, acesso ao RPC ou quaisquer privilégios especiais. O custo é as taxas de transação para o financiamento e as transações de gastos.

Relato por `@samsulelgut` através de uma submissão privada de GitHub Security Advisory. Registro de aconselhamento: GHSA- gf 9 r- m 956 - 97 qx. Identificadores relacionados: CVE- 2026 - 52735.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 02 T 19: 43: 36.000 Z e lista a sua última modificação como 2026 - 07 - 02 T 19: 43: 36.000 Z. Gravidade: Crítico. Dados de pontuação publicados: CVSS_V 4: CVSS: 4.0 /AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/África do Sul:H.

Informações sobre software e versão afetadas: caixas.io pacote zebra-script — 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- 684. O registro contém 5 suporte de referências nestes tipos: WEB, PACKAGE.