Other chain and infrastructure vulnerabilities in disclosed reports

Wallets, node software, exchange infrastructure and chains outside the four major virtual machine families.

Reports indexed
57
Total paid
$2k
Critical
0
Largest payout
$2k

Not every crypto disclosure is a contract bug. Wallet key handling, transaction-signing UX that misrepresents what is being approved, node RPC exposure, and exchange-side account and withdrawal logic all sit here — and the payouts are frequently larger than contract findings because the blast radius is custodial.

This bucket also holds chains and runtimes outside the main four: UTXO chains, privacy chains, and purpose-built L1s whose failure modes do not map onto the EVM vocabulary.

Because the surface is heterogeneous, the vulnerability category filter is the more useful lens on these reports than the chain filter alone.

What reviewers look for

  • Key material reachable from a lower-trust process or an unencrypted store
  • Signing prompts that misrepresent the transaction being authorised
  • Node RPC methods exposed without authentication
  • Withdrawal and account-recovery logic on custodial infrastructure
  • Consensus or mempool behaviour specific to a non-EVM runtime

Curated highlights

The largest disclosed payouts in this group, with our own summary of each. Every report links back to the original disclosure.

highLogic errorOther$2k

Docker Secret Disclosure via GitHub Actions Cache Poisoning

A GitHub Actions cache poisoning vulnerability was identified in the Hyperledger repository infrastructure. The flaw allowed unauthorized actors to modify shared build cache keys and execute arbitrary code within CI/CD pipeline steps. When downstream workflows restored the manipulated cache, sensitive Docker credentials stored in environment variables were exposed. This allowed attackers to extract critical pipeline secrets without requiring write permissions to the underlying repository.

hyperledgerhackeroneApr 20, 2024Open
mediumLogic errorOther$100

Window.opener bug at www.coinbase.com

A web application link on www.coinbase.com opened external URLs using target="_blank" without setting the rel="noopener" or rel="noreferrer" security attributes. This allowed the newly opened destination window to access and manipulate the parent tab through the JavaScript window.opener reference. An attacker controlling the external target site could leverage this access to redirect the user's active Coinbase tab to a malicious external URL or phishing page. Coinbase rewarded the finding with a $100 bounty.

coinbasehackeroneNov 28, 2016Open
mediumLogic errorOther$0

Metric: A permissionless swapper will extract principal from exact-share liquidity providers

Metric's exact-input in-bin swap functions (buyToken0InBinSpecifiedIn and buyToken1InBinSpecifiedIn) round a small expected output to zero while still advancing the active-bin cursor to the attacker-chosen target position, leaving both bin reserves and fee accumulators unchanged. A permissionless attacker can batch hundreds of these zero-input, zero-output swaps to desynchronize the cursor from reserves, let an exact-share LP deposit at a reserve-based price, and then trade back through the artificially created interval at the real oracle midpoint to extract the victim's principal. The PoC demonstrates a LP principal loss of roughly $33 (3.31 bps on a ~$99,900 deposit) with a matching attacker profit, all at an unchanged honest oracle quote.

MetricsherlockJul 27, 2026Open
mediumOracle manipulationOther$0

Brevis Pico ZKVM: Malicious verifier will recover private witness values breaking zero-knowledge property

Brevis Pico, a privacy-preserving zkVM, relies on a fork of the gnark proving library (v0.1.0) that carries CVE-2024-45040: the Groth16 proving system emits Pedersen commitments without blinding factors. Because the BabyBear, KoalaBear, and verifier circuits invoke RangeChecker.Check() (which internally uses these unblinded commitments) whenever the GROTH16 environment variable is not set to 1 — the production default — a verifier who holds a proof can brute-force low-entropy private witnesses by regenerating commitments over candidate values and matching them. The accompanying Go PoC demonstrates recovery of a 10-bit secret from a proof commitment. This directly violates the zero-knowledge privacy guarantee the zkVM advertises, exposing program traces, memory access patterns, and confidential inputs such as keys or merkle leaves. The protocol team acknowledged the finding and fixed it in pull request #61, with the recommended mitigation being an upgrade to gnark 0.11.0.

Brevis Pico ZKVMsherlockSep 29, 2025Open
mediumInteger overflow/underflowOther$0

Brevis Pico ZKVM: Missing `offset` check will cause integer overflow violating ELF specification

The Brevis Pico ZKVM's ELF disassembler, in the `Elf::new()` constructor, computed file offsets for segment loading with an unchecked u32 addition (`offset + i + j`) before casting to usize. Because the addition happens in u32 space, a crafted RISC-V ELF carrying a PT_LOAD segment whose p_offset sits near u32::MAX and whose mem_size drives the loop counters can make the sum wrap around to a small value. The wrapping neither panics nor returns an error, so the code proceeds to read `source_code` at the wrong offset, either out of bounds or from an unintended location. This breaks the guarantee that `Elf::new()` only accepts well-formed ELF binaries, corrupting downstream prover behavior. The protocol team fixed it by switching to checked arithmetic that surfaces an error on overflow, acknowledged in pull request 61.

Brevis Pico ZKVMsherlockSep 29, 2025Open
highLogic errorOther$0

Brevis Pico ZKVM: `operand_to_check` is not constrained to be a valid word in `eval_ecall`

Brevis Pico, a ZKVM that executes RISC-V guest programs, has a soundness gap in its environment-call path. The FieldWordRangeChecker assumes the argument `operand_to_check` is a valid word, but the `eval_ecall` constraints never constrain that operand to be well-formed, and unlike other chips it is not routed through the ALU lookup that would validate it. A malicious prover can witness invalid limbs — top limb equal to `most_sig_byte_decomp` and limb sum zero — and pass them to any non-halt, non-commit ecall. This lets ecalls accept words that are not genuine u8 words and, because host programs may use ecalls to call SP1 precompiles, the prover can shape ecall behavior and break the ZKVM's soundness guarantees.

Brevis Pico ZKVMsherlockSep 29, 2025Open

All reports in this group

Vulnerability classes seen on this chain

Related chain / vm pages