Skip to content

fix(supply-chain): trust protobuf-forensic-core as ours instead of exempting it - #5

Merged
h4x0r merged 2 commits into
mainfrom
fix/vet-trust-our-crates
Aug 7, 2026
Merged

fix(supply-chain): trust protobuf-forensic-core as ours instead of exempting it#5
h4x0r merged 2 commits into
mainfrom
fix/vet-trust-our-crates

Conversation

@h4x0r

@h4x0r h4x0r commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

ADR-0018 ranks the four cargo-vet mechanisms and states that reaching for a
weaker one is a defect. These crates are ours, consumed from crates.io, so
case 2 applies: a publisher-trust entry under h4x0r (user-id 347968), not an
exemption.

The distinction is semantic, not cosmetic. An exemption asserts "unreviewed,
accepted anyway"; a trust entry asserts "the publisher is ours". Recording our
own crates as unreviewed-but-tolerated misstated the supply-chain posture in
the direction of false comfort. A trust entry is also version-agnostic, so it
does not go stale on the next bump the way a pinned exemption does.

Exemption -> trust:

  • protobuf-forensic-core

Verified (config change, so the vet run is the test):

Vetting Succeeded (13 fully audited, 53 exempted)

🤖 Generated with Claude Code

…empting it

ADR-0018 ranks the four cargo-vet mechanisms and states that reaching for a
weaker one is a defect. These crates are ours, consumed from crates.io, so
case 2 applies: a publisher-trust entry under h4x0r (user-id 347968), not an
exemption.

The distinction is semantic, not cosmetic. An exemption asserts "unreviewed,
accepted anyway"; a trust entry asserts "the publisher is ours". Recording our
own crates as unreviewed-but-tolerated misstated the supply-chain posture in
the direction of false comfort. A trust entry is also version-agnostic, so it
does not go stale on the next bump the way a pinned exemption does.

Exemption -> trust:
  - protobuf-forensic-core

Verified (config change, so the vet run is the test):

    Vetting Succeeded (13 fully audited, 53 exempted)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@h4x0r
h4x0r force-pushed the fix/vet-trust-our-crates branch from 2a160c8 to 754f908 Compare August 5, 2026 18:50
The `freshness` job is literally `cargo update --locked`: it fails when the
committed lockfile trails what the manifests already permit. It was failing
for exactly that reason -- the lock was three releases behind:

  clap          4.6.4 -> 4.6.6
  clap_builder  4.6.2 -> 4.6.6
  time          0.3.54 -> 0.3.55

Refreshed the lock and re-stated the cargo-vet exemptions for the three moved
versions. This is bookkeeping, not a supply-chain decision: an exemption
asserts "nobody audited this", which is equally true before and after a
version bump. Verified the crate NAME set did not grow -- no dependency that
was not already shipping is now shipping (indexmap dropped out; nothing new
entered).

Verification, all on this branch:
  cargo update --locked                   exit 0 (was 101)
  cargo test --workspace --all-features   pass, 0 failed
  cargo deny check                         advisories/bans/licenses/sources ok
  cargo vet --locked                       Succeeded (14 audited, 52 exempted)

CONTROL (proving the gate can still fail): restoring the previous Cargo.lock
made `cargo update --locked` exit 101 again with "cannot update the lock file
... because --locked was passed"; re-applying the refreshed lock returned it
to exit 0, and the restored file is byte-identical to the committed one. The
gate is doing real work, not passing vacuously.

Also commits supply-chain/imports.lock: refreshing the imported aggregate
audit sets pulled in Google's indexmap audits, which is why indexmap could
drop out of exemptions entirely -- a real human audit replacing a "nobody
read this" placeholder. Verified this file is load-bearing rather than
incidental: with the previous imports.lock, `cargo vet --locked` fails with
"indexmap:2.14.0 missing [safe-to-deploy]"; with it, vetting succeeds.
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedclap@​4.6.4 ⏵ 4.6.69910093100100

View full report

@h4x0r
h4x0r marked this pull request as ready for review August 7, 2026 15:53
@h4x0r
h4x0r merged commit 7fc61c1 into main Aug 7, 2026
18 checks passed
@h4x0r
h4x0r deleted the fix/vet-trust-our-crates branch August 9, 2026 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant