🔍 CVE-2026-52736

0.0
CVSS Score
UNKNOWN
2026-08-18
2026-10-22 22:10
✅ 완료

🇰🇷 한글 설명

Zcash 노드인 ZEBRA 4.5.0 미만 버전에서 발생하는 취약점으로, 원격의 인증되지 않은 P2P 피어가 유효한 블록 헤더 해시와 동일한 해시를 가진 잘못된 블록 본문을 전송하여 노드를 정지시킬 수 있습니다. ZIP-244의 특성을 악용하여 트랜잭션 식별자와 머클 루트를 유지한 채 데이터만 변조함으로써, 노드가 유효한 블록을 처리하지 못하고 한 단계 뒤처진 상태로 멈추게 만듭니다.

💡 쉬운 설명

해커가 가짜 블록 데이터를 교묘하게 만들어 보내면, Zcash 노드가 진짜 블록을 받았음에도 불구하고 이를 가짜로 오해하여 처리를 거부하게 됩니다. 이로 인해 노드가 새로운 거래를 업데이트하지 못하고 멈춰버리는 현상이 발생합니다.

🇺🇸 원문 (English)

ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, a remote unauthenticated P2P peer can stall a Zebra node by racing an invalid block body against the valid canonical body for the same block header hash. ZIP-244 permits the attacker to mutate coinbase scriptSig authentication data while retaining the transaction identifiers, merkle root, and block header hash, so the poisoned body fails later commitment validation but shares the canonical hash. In zebra-state/src/service.rs, queue_and_commit_to_non_finalized_state recorded the hash in non_finalized_block_write_sent_hashes before contextual validation completed and did not remove it when the write task rejected the body. When the honest body later arrived, the cached hash caused KnownBlock::WriteChannel duplicate handling to suppress it, leaving the node stuck one height behind until restart or reorganization. This issue is fixed in version 4.5.0.

📍 영향받는 시스템

ZEBRA (Zcash node) versions prior to 4.5.0

⚔️ 공격 벡터

Remote unauthenticated P2P peer sending a poisoned block body matching a valid block header hash

🛡️ 대응 방법

Update ZEBRA to version 4.5.0 or later

🔧 검증 코드

명령어 결과에 '4.5.0' 이상의 버전이 표시되면 취약점이 해결된 상태입니다.

Shell / Script
zebra --version 2>/dev/null | grep -E '4\[\.\]5\.[\.\]0'

💻 영향받는 소프트웨어

Spring Data REST