# cargo-deny v2 configuration for Pezkuwi SDK # https://embarkstudios.github.io/cargo-deny/ [graph] targets = [ { triple = "wasm32-unknown-unknown" }, { triple = "x86_64-unknown-linux-gnu" }, { triple = "x86_64-unknown-linux-musl" }, ] # Exclude no_std test runtime crates that cause krates crate to panic # with "unable to locate std" when resolving the dependency graph. exclude = ["bizinikiwi-test-runtime-transaction-pool"] # Advisory database - check for known vulnerabilities # In v2: all vulnerability/unsound/notice advisories automatically emit errors. # Use `ignore` to suppress specific advisories. [advisories] yanked = "warn" # All unmaintained crates are transitive upstream dependencies we cannot replace. # Track via quarterly review instead of blocking CI. unmaintained = "none" ignore = [ # wasmtime 37.0.3: fix requires 42.0.2 but cranelift-assembler-x64 0.129+ needs # rustc 1.91.0 — our toolchain is pinned to 1.88.0. Unblock by upgrading toolchain. # Note: we do NOT use Winch backend or Component Model, so sandbox-escape CVEs # (Winch/aarch64) and string-transcoding CVEs (Component Model) do not apply. # Remaining real risk: pooling allocator data leakage (RUSTSEC-2026-0006). "RUSTSEC-2026-0006", # wasmtime segfault with f64.copysign on x86-64 "RUSTSEC-2026-0020", # wasmtime WASI guest-controlled resource exhaustion "RUSTSEC-2026-0021", # wasmtime panic in wasi:http/types.fields # rsa 0.9.10: Marvin Attack timing sidechannel. Pulled transitively by # sqlx-mysql (pezpallet-revive-eth-rpc). Not used for cryptographic signing. "RUSTSEC-2023-0071", # rsa Marvin Attack # tracing-subscriber 0.2.25: ANSI log injection. Pulled by ark-relations 0.5.1. # Our 0.3.x is updated to 0.3.23 (fixed). 0.2.x used only by arkworks internals. "RUSTSEC-2025-0055", # tracing-subscriber ANSI escape (0.2.x, arkworks transitive) # yamux 0.12.1: libp2p-yamux 0.47.0 (vendor/pezkuwi-zombienet-sdk) pins to 0.12.x. # Fix requires 0.13.10. Upgrade path: update libp2p in zombienet vendor. "RUSTSEC-2024-0428", # yamux remote panic via malformed Data frame (< 0.13.10) ] # License compliance # In v2: all licenses are denied unless explicitly allowed. # Removed v1 fields: unlicensed, deny, copyleft, allow-osi-fsf-free, default [licenses] confidence-threshold = 0.8 allow = [ "Apache-2.0 WITH LLVM-exception", "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "BSL-1.0", "CC0-1.0", "CDLA-Permissive-2.0", "GPL-3.0-only WITH Classpath-exception-2.0", "GPL-3.0-only", "GPL-3.0-or-later WITH Classpath-exception-2.0", "GPL-3.0-or-later", "ISC", "MIT", "MIT-0", "MPL-2.0", "NCSA", "OpenSSL", "Unicode-3.0", "Unicode-DFS-2016", "Unlicense", "Zlib", ] exceptions = [ # ring uses a custom ISC-style license { allow = ["OpenSSL"], name = "ring" }, ] [licenses.private] ignore = true # Banned crates and duplicate version detection [bans] multiple-versions = "warn" wildcards = "allow" highlight = "simplest-path" deny = [] skip = [] skip-tree = [] # Source origin checks [sources] unknown-registry = "warn" unknown-git = "warn" allow-registry = ["https://github.com/rust-lang/crates.io-index"] allow-git = []