{"id":"GHSA-cwfq-rfcr-8hmp","kind":"vulnerability","aliases":["GHSA-cwfq-rfcr-8hmp"],"related":[],"title":"Zebra's Transparent SIGHASH_SINGLE Handling Diverges from zcashd for Corresponding Outputs","description":"# `Zebra` Transparent `SIGHASH_SINGLE` Corresponding-Output Handling Diverges From `zcashd`\n\n### Summary\nFor V5+ transparent spends, `Zebra` and `zcashd` disagree on the same consensus rule: `SIGHASH_SINGLE` must fail when the input index has no corresponding output. `zcashd` treats this as consensus-invalid under ZIP-244, while `Zebra`'s transparent verification path computes a digest for the missing-output case instead of failing.\n\nThe result is a direct block-validity split. A malformed V5 transparent transaction can be accepted by `Zebra`, retained in `Zebra`'s mempool, selected into `Zebra` `getblocktemplate`, mined into a block, and then rejected by `zcashd`.\n\n### Details\nValidated code revisions used during analysis:\n\n- `zcashd`: `2c63e9aa08cb170b0feb374161bea94720c3e1f5`\n- `Zebra`: `a905fa19e3a91c7b4ead331e2709e6dec5db12cb`\n\nScope note:\n\n- earlier triage material grouped pre-V5 and V5 behavior together;\n- re-execution on the pinned revisions did not reproduce the claimed pre-V5 / V4 reject-side behavior;\n- this advisory therefore covers the V5+ / ZIP-244 variant only.\n\n`zcashd` side:\n\n- Transparent scripts in blocks are checked through `TransactionSignatureChecker::CheckSig()` and `SignatureHash()`: [`zcash/src/script/interpreter.cpp`](https://github.com/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#L1386-L1407).\n- In the ZIP-244 branch, `SignatureHash()` explicitly throws when `SIGHASH_SINGLE` or `SIGHASH_SINGLE|ANYONECANPAY` is used with `nIn >= txTo.vout.size()`: [`zcash/src/script/interpreter.cpp`](https://github.com/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#L1221-L1259).\n- `CheckSig()` catches that exception and returns `false`, causing the transparent script to fail.\n\n`Zebra` side:\n\n- V5 transparent inputs route into the same FFI-based transparent script verifier used for block validation: [`zebra/zebra-consensus/src/transaction.rs`](https://github.com/ZcashFoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-consensus/src/transaction.rs#L989-L1098).\n- `Zebra` converts the decoded hash type and asks its Rust sighash engine for a digest without adding the corresponding-output pre-check that `zcashd` enforces first: [`zebra/zebra-script/src/lib.rs`](https://github.com/ZcashFoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-script/src/lib.rs#L160-L175), [`zebra/zebra-chain/src/primitives/zcash_primitives.rs`](https://github.com/ZcashFoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-chain/src/primitives/zcash_primitives.rs#L307-L343).\n- `Zebra` forwards canonical `SIGHASH_SINGLE` into the Rust ZIP-244 implementation.\n- In that implementation, when `input.index() >= bundle.vout.len()`, the code uses `transparent_outputs_hash::<TxOut>(&[])` instead of erroring: [`zcash_primitives/src/transaction/sighash_v5.rs`](https://github.com/zcash/librustzcash/blob/c3425f9c3c7f6deb20720bb78b18f35fbbed8edd/zcash_primitives/src/transaction/sighash_v5.rs#L101-L107), [`zcash_primitives/src/transaction/sighash_v5.rs`](https://github.com/zcash/librustzcash/blob/c3425f9c3c7f6deb20720bb78b18f35fbbed8edd/zcash_primitives/src/transaction/sighash_v5.rs#L131-L139).\n\nWhy this is exploitable:\n\n- the malformed transaction only needs fewer transparent outputs than inputs;\n- the attacker signs the digest that `Zebra` computes for the missing-output case;\n- `Zebra` then sees a valid transparent signature, while `zcashd` never reaches the same digest because it fails first.\n\nOrdinary path viability:\n\n- `zcashd` ordinary mempool admission is not the practical trigger path, because the same ZIP-244 `SignatureHash()` checks fail there first: [`zcash/src/main.cpp`](https://github.com/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/main.cpp#L1981-L1995), [`zcash/src/script/interpreter.cpp`](https://github.com/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#L1221-L1259).\n- `Zebra` ordinary mempool admission is viable because `Zebra` uses the same transparent verifier for mempool and block validation and does not have a separate \"one output per input\" standardness rule here: [`zebra/zebra-consensus/src/transaction.rs`](https://github.com/ZcashFoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-consensus/src/transaction.rs#L414-L519), [`zebra/zebrad/src/components/mempool/storage.rs`](https://github.com/ZcashFoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebrad/src/components/mempool/storage.rs#L255-L376).\n- `Zebra` is a block-template producer, so the realistic stock path is `Zebra` mempool -> `Zebra` `getblocktemplate` -> external miner: [`zebra/zebra-rpc/src/methods/types/get_block_template/zip317.rs`](https://github.com/ZcashFoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-rpc/src/methods/types/get_block_template/zip317.rs#L72-L105).\n\n### PoC\nValidated commits:\n\n- `zcashd`: `2c63e9aa08cb170b0feb374161bea94720c3e1f5`\n- `Zebra`: `a905fa19e3a91c7b4ead331e2709e6dec5db12cb`\n\nManual reproduction steps:\n\n1. Build an otherwise-valid V5 transaction with at least two transparent inputs and only one transparent output.\n2. Sign input `0` normally.\n3. Sign input `1` with canonical `SIGHASH_SINGLE` or `SIGHASH_SINGLE|ANYONECANPAY`.\n4. Use the digest returned by `Zebra`'s ZIP-244 path, where the missing output contributes `transparent_outputs_hash([])`.\n5. Submit the transaction to `Zebra` and to `zcashd`.\n6. Observe:\n   - `Zebra` accepts it into the mempool;\n   - `Zebra` selects it into `getblocktemplate`;\n   - `Zebra` can mine and accept a block containing it;\n   - `zcashd` rejects it in the ordinary mempool path.\n\n### Impact\nThis is a direct V5+ transparent consensus split.\n\nWho can trigger it:\n\n- an ordinary transaction author can craft the malformed V5 transparent transaction;\n- the accept-side stock path is `Zebra`'s mempool and block-template path;\n- an external miner still has to include the transaction in a block for the split to materialize.\n\nWho is impacted:\n\n- `Zebra` can accept and template a transaction / block that `zcashd` rejects;\n- this makes the issue both a consensus-divergence problem and a practical `Zebra` block-template safety problem.","summary":"Zebra computes a signature digest for a SIGHASH_SINGLE input that has no matching output, where zcashd rejects the transaction. A crafted transaction can therefore be accepted into Zebra's mempool and block templates, then mined into a block that zcashd rejects.","severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"zebrad","fixed":["4.4.0"],"affected":"< 4.4.0","ecosystem":"cargo"}],"ecosystems":["cargo"],"tags":["cwe-354","cwe-573","mining","runtime","zcash","zebra","zebrad"],"not_affected_if":["zcashd-only","zebrad-4.4.0-or-later"],"how_to_check":"- Check the installed zebrad version with `zebrad --version` and compare it to the affected range `< 4.4.0`.\n- Look at the deployment's `zebrad` binary or container image tag to confirm the version actually running.","fix":"- `zebrad` `4.4.0`","status":"open","published_at":"2026-05-07T21:02:30+00:00","first_seen_at":"2026-11-13T02:48:40+00:00","triaged_at":"2026-11-13T02:49:11+00:00","updated_at":"2026-11-13T02:49:11+00:00","category":"runtime","confidence":0.85,"triage":{"at":"2026-11-13T02:49:11Z","model":"claude-haiku-5-5","output":{"fix":"- `zebrad` `4.4.0`","reach":"internet","title":"Zebra: accepts V5 transparent transactions with missing SIGHASH_SINGLE output","impact":"high","summary":"Zebra computes a signature digest for a SIGHASH_SINGLE input that has no matching output, where zcashd rejects the transaction. A crafted transaction can therefore be accepted into Zebra's mempool and block templates, then mined into a block that zcashd rejects.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["zebra","zcash","zebrad","mining"],"confidence":0.85,"fix_status":"available","needs_auth":"no","worst_case":"Zebra accepts and templates a block that zcashd rejects, causing a chain split.","analyst_note":"","how_to_check":"- Check the installed zebrad version with `zebrad --version` and compare it to the affected range `< 4.4.0`.\n- Look at the deployment's `zebrad` binary or container image tag to confirm the version actually running.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["zcashd-only","zebrad-4.4.0-or-later"],"who_is_affected":"Teams running zebrad nodes, especially ones that serve getblocktemplate to external miners, since the malformed transaction is accepted into the mempool and templated there. Nodes that only run zcashd, or that are on zebrad 4.4.0 or later, are not affected by this report.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"no","severity_if_unknown":"critical"},"cost_usd":0.001017,"input_tokens":7431,"output_tokens":547,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-244':121C,228C,251C,353C,443C '-354':25B '-573':27B '/zcash/librustzcash/blob/c3425f9c3c7f6deb20720bb78b18f35fbbed8edd/zcash_primitives/src/transaction/sighash_v5.rs#l101-l107),':374C '/zcash/librustzcash/blob/c3425f9c3c7f6deb20720bb78b18f35fbbed8edd/zcash_primitives/src/transaction/sighash_v5.rs#l131-l139).':379C '/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/main.cpp#l1981-l1995),':452C '/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#l1221-l1259).':271C,456C '/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#l1386-l1407).':247C '/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-chain/src/primitives/zcash_primitives.rs#l307-l343).':343C '/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-consensus/src/transaction.rs#l989-l1098).':307C '/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-script/src/lib.rs#l160-l175),':339C '2c63e9aa08cb170b0feb374161bea94720c3e1f5':185C '8hmp':17A,22A 'a905fa19e3a91c7b4ead331e2709e6dec5db12cb':187C 'accept':59B,156C 'add':324C 'admiss':432C 'advisori':222C 'analysi':183C 'anyonecanpay':262C 'ask':315C 'attack':395C 'base':296C 'behavior':199C,220C 'block':65B,71B,146C,171C,236C,302C 'block-valid':145C 'branch':252C 'bundle.vout.len':360C 'canon':346C 'case':136C,407C 'catch':273C 'caus':279C 'check':238C,331C,445C 'checksig':241C,272C 'claim':212C 'code':179C,362C 'comput':34B,128C,401C 'consensus':98C,117C 'consensus-invalid':116C 'convert':309C 'correspond':11A,80C,110C,327C 'corresponding-output':79C,326C 'cover':224C 'craft':54B 'cwe':24B,26B 'cwfq':15A,20A 'decod':311C 'detail':177C 'digest':37B,130C,322C,398C,421C 'direct':144C 'disagre':94C 'diverg':7A,83C 'earlier':190C 'enforc':334C 'engin':319C 'error':369C 'except':275C 'execut':203C 'explicit':254C 'exploit':383C 'fail':103C,139C,284C,424C,446C 'fals':278C 'fewer':389C 'ffi':295C 'ffi-bas':294C 'first':335C,425C,448C 'forward':345C 'getblocktempl':167C 'ghsa':14A,19A 'ghsa-cwfq-rfcr-8hmp':13A,18A 'github.com':246C,270C,306C,338C,342C,373C,378C,451C,455C 'github.com/zcash/librustzcash/blob/c3425f9c3c7f6deb20720bb78b18f35fbbed8edd/zcash_primitives/src/transaction/sighash_v5.rs#l101-l107),':372C 'github.com/zcash/librustzcash/blob/c3425f9c3c7f6deb20720bb78b18f35fbbed8edd/zcash_primitives/src/transaction/sighash_v5.rs#l131-l139).':377C 'github.com/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/main.cpp#l1981-l1995),':450C 'github.com/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#l1221-l1259).':269C,454C 'github.com/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#l1386-l1407).':245C 'github.com/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-chain/src/primitives/zcash_primitives.rs#l307-l343).':341C 'github.com/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-consensus/src/transaction.rs#l989-l1098).':305C 'github.com/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-script/src/lib.rs#l160-l175),':337C 'group':193C 'handl':6A,82C 'hash':312C,366C 'implement':354C,357C 'index':107C 'input':42B,106C,289C,393C 'input.index':359C 'instead':137C,367C 'invalid':118C 'malform':150C,385C 'match':46B 'materi':192C 'mempool':63B,163C,431C 'mine':28B,68B,168C 'miss':134C,405C 'missing-output':133C,404C 'must':102C 'need':388C 'never':417C 'nin':266C 'note':189C 'ordinari':426C,430C 'output':12A,47B,81C,111C,135C,328C,365C,391C,406C 'path':127C,427C,438C 'pin':206C 'practic':436C 'pre':195C,214C,330C 'pre-check':329C 'pre-v5':194C,213C 'primitives/src/transaction/sighash_v5.rs':371C,376C 're':202C 're-execut':201C 'reach':418C 'reject':50B,74B,174C,218C 'reject-sid':217C 'reproduc':210C 'result':141C 'retain':159C 'return':277C 'revis':180C,207C 'rfcr':16A,21A 'rout':290C 'rule':99C 'runtim':29B 'rust':317C,351C 'scope':188C 'script':234C,282C,298C 'see':410C 'select':164C 'side':219C,232C,286C 'sighash':4A,40B,77C,100C,257C,260C,318C,347C 'sign':396C 'signatur':36B,414C 'signaturehash':243C,253C,444C 'singl':5A,41B,78C,101C,258C,261C,348C 'spend':90C 'split':148C 'summari':86C 'templat':66B 'therefor':57B,223C 'throw':255C 'togeth':200C 'transact':52B,55B,153C,386C 'transactionsignaturecheck':240C 'transpar':3A,76C,89C,125C,152C,233C,281C,288C,297C,364C,390C,413C 'treat':113C 'triag':191C 'trigger':437C 'txto.vout.size':267C 'type':313C 'use':181C,264C,300C,363C 'v4':216C 'v5':88C,151C,196C,198C,215C,226C,287C 'valid':147C,178C,303C,412C 'variant':229C 'verif':126C 'verifi':299C 'viabil':428C 'without':323C 'zcash':30B,370C,375C 'zcash/src/main.cpp':449C 'zcash/src/script/interpreter.cpp':244C,268C,453C 'zcashd':9A,49B,73B,85C,93C,112C,176C,184C,231C,333C,416C,429C 'zebra':1A,31B,33B,61B,75C,91C,123C,158C,161C,166C,186C,285C,308C,344C,400C,408C 'zebra/zebra-chain/src/primitives/zcash_primitives.rs':340C 'zebra/zebra-consensus/src/transaction.rs':304C 'zebra/zebra-script/src/lib.rs':336C 'zebrad':23A,32B 'zip':120C,227C,250C,352C,442C","nicknames":[],"mitigations":[],"who_affected":"Teams running zebrad nodes, especially ones that serve getblocktemplate to external miners, since the malformed transaction is accepted into the mempool and templated there. Nodes that only run zcashd, or that are on zebrad 4.4.0 or later, are not affected by this report.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":["zebrad"],"ptokens":["zebrad"],"labels":["cargo","critical","cwe354","cwe573","mining","runtime","zcash","zebra","zebrad"],"campaign_type":null,"search_a":"'8hmp':17A,22A 'correspond':11A 'cwfq':15A,20A 'diverg':7A 'ghsa':14A,19A 'ghsa-cwfq-rfcr-8hmp':13A,18A 'handl':6A 'output':12A 'rfcr':16A,21A 'sighash':4A 'singl':5A 'transpar':3A 'zcashd':9A 'zebra':1A 'zebrad':23A","search_b":"'-354':25B '-573':27B 'accept':59B 'block':65B,71B 'comput':34B 'craft':54B 'cwe':24B,26B 'digest':37B 'input':42B 'match':46B 'mempool':63B 'mine':28B,68B 'output':47B 'reject':50B,74B 'runtim':29B 'sighash':40B 'signatur':36B 'singl':41B 'templat':66B 'therefor':57B 'transact':52B,55B 'zcash':30B 'zcashd':49B,73B 'zebra':31B,33B,61B 'zebrad':32B","search_c":"'-244':121C,228C,251C,353C,443C '/zcash/librustzcash/blob/c3425f9c3c7f6deb20720bb78b18f35fbbed8edd/zcash_primitives/src/transaction/sighash_v5.rs#l101-l107),':374C '/zcash/librustzcash/blob/c3425f9c3c7f6deb20720bb78b18f35fbbed8edd/zcash_primitives/src/transaction/sighash_v5.rs#l131-l139).':379C '/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/main.cpp#l1981-l1995),':452C '/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#l1221-l1259).':271C,456C '/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#l1386-l1407).':247C '/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-chain/src/primitives/zcash_primitives.rs#l307-l343).':343C '/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-consensus/src/transaction.rs#l989-l1098).':307C '/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-script/src/lib.rs#l160-l175),':339C '2c63e9aa08cb170b0feb374161bea94720c3e1f5':185C 'a905fa19e3a91c7b4ead331e2709e6dec5db12cb':187C 'accept':156C 'add':324C 'admiss':432C 'advisori':222C 'analysi':183C 'anyonecanpay':262C 'ask':315C 'attack':395C 'base':296C 'behavior':199C,220C 'block':146C,171C,236C,302C 'block-valid':145C 'branch':252C 'bundle.vout.len':360C 'canon':346C 'case':136C,407C 'catch':273C 'caus':279C 'check':238C,331C,445C 'checksig':241C,272C 'claim':212C 'code':179C,362C 'comput':128C,401C 'consensus':98C,117C 'consensus-invalid':116C 'convert':309C 'correspond':80C,110C,327C 'corresponding-output':79C,326C 'cover':224C 'decod':311C 'detail':177C 'digest':130C,322C,398C,421C 'direct':144C 'disagre':94C 'diverg':83C 'earlier':190C 'enforc':334C 'engin':319C 'error':369C 'except':275C 'execut':203C 'explicit':254C 'exploit':383C 'fail':103C,139C,284C,424C,446C 'fals':278C 'fewer':389C 'ffi':295C 'ffi-bas':294C 'first':335C,425C,448C 'forward':345C 'getblocktempl':167C 'github.com':246C,270C,306C,338C,342C,373C,378C,451C,455C 'github.com/zcash/librustzcash/blob/c3425f9c3c7f6deb20720bb78b18f35fbbed8edd/zcash_primitives/src/transaction/sighash_v5.rs#l101-l107),':372C 'github.com/zcash/librustzcash/blob/c3425f9c3c7f6deb20720bb78b18f35fbbed8edd/zcash_primitives/src/transaction/sighash_v5.rs#l131-l139).':377C 'github.com/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/main.cpp#l1981-l1995),':450C 'github.com/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#l1221-l1259).':269C,454C 'github.com/zcash/zcash/blob/2c63e9aa08cb170b0feb374161bea94720c3e1f5/src/script/interpreter.cpp#l1386-l1407).':245C 'github.com/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-chain/src/primitives/zcash_primitives.rs#l307-l343).':341C 'github.com/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-consensus/src/transaction.rs#l989-l1098).':305C 'github.com/zcashfoundation/zebra/blob/a905fa19e3a91c7b4ead331e2709e6dec5db12cb/zebra-script/src/lib.rs#l160-l175),':337C 'group':193C 'handl':82C 'hash':312C,366C 'implement':354C,357C 'index':107C 'input':106C,289C,393C 'input.index':359C 'instead':137C,367C 'invalid':118C 'malform':150C,385C 'materi':192C 'mempool':163C,431C 'mine':168C 'miss':134C,405C 'missing-output':133C,404C 'must':102C 'need':388C 'never':417C 'nin':266C 'note':189C 'ordinari':426C,430C 'output':81C,111C,135C,328C,365C,391C,406C 'path':127C,427C,438C 'pin':206C 'practic':436C 'pre':195C,214C,330C 'pre-check':329C 'pre-v5':194C,213C 'primitives/src/transaction/sighash_v5.rs':371C,376C 're':202C 're-execut':201C 'reach':418C 'reject':174C,218C 'reject-sid':217C 'reproduc':210C 'result':141C 'retain':159C 'return':277C 'revis':180C,207C 'rout':290C 'rule':99C 'rust':317C,351C 'scope':188C 'script':234C,282C,298C 'see':410C 'select':164C 'side':219C,232C,286C 'sighash':77C,100C,257C,260C,318C,347C 'sign':396C 'signatur':414C 'signaturehash':243C,253C,444C 'singl':78C,101C,258C,261C,348C 'spend':90C 'split':148C 'summari':86C 'therefor':223C 'throw':255C 'togeth':200C 'transact':153C,386C 'transactionsignaturecheck':240C 'transpar':76C,89C,125C,152C,233C,281C,288C,297C,364C,390C,413C 'treat':113C 'triag':191C 'trigger':437C 'txto.vout.size':267C 'type':313C 'use':181C,264C,300C,363C 'v4':216C 'v5':88C,151C,196C,198C,215C,226C,287C 'valid':147C,178C,303C,412C 'variant':229C 'verif':126C 'verifi':299C 'viabil':428C 'without':323C 'zcash':370C,375C 'zcash/src/main.cpp':449C 'zcash/src/script/interpreter.cpp':244C,268C,453C 'zcashd':85C,93C,112C,176C,184C,231C,333C,416C,429C 'zebra':75C,91C,123C,158C,161C,166C,186C,285C,308C,344C,400C,408C 'zebra/zebra-chain/src/primitives/zcash_primitives.rs':340C 'zebra/zebra-consensus/src/transaction.rs':304C 'zebra/zebra-script/src/lib.rs':336C 'zip':120C,227C,250C,352C,442C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-05-07T21:02:30+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-cwfq-rfcr-8hmp","url":"https://github.com/advisories/GHSA-cwfq-rfcr-8hmp","severity":"critical","published_at":"2026-05-07T21:02:30+00:00","modified_at":"2026-11-13T02:44:10+00:00","first_seen_at":"2026-11-13T02:48:40+00:00","fetched_at":"2026-11-13T02:48:40+00:00","note":null}],"documents":[{"id":142078,"url":"https://api.github.com/repos/ZcashFoundation/zebra/security-advisories/GHSA-cwfq-rfcr-8hmp","title":"Maintainer's advisory: api.github.com","kind":"vendor","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Maintainer's advisory: api.github.com"},{"id":142079,"url":"https://github.com/ZcashFoundation/zebra/security/advisories/GHSA-cwfq-rfcr-8hmp","title":"Maintainer's advisory: github.com","kind":"vendor","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Maintainer's advisory: github.com"},{"id":142077,"url":"https://github.com/ZcashFoundation/zebra/releases/tag/v4.4.0","title":"Release: github.com","kind":"release","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release: github.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}