Skip to content

Results of dependency audit - #231

Open
darkmuggle wants to merge 8 commits into
mainfrom
bh/dependency-audit
Open

darkmuggle wants to merge 8 commits into
mainfrom
bh/dependency-audit

Conversation

@darkmuggle

Copy link
Copy Markdown
Contributor

This is a series of commits to update dependencies, reduce dependencies, and remove unjustified dependencies. With the glut of Claude driven security vulnerabilities, our supply chain needed a second look.

Make the OpenTelemetry crates optional behind the telemetry feature, serve
the HTTP endpoints with axum (already in the tree via tonic) instead of
actix-web, hash watch predicates through serde_json instead of
serde-hashkey, drop regex from the quantity parser, and build prometheus
without protobuf. Bump tokio, pulldown-cmark and chacha20 to clear
RUSTSEC-2026-0386, RUSTSEC-2026-0414 and a yanked release.
kube 4 drops serde_yaml and with it unsafe-libyaml (RUSTSEC-2024-0449).
k8s-openapi now models Time as a jiff Timestamp, so the operator moves
from chrono to jiff. Metadata watchers use Api<PartialObjectMeta<K>> in
place of the deprecated metadata_watcher, and predicate filters take
kube's default config, which forgets an object's hash after an hour
without events. The CRD generators write YAML with serde-saphyr, which
kube already uses, and the CRDs are regenerated.
Adds a deny.toml in the shape of restate-cloud's policy: yanked crates
and RustSec advisories fail, licenses must be on a permissive allowlist,
and crates come only from crates.io. The two ignored advisories reach
the graph only through restate-sdk, a dev-dependency.
The e2e tests need only the HTTP server. rust_crypto stays because
restate-sdk-shared-core always verifies request identity through
jsonwebtoken, which needs a backend; the alternative, aws-lc-rs, would
add a C build to the tests. That keeps rsa and crypto-bigint in the
dev graph, so their deny.toml ignores stay.
The 0.12 line has had no release since December 2025. 0.13's rustls
feature bundles aws-lc-rs, so the operator takes rustls-no-provider and
installs ring, which kube already links, as the process default.
Certificates now come from the platform store through
rustls-platform-verifier where 0.12 bundled webpki-roots; the
distroless/static runtime image ships the CA bundle.
tikv's prometheus crate has had no release since March 2025.
prometheus-client is the Prometheus project's own client. The sample
names are unchanged, and a test now pins them. /metrics answers in the
OpenMetrics text format, which Prometheus negotiates natively; HELP
lines gain a trailing period and the body ends with # EOF.
aa28e5b wrote the longer description into the CRD by hand, so every
regeneration dropped it. It now lives on the field, as it does for
RestateCloudEnvironment.
dev-tools 1.19.0 ships 1.98.1 with the musl targets, so CI lint and the
release image stay on one compiler, as they do in restate. Clippy 1.98
flags two redundant borrows in knative.rs, fixed here.
@socket-security

Copy link
Copy Markdown

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