Skip to content

fix: resolve remaining RustSec advisories - #16

Merged
mstuart merged 3 commits into
masterfrom
security/rustsec-remediation
Aug 23, 2026
Merged

fix: resolve remaining RustSec advisories#16
mstuart merged 3 commits into
masterfrom
security/rustsec-remediation

Conversation

@mstuart

@mstuart mstuart commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • update anyhow, crossbeam-epoch, h2, memmap2, and the tokio-postgres dependency family to patched compatible releases
  • upgrade git2 to 0.21 and safely reject blame hunks without a final signature
  • pin the immutable upstream Tantivy revision from Update lru requirement from 0.16.3 to 0.18.2 quickwit-oss/tantivy#3034, which moves lru to the first panic-safe release

Security result

The pre-change RustSec scan found 5 vulnerabilities and 5 unsoundness advisories. The final scan reports:

  • 0 vulnerabilities
  • 0 unsoundness advisories
  • 0 yanked dependencies

Four informational unmaintained notices remain (core2, instant, number_prefix, and paste). RustSec lists no patched releases for them; each is transitive through fastembed or notify, not a direct dependency.

Verification

  • cargo fmt --package code-memory -- --check
  • cargo clippy -- -D warnings
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo test with the CI PostgreSQL schema and TEST_DATABASE_URL (93 passed, 1 intentionally ignored)
  • cargo test --all-features (93 passed, 1 intentionally ignored)
  • cargo build --release --all-features
  • cargo audit (0 vulnerabilities, 0 unsoundness advisories)
  • npm ci --ignore-scripts
  • npm run check
  • npm exec -- ultracite doctor (4 passed, 0 warnings, 0 failed)
  • npm audit --audit-level=high (0 vulnerabilities)
  • npm pack artifact inspection (5 expected files)
  • native release CLI and npm wrapper CLI smoke tests

TDD evidence: the missing-blame-signature regression failed before the compatibility helper existed, then passed after the git2 0.21 migration.

Update anyhow, crossbeam-epoch, h2, memmap2, and the tokio-postgres dependency family to patched releases admitted by the existing manifest constraints.

Verified: cargo fmt --all -- --check; cargo clippy --all-targets --all-features -- -D warnings; cargo test --all-features (92 passed, 1 ignored); cargo audit (0 vulnerabilities).
Move to the first release containing the Remote::list and BlameHunk signature safety fixes. Treat a missing blame signature as an error instead of dereferencing it.

TDD: the missing-signature regression failed before the helper existed and now passes. Verified: cargo fmt --all -- --check; cargo clippy --all-targets --all-features -- -D warnings; cargo test --all-features (93 passed, 1 ignored); cargo audit (0 vulnerabilities, only the pending lru unsoundness advisory).
Pin the upstream Tantivy commit that moves its lru dependency to 0.18.2, the first release with the panic-safety fix. The selected revision is immutable and its documented 0.27 API change is not used by Code Memory.

Verified: cargo check --all-features; cargo fmt --all -- --check; cargo clippy --all-targets --all-features -- -D warnings; cargo test --all-features (93 passed, 1 ignored); cargo audit (0 vulnerabilities, 0 unsound warnings).
@mstuart
mstuart merged commit 9c751cb into master Aug 23, 2026
3 checks passed
@mstuart
mstuart deleted the security/rustsec-remediation branch August 23, 2026 07:20
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