mirror of
https://github.com/block/buzz.git
synced 2026-10-27 20:41:57 +00:00
🤖 Removes the whole-crate `[graph] exclude = ["buzz-mesh-smoke"]` from `deny.toml`, so the root `cargo-deny` check covers `buzz-mesh-smoke` and its `mesh-llm` dependency again. The advisories that crate brings in are ignored one ID at a time instead, each naming its dependency path and when to remove it: - `RUSTSEC-2026-0367` / `0368` / `0369` — `zip` 8.6.0 extraction bugs via `buzz-mesh-smoke` → `mesh-llm` v0.76.2. `mesh-llm` copies entries manually and never calls `ZipArchive::extract`. Remove on the `mesh-llm` release that ships Mesh-LLM/mesh-llm#2471. - `RUSTSEC-2026-0370` / `0371` / `0372` — unmaintained (not vulnerable) `zvariant`, `zbus_names`, `zvariant_derive` via `mesh-llm` → `keyring` 4 → `secret-service` 5 → `zbus` 5. Remove when that stack leaves `zbus` 5. Any new advisory under `mesh-llm` now fails CI instead of being silently excluded. No workflow or lockfile changes; the old beta desktop crate in `desktop/` is not checked. Signed-off-by: Will Pfleger <pfleger.will@gmail.com> Co-authored-by: Hayt <211b96e6a2b7f45fd4047988976c7bbbeeda0c15f3ae7b32eec20834b5a55118@buzz.block.builderlab.xyz>
124 lines
6.1 KiB
TOML
124 lines
6.1 KiB
TOML
[advisories]
|
|
ignore = [
|
|
# instant 0.1.13 — unmaintained crate. Transitive dep: nostr → instant.
|
|
# Will be resolved when nostr crate updates its dependencies.
|
|
{ id = "RUSTSEC-2024-0384", reason = "transitive dep via nostr; no upstream fix available" },
|
|
# paste 1.0.15 — unmaintained. Transitive dep: mesh-llm → iroh → netlink-* → paste.
|
|
# No safe upgrade available; tracked for upstream (iroh/netlink) replacement.
|
|
{ id = "RUSTSEC-2024-0436", reason = "transitive dep via mesh-llm → iroh → netlink; no upstream fix available" },
|
|
# quick-xml < 0.41: quadratic runtime on duplicate-attribute check (0194) and
|
|
# unbounded namespace-declaration allocation in NsReader (0195). Both DoS-class,
|
|
# requiring attacker-controlled XML. Our two locked versions only parse trusted
|
|
# input: 0.38.4 (rust-s3/aws-creds — responses from our own S3/MinIO endpoint)
|
|
# and 0.39.4 (mesh-llm → iroh → netdev → plist — local macOS system plists).
|
|
# Patched release (>= 0.41.0) is unreachable until rust-s3 and plist/netdev bump;
|
|
# remove these when upstream catches up.
|
|
{ id = "RUSTSEC-2026-0194", reason = "transitive via rust-s3 and mesh-llm→plist; trusted-input XML only; no upstream fix available yet" },
|
|
{ id = "RUSTSEC-2026-0195", reason = "transitive via rust-s3 and mesh-llm→plist; trusted-input XML only; no upstream fix available yet" },
|
|
# unsafe-libyaml 0.2.11 — unmaintained (repository archived 2024-03-25), not a
|
|
# vulnerability report. Transitive dep: serde_yaml → unsafe-libyaml. The serde_yaml_ng
|
|
# fork uses the same crate, so removing it means migrating YAML parsing in
|
|
# buzz-agent, buzz-persona, buzz-relay, buzz-workflow and desktop.
|
|
{ id = "RUSTSEC-2024-0449", reason = "transitive via serde_yaml; unmaintained, not vulnerable; removal needs a YAML parser migration" },
|
|
# NetEQ =0.8.3 declares ringbuf but its published Rust sources never use it,
|
|
# so Consumer::skip/clear and their panic-unsafe Drop path are unreachable.
|
|
# NetEQ 0.9.1 still declares ringbuf 0.3; ringbuf itself is fixed in 0.5.2.
|
|
# Keep the exact NetEQ pin and the wrapper ban below together. Re-audit or
|
|
# remove this exception when NetEQ removes/updates the unused dependency.
|
|
{ id = "RUSTSEC-2026-0293", reason = "unused dependency of audited, exactly pinned neteq 0.8.3; no Rust references to ringbuf; other consumers forbidden by bans.deny" },
|
|
# zip 8.6.0 < 9: extraction keeps setuid/setgid bits (0367), creates
|
|
# symlinks that escape the destination (0368) and applies permissions through
|
|
# symlinks (0369). Only path: buzz-mesh-smoke → mesh-llm v0.76.2 →
|
|
# mesh-llm-host-runtime / mesh-llm-plugin-manager / mesh-llm-system → zip 8.
|
|
# mesh-llm's zip readers copy entries manually and never call
|
|
# ZipArchive::extract; recheck if that changes. Remove on the mesh-llm bump
|
|
# that ships Mesh-LLM/mesh-llm#2471.
|
|
{ id = "RUSTSEC-2026-0367", reason = "zip 8.6.0 via buzz-mesh-smoke → mesh-llm v0.76.2; manual entry copy, never extracts; fix in unreleased mesh-llm#2471" },
|
|
{ id = "RUSTSEC-2026-0368", reason = "zip 8.6.0 via buzz-mesh-smoke → mesh-llm v0.76.2; manual entry copy, never extracts; fix in unreleased mesh-llm#2471" },
|
|
{ id = "RUSTSEC-2026-0369", reason = "zip 8.6.0 via buzz-mesh-smoke → mesh-llm v0.76.2; manual entry copy, never extracts; fix in unreleased mesh-llm#2471" },
|
|
# zbus 5 D-Bus crates (zvariant, zbus_names, zvariant_derive) — unmaintained,
|
|
# not vulnerable. Only path: buzz-mesh-smoke → mesh-llm → keyring 4 →
|
|
# zbus-secret-service-keyring-store / secret-service 5 → zbus 5.
|
|
# Remove when mesh-llm's keyring stack moves off zbus 5.
|
|
{ id = "RUSTSEC-2026-0370", reason = "zvariant via buzz-mesh-smoke → mesh-llm → keyring 4 → secret-service 5 → zbus 5; unmaintained, not vulnerable" },
|
|
{ id = "RUSTSEC-2026-0371", reason = "zbus_names via buzz-mesh-smoke → mesh-llm → keyring 4 → secret-service 5 → zbus 5; unmaintained, not vulnerable" },
|
|
{ id = "RUSTSEC-2026-0372", reason = "zvariant_derive via buzz-mesh-smoke → mesh-llm → keyring 4 → secret-service 5 → zbus 5; unmaintained, not vulnerable" },
|
|
]
|
|
|
|
[licenses]
|
|
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",
|
|
"OpenSSL",
|
|
"CC0-1.0",
|
|
"CDLA-Permissive-2.0",
|
|
"MITNFA",
|
|
"MPL-2.0",
|
|
"BSL-1.0",
|
|
"Unlicense",
|
|
# minicbor's permissive, OSI-approved license. Used for strict App Attest
|
|
# assertion CBOR parsing and also transitively by appattest.
|
|
"BlueOak-1.0.0",
|
|
# bzip2/libbzip2's permissive BSD-like license. New via desktop zip/bzip2
|
|
# transitive deps; compatible with Apache-2.0 distribution.
|
|
"bzip2-1.0.6",
|
|
]
|
|
confidence-threshold = 0.8
|
|
|
|
# mesh-llm workspace crates (pinned git dep) omit a per-crate `license` field in
|
|
# their manifests, so cargo-deny reports them as unlicensed. The mesh-llm repo is
|
|
# licensed "MIT OR Apache-2.0" (workspace Cargo.toml + top-level LICENSE = Apache-2.0);
|
|
# clarify each pulled-in member to that expression. Remove once mesh sets the field
|
|
# upstream (filed).
|
|
[[licenses.clarify]]
|
|
crate = "mesh-llm-config"
|
|
expression = "MIT OR Apache-2.0"
|
|
license-files = []
|
|
|
|
[[licenses.clarify]]
|
|
crate = "mesh-llm-gpu-bench"
|
|
expression = "MIT OR Apache-2.0"
|
|
license-files = []
|
|
|
|
[[licenses.clarify]]
|
|
crate = "mesh-llm-host-runtime"
|
|
expression = "MIT OR Apache-2.0"
|
|
license-files = []
|
|
|
|
[[licenses.clarify]]
|
|
crate = "mesh-llm-plugin"
|
|
expression = "MIT OR Apache-2.0"
|
|
license-files = []
|
|
|
|
[[licenses.clarify]]
|
|
crate = "mesh-llm-system"
|
|
expression = "MIT OR Apache-2.0"
|
|
license-files = []
|
|
|
|
[[licenses.clarify]]
|
|
crate = "mesh-mixture-of-agents"
|
|
expression = "MIT OR Apache-2.0"
|
|
license-files = []
|
|
|
|
[[licenses.clarify]]
|
|
crate = "buzz-desktop"
|
|
expression = "Apache-2.0"
|
|
license-files = []
|
|
|
|
[licenses.private]
|
|
ignore = true
|
|
|
|
[bans]
|
|
multiple-versions = "warn"
|
|
wildcards = "allow"
|
|
deny = [
|
|
{ name = "ringbuf", version = "<0.5.2", wrappers = ["neteq"], reason = "only audited NetEQ may declare this unused vulnerable dependency; all other consumers must use a patched release" },
|
|
]
|