Dependency Risk & Advisory Tracking PlanΒΆ
Status: Living document
Owner: BenoStreamDB core
Initial tracking plan: 2026-10-02 (
6213bcdc)Last verified: 2026-11-10 (v0.15.1)
Companion config:
deny.toml(cargo-deny),audit.toml(cargo-audit)
This document is the tracking plan for dependency advisories we have
reviewed and accepted (or resolved). It keeps the allow-lists in
deny.toml / audit.toml from silently going stale: every advisory has a
named owner, initial review date, last verified date, reachability assessment,
migration path, and resolution record once cleared.
PolicyΒΆ
cargo deny checkruns on CI and pre-push gates (.github/workflows/ci.yml,.github/workflows/pr-security-review.yml, andscripts/pre_release_check.sh). Any new advisory in the active dependency graph fails the build unless it is resolved or documented here and allow-listed indeny.toml(mirrored inaudit.toml).Every ignored advisory must have a dated entry below with: ID, crate + version, dependency chain, reachability, migration path,
Initial reviewdate,Last verifieddate, andNext review.Review cadence: every release, and at least monthly. Re-run
cargo tree --all-features -i <crate>to confirm the chain still holds.Prefer removal over acceptance. If the crate is a direct dependency, the default is to replace it; acceptance is for transitive deps we cannot remove without forking an upstream or breaking on-disk format compatibility.
βUnmaintainedβ β βvulnerableβ. RUSTSEC flags unmaintained crates so we can plan a migration; it is a maintenance risk, not an exploit.
Keep resolved history. When an advisory is fixed or pruned from
deny.toml, move it to Resolved Advisories with the resolution date and commit SHA rather than deleting the audit trail.
Accepted Advisories (Active)ΒΆ
RUSTSEC-2025-0141 β bincode is unmaintainedΒΆ
Field |
Value |
|---|---|
Crate / version |
|
Kind |
Unmaintained (not a vulnerability) |
Initial review |
2026-09-29 ( |
Last verified |
2026-11-10 |
Chain |
Direct dependency of |
Reachability |
Runtime, but only for internal HNSW point-vector dump/load. The bytes are reconstructible Puffin index sidecars authored by the engine itself, not untrusted input. |
Migration path |
Replace with a maintained serializer ( |
Status |
Accepted, tracked. |
Next review |
Next format-version bump or v0.16.x; re-check maintained serializers. |
RUSTSEC-2026-0346 / RUSTSEC-2026-0349 β rustls 0.21.12 (EOL)ΒΆ
Field |
Value |
|---|---|
Crate / version |
|
Kind |
Vulnerability (low practical impact in this configuration) |
Initial review |
2026-10-14 ( |
Partial resolution |
2026-10-14 ( |
Last verified |
2026-11-10 |
Chain |
Transitive: |
Reachability |
Only the AWS SDKβs legacy HTTPS client. Both advisories require, respectively, a custom |
Migration path |
Track |
Status |
Accepted (upstream-blocked). |
Next review |
Each release; re-run |
RUSTSEC-2026-0382 (and -0098 / -0099 / -0104) β rustls-webpki 0.101.7 & webpki-roots 0.26.11ΒΆ
Field |
Value |
|---|---|
Crate / version |
|
Kind |
Vulnerability (certificate path validation, name constraints, CRL panic) |
Initial review |
2026-09-24 ( |
Partial resolution |
2026-10-20 ( |
Last verified |
2026-11-10 |
Chain |
|
Reachability |
Only legacy TLS clients of upstream crates ( |
Migration path |
Track |
Status |
Accepted (upstream-blocked). |
Next review |
Each release; re-run |
RUSTSEC-2024-0436 β paste is unmaintainedΒΆ
Field |
Value |
|---|---|
Crate / version |
|
Kind |
Unmaintained (not a vulnerability) |
Initial review |
2026-09-24 ( |
Last verified |
2026-11-10 |
Chain |
Transitive via |
Reachability |
Compile-time only β |
Migration path |
Upstream-owned by Apache DataFusion. Track DataFusion releases for a move to |
Status |
Accepted, tracked. |
Next review |
Next DataFusion upgrade; re-run |
RUSTSEC-2026-0391 / -0398 / -0403 β zstd 0.13.3 and zstd-safe 7.2.4ΒΆ
Field |
Value |
|---|---|
Crate / version |
|
Kind |
Vulnerability (memory disclosure / UB) |
Initial review |
2026-10-27 ( |
Partial resolution |
2026-10-27 ( |
Last verified |
2026-11-10 |
Chain |
Transitive: |
Reachability |
Not reachable in this configuration. |
Fix status |
Blocked upstream on the Apache Arrow 57 / DataFusion 52 stack (no |
Migration path |
Upgrade the data stack to |
Status |
Accepted (unreachable, upstream-blocked). |
Next review |
Next Arrow / DataFusion major upgrade; re-run |
RUSTSEC-2026-0435 β thrift 0.17.0 unbounded memory allocationΒΆ
Field |
Value |
|---|---|
Crate / version |
|
Kind |
Vulnerability (unbounded allocation in binary protocol |
Initial review |
2026-11-08 ( |
Last verified |
2026-11-10 |
Chain |
Transitive: |
Reachability |
Reachable only when decoding Parquet Thrift file footers/metadata. Segment Parquet files live inside trusted Iceberg table storage authored by authenticated writers/engines, not arbitrary untrusted Thrift network streams. |
Fix status |
Blocked upstream by |
Migration path |
Track Arrow ( |
Status |
Accepted (upstream-blocked). |
Next review |
Next Arrow / DataFusion major upgrade; re-run |
RUSTSEC-2026-0459 β libsqlite3-sys 0.30.1 (CVE-2026-119375)ΒΆ
Field |
Value |
|---|---|
Crate / version |
|
Kind |
Vulnerability (uninitialized page-cache memory in SQLite |
Initial review |
2026-11-09 ( |
Last verified |
2026-11-10 |
Chain |
Transitive: |
Reachability |
Not reachable on adversarial inputs. Exploitation requires opening an untrusted external SQLite database + |
Fix status |
Blocked upstream: |
Migration path |
Upgrade |
Status |
Accepted (unreachable on untrusted inputs). |
Next review |
Next |
Other Allow-Listed Advisories (Active)ΒΆ
These transitive advisories remain in deny.toml and audit.toml with no reachable attack surface in supported server/library paths:
ID |
Crate / Version |
Chain & Reachability |
Initial Review |
Last Verified |
|---|---|---|---|---|
|
|
Unbounded empty |
2026-09-24 ( |
2026-11-10 |
|
|
|
2026-09-24 ( |
2026-11-10 |
|
|
Transitive via |
2026-09-24 ( |
2026-11-10 |
|
|
Enabled under |
2026-09-24 ( |
2026-11-10 |
|
|
Unsoundness in |
2026-09-24 ( |
2026-11-10 |
|
|
Transitive via |
2026-09-24 ( |
2026-11-10 |
|
|
Transitive via |
2026-09-24 ( |
2026-11-10 |
Resolved AdvisoriesΒΆ
Historical advisories that were remediated or cleared from the active dependency graph:
ID |
Crate |
Initial Review |
Resolved |
Resolution Summary & Commit |
|---|---|---|---|---|
|
|
2026-09-24 ( |
2026-10-14 |
No longer triggered in active graph; pruned from |
|
|
2026-10-14 ( |
2026-10-14 |
Bumped |
|
|
2026-10-20 ( |
2026-10-23 |
Cleared after lockfile resolution ( |
|
|
2026-10-23 ( |
2026-10-23 |
Updated |
|
|
2026-10-27 ( |
2026-10-27 |
Bumped |
|
|
2026-09-24 ( |
2026-10-14 |
Upgraded to |
|
|
2026-09-24 ( |
2026-10-14 |
Absent from compiled feature graph ( |
How to Add or Resolve an EntryΒΆ
Run
cargo deny check advisoriesandcargo tree --all-features -i <crate>to get the exact advisory ID, crate version, and dependency chain.Add the ID to
deny.tomlandaudit.tomlwith a concise inline rationale.Add a dated entry to this document recording Initial review, Last verified, reachability, and migration path.
When a fix lands, remove the ID from
deny.toml/audit.tomland move it to Resolved Advisories with the resolution date and commit SHA.