Skip to content

Fix/dependabot advisories - #12

Open
juicycleff wants to merge 9 commits into
mainfrom
fix/dependabot-advisories
Open

Fix/dependabot advisories#12
juicycleff wants to merge 9 commits into
mainfrom
fix/dependabot-advisories

Conversation

@juicycleff

Copy link
Copy Markdown
Contributor

No description provided.

openssl 0.10.74 -> 0.10.81 clears eight advisories, five of them high:
out-of-bounds writes in MdCtxRef::digest_final, Deriver::derive and
CipherCtxRef, an incorrect bounds assertion in AES key wrap, unchecked
callback lengths in the PSK/cookie trampolines, an OOB read in the PEM
password callback, a heap overflow when encrypting, and undefined
behavior in X509Ref::ocsp_resp. The highest fix floor across them is
0.10.80.

rand 0.8.5 -> 0.8.7 (unsound with a custom logger using rand::rng).
rsa 0.9.8 -> 0.9.10 (panic on a prime equal to 1).

All semver-compatible, so this is a lockfile-only change. Workspace
builds and the full test suite passes.
Fixes type confusion on exp/nbf when those claims are not required,
which could lead to an authentication bypass. Fix floor is 10.3.0.

The call sites needed no changes: decode, encode, decode_header,
Algorithm, DecodingKey, EncodingKey, Header, Validation and
errors::ErrorKind are all unchanged across the major.

Selects the aws_lc_rs crypto provider explicitly. jsonwebtoken 10 made
the backend pluggable and panics at the first signing or verification
call if neither rust_crypto nor aws_lc_rs is enabled -- a runtime panic
in the auth path, not a compile error, so it is only caught by actually
exercising the code (auth-jwt's test_validate_token did). aws-lc-rs is
already in the tree via rustls, so this pulls in no new native build.

Applied at all three declaration sites rather than relying on feature
unification, so plugins built standalone get a provider too.

Held at 10.x rather than 11: 11.0 adds unrelated breaking changes
(non_exhaustive enums, Header.extras, key accessor renames) that are not
needed to clear the advisory.
Clears 14 high-severity advisories, the largest single group in the npm
alerts. Both are patch bumps within the existing major:
frontend/docs 15.5.18 -> 15.5.21 (fix floor 15.5.21) and
crates/octopus-admin/ui 16.2.6 -> 16.2.11 (fix floor 16.2.11).

The admin UI builds and prerenders all routes on 16.2.11.

The docs site could not be build-verified: `pnpm install` there fails in
the fumadocs-mdx postinstall with ERR_PACKAGE_PATH_NOT_EXPORTED, because
fumadocs-docgen 3.1.0 imports fumadocs-core/mdx-plugins/codeblock-utils,
a subpath the resolved fumadocs-core 15.8.5 no longer exports. That
failure reproduces on unmodified main and is unrelated to this bump, so
the lockfile here was refreshed with --ignore-scripts.
The advisories are almost entirely in transitive dependencies whose
parents pin them by range, so `pnpm update` reports "Already up to date"
and changes nothing. pnpm.overrides is the only lever that moves them.

Adds the same 30-entry override block to all three pnpm workspaces:
crates/octopus-admin/ui  57 alerts -> 0
crates/octopus-admin      7 alerts -> 0
frontend/docs            87 alerts -> 15

Four packages are version-scoped rather than pinned outright, because
two incompatible majors are each vulnerable and a blanket pin would
force callers of the old API onto the new one:
  brace-expansion@1 -> 1.1.18, @>=3 -> 5.0.9
  js-yaml@3 -> 3.15.1, @>=4 -> 4.3.1
  picomatch@2 -> 2.3.2, @>=4 -> 4.0.4
  minimatch@>=10, path-to-regexp@>=8, nanoid@>=3 <4

The admin UI builds and prerenders every route with the overrides
applied, which is the meaningful check here: overrides can silently
force a parent onto an API it was not written against.

frontend/docs keeps 15 alerts that have no available fix. All trace to
the @ai-sdk chain behind the docs AI search: @ai-sdk/provider-utils and
image-size both report "no patched version", and provider-utils pins
undici 5.29.0 whose advisories are only fixed in 6.x. Clearing them
means an upstream release or dropping AI search, not an override.
google.golang.org/grpc 1.80.0 -> 1.82.1 (xDS RBAC and HTTP/2
vulnerabilities, high) and github.com/jackc/pgx/v5 5.9.0 -> 5.9.2 (SQL
injection via placeholder confusion with dollar-quoted strings).

Both are indirect dependencies of the benchmark harness, not of the
gateway itself. go build ./... passes.
Fixes unbounded memory allocation when parsing W3C Baggage headers, a
DoS reachable from any request the gateway propagates context for. Fix
floor is opentelemetry_sdk 0.32.1.

Moves the whole otel stack together, since the crates version in
lockstep: opentelemetry 0.22 -> 0.32, opentelemetry_sdk 0.22 -> 0.32,
opentelemetry-otlp 0.15 -> 0.32, opentelemetry-semantic-conventions
0.14 -> 0.32, tracing-opentelemetry 0.23 -> 0.33.

Rewrites the two call sites the migration breaks:

- The new_pipeline()/new_exporter()/install_batch() builder is gone.
  Replaced by SpanExporter::builder().with_tonic() feeding an explicit
  SdkTracerProvider.

- global::shutdown_tracer_provider() is gone. The provider itself must
  be shut down, so init_tracing now returns it and Serve calls
  provider.shutdown() where the old global call was. Note that
  global::tracer_provider() returns a handle, so dropping that is NOT a
  flush -- it would silently discard buffered spans on exit.
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