1. Você executa qualquer versão de ` zebrad` até e incluindo ` v 4.4.1 `. 2. O seu nó aceita P de entrada 2 Conexões P (`network.listen_addr` está definido, que é o padrão). 3. Seus processos de nó bloqueiam a altura do ponto de checkpoint (o estado não finalizado está ativo). Todas as configurações padrão são afetadas.
O Zebra grava um hash de blocos em `non_finalized_block_write_sent_hashes` quando o bloco é enviado para a tarefa de gravação, antes de validação contextual completar. Se a validação falhar, o hash não será removido. Um peer remoto não autêntico pode entregar um corpo de bloqueio envenenado que compartilha um hash de cabeçalho com um bloqueio canônico mais tarde válido. O corpo envenenado é rejeitado, mas o hash permanece em cache. Quando o bloqueio canônico válido chegar, o Zebra o trata como uma duplicata e o rejeita. O nó não pode avançar além dessa altura até reiniciar ou reorgear um evento. ZIP- 244 define ` txid_v 5 ` sem vincular a entrada transparente `scriptSig`, que vive em `auth_ digest` e está comprometida com `hashBlockCommitments` no cabeçalho do bloco. Como `merkle_root` é calculado sobre txids (não digestão de aut), e o hash de blocos é calculado sobre o cabeçalho, um atacante pode construir dois blocos com hashs de cabeçalho idênticos, mas diferentes corpos de transação, mutando o script de base de moedasSig.
O fluxo de ataque sobre P 2 P. 1. O atacante observa um novo cabeçalho de bloco (de qualquer par). 2. O atacante constrói um corpo envenenado, virando um byte do script da base de moedasSig seção de dados extra. O hash de bloco está inalterado. 3. O atacante anuncia o hash do bloco através do `inv` para o nó de alvo. 4. O alvo solicita o bloco via `getdata`; o atacante serve o corpo envenenado. 5. O Zebra adiciona o hash para `non_finalized_block_write_sent_hashes` antes da validação. 6. A tarefa de escrita rejeita o corpo em `block_commitment_is_valid_for_chain_history` (auth_data_root incompatível). 7. O hash não é removido do `non_finalized_block_write_sent_hashes`. 8. Quando o bloqueio canônico válido chegar (de honestas pares ou RPC), `queue_and_commit_to_non_finalizated_state` vê o hash no cache e retorna `KnownBlock::WriteChannel` duplicado. 9. O nó está preso na altura N- 1. Existe uma variante secundária onde a poda em cadeia (via `MAX_NON_FINALIZED_CHAIN_ FORKS`) remove uma cadeia de `chain_set`, mas deixa o seu bloqueio hashes em `non_finalized_block_write_sent_hashes`, produzindo o mesmo bloqueio para crianças do garfo podado.
Patcheado em Zebra 4.4.2. A correção remove entradas estáveis de `non_finalizated_block_write_sent_hashes` em cada caminho de gravação não finalizado falhado. Não há solução completa do nível de configuração. Reduzir a contagem de pares de entrada do nó (`network.peerset_initial_target_size`) estreita a superfície de ataque, mas não a elimina. Reinicializando o nó, apaga o cache da memória e permite que o bloco válido seja re-fetado.
Um P remoto não authentificado 2 P peer pode bloquear permanentemente um nó Zebra alvo a uma altura específica do bloco. O nó diverge da ponta da rede; consumidores a jusante (portão de luz, carteiras, exploradores, infraestrutura de mineração) dependendo do nó ver uma cadeia parada. O ataque requer ganhar uma corrida de propagação: entrega do corpo do bloqueio envenenado antes que os honestos pares entreguem o bloqueio canônico. Um atacante bem posicionado (conexão de baixa latência ao alvo, observação de novos blocos de outros pares) pode ganhar esta corrida de forma confiável. Em forma sustentada, o atacante repete para cada novo bloco, mantendo o alvo permanentemente atrás. Recuperação requer reiniciar o nó (que limpa o cache de hash-in- memory) ou esperar por um reorg na altura afetada (raro na cadeia canônica).
Reportado independentemente por `@ipwning` (primário, com ZIP- 244 Análise de maleabilidade e referência cruzada do zcashd) e `@x 15 -eth` (primeiro repórter, com E 2 E experimento de reprodução e controle). Registro de aconselhamento: GHSA- 4 m 69 - 67 m 6 -Prqp. Identificadores relacionados: CVE- 2026 - 52736.
Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 02 T 19: 43: 08.000 Z e lista a sua última modificação como 2026 - 07 - 02 T 19: 43: 08.000 Z. Severidade: ALTAMENTE. 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: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- 459. O registro contém 4 suporte de referências nestes tipos: WEB, PACKAGE.