RUSTSEC-2026-0119 (hickory-proto O(n²) name-compression DoS) and RUSTSEC-2026-0120 (hickory-net NSEC3 unbounded loop / OOM) both fire against hickory 0.26.0-beta.4. Fixed upstream in hickory 0.26.1, but iroh 0.98.2 hard-pins hickory-resolver = "=0.26.0-beta.4" so we can't bump transitively. Unblock once iroh releases a version that relaxes the pin.
82 lines
3.0 KiB
TOML
82 lines
3.0 KiB
TOML
# cargo-deny configuration.
|
|
# https://embarkstudios.github.io/cargo-deny/
|
|
|
|
[graph]
|
|
targets = [
|
|
{ triple = "x86_64-unknown-linux-gnu" },
|
|
{ triple = "x86_64-apple-darwin" },
|
|
{ triple = "aarch64-apple-darwin" },
|
|
{ triple = "x86_64-pc-windows-msvc" },
|
|
]
|
|
all-features = true
|
|
|
|
# ── Advisories (RUSTSEC) ───────────────────────────────────────────
|
|
|
|
[advisories]
|
|
version = 2
|
|
yanked = "deny"
|
|
# Allow transitive advisories that come via iroh's dep graph and can't be
|
|
# fixed downstream. Re-evaluate on each iroh bump.
|
|
# Note: cargo-audit does NOT read this file — mirror any vulnerability-class
|
|
# entries below into the `cargo audit --ignore …` flag list in ci.yml.
|
|
ignore = [
|
|
# paste — no longer maintained. Pulled in via iroh → portmapper → netwatch
|
|
# → netlink-packet-core. No direct dep; stuck until iroh migrates.
|
|
"RUSTSEC-2024-0436",
|
|
# hickory-proto 0.26.0-beta.4 — CPU exhaustion via O(n²) name compression
|
|
# during message encoding. Transitive via iroh → hickory-resolver
|
|
# (=0.26.0-beta.4, hard-pinned). Fixed in hickory 0.26.1; unblock when
|
|
# iroh releases a version that bumps the pin.
|
|
"RUSTSEC-2026-0119",
|
|
# hickory-net 0.26.0-beta.4 — NSEC3 closest-encloser proof enters an
|
|
# unbounded loop on cross-zone responses (OOM in release builds; panic
|
|
# in debug). Same transitive path and same iroh pin as RUSTSEC-2026-0119.
|
|
"RUSTSEC-2026-0120",
|
|
]
|
|
|
|
# ── Licenses ───────────────────────────────────────────────────────
|
|
|
|
[licenses]
|
|
version = 2
|
|
# MIT + Apache-2.0 + BSD-3-Clause + Unicode are the usual Rust-ecosystem set.
|
|
# MPL-2.0 allowed (used by encoding_rs / webpki-roots transitively).
|
|
# CDLA-Permissive-2.0 allowed (webpki-roots certs bundle).
|
|
allow = [
|
|
"MIT",
|
|
"Apache-2.0",
|
|
"Apache-2.0 WITH LLVM-exception",
|
|
"BSD-2-Clause",
|
|
"BSD-3-Clause",
|
|
"ISC",
|
|
"Unicode-3.0",
|
|
"Unicode-DFS-2016",
|
|
"Zlib",
|
|
"MPL-2.0",
|
|
"CDLA-Permissive-2.0",
|
|
"CC0-1.0",
|
|
"0BSD",
|
|
]
|
|
# Reject GPL/AGPL/SSPL on the whole tree.
|
|
confidence-threshold = 0.93
|
|
|
|
# ── Bans ───────────────────────────────────────────────────────────
|
|
|
|
[bans]
|
|
multiple-versions = "warn"
|
|
wildcards = "deny"
|
|
highlight = "all"
|
|
# Explicit allows for known good duplicates (iroh's dep graph has a few).
|
|
allow = []
|
|
deny = []
|
|
# Accept some duplicate crate versions common in the iroh + tokio ecosystems.
|
|
skip = []
|
|
skip-tree = []
|
|
|
|
# ── Sources ────────────────────────────────────────────────────────
|
|
|
|
[sources]
|
|
unknown-registry = "deny"
|
|
unknown-git = "deny"
|
|
allow-git = []
|
|
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
|