Repository navigation
fix(kms): run auth-api on Node 22.23.4 and pin the auth-mock Bun image - #1466
Merged
Merged
Conversation
auth-api ran on node:20-bookworm-slim (Node 20.20.2). Node 20 is end of life and has no release that handles the eMudhra/emSign intermediate CA compromise; fetch() in that image accepts a certificate from one of the compromised intermediates. Node 22.23.4 updates the bundled roots and rejects such chains (CERT_REVOKED). Move docker-compose.yaml and compose-dev.yaml to node:22.23.4-bookworm-slim, pinned by digest. auth-mock built from the floating oven/bun:1-alpine tag. Pin it to oven/bun:1.4.3-alpine by digest (the same image the floating tag resolves to today), so the build input is fixed. Bun 1.4.3 still accepts the compromised chains, and no Bun release with a fix was found; bump it when one ships. The auth-api image is part of the KMS compose, so the KMS compose hash changes and must be registered again in the allowlists. Signed-off-by: Leechael Yim <yanleech@gmail.com>
Leechael
marked this pull request as ready for review
October 22, 2026 02:04
Bun 1.4.3 still accepts certificate chains from the distrusted eMudhra/emSign intermediates. Bun 1.4.4 updates its root store to NSS 3.131.1 and blocks the affected public keys, so fetch() rejects such chains with CERT_REVOKED. Move auth-mock from oven/bun:1.4.3-alpine to oven/bun:1.4.4-alpine, pinned by the multi-arch index digest. Signed-off-by: Leechael Yim <yanleech@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two KMS helper images do not handle the eMudhra/emSign intermediate CA compromise.
Changes
dstack/kms/dstack-app/docker-compose.yaml(auth-api)node:20-bookworm-slim@sha256:2cf067cf...(Node 20.20.2)node:22.23.4-bookworm-slim@sha256:de170b39439eb0e5a3444ad7d60b015614a381e10fecae2e30ec9e735122f38ddstack/kms/dstack-app/compose-dev.yaml(auth-api)dstack/kms/auth-mock/Dockerfileoven/bun:1-alpine(floating, no digest)oven/bun:1.4.4-alpine@sha256:4cf82f5686b196504fe119db3fcd9185b191f82ece82c40680e597228ec6070aoven/bun:1.4.4-alpine@sha256:4cf82f5686b196504fe119db3fcd9185b191f82ece82c40680e597228ec6070a, pinned by the multi-arch index digest.Self-test against the emSign test site
fetch("https://dv-g3b-emudhra.we-have-a-problem.com/")in each image:Tests run (in the node:22.23.4 image above)
kms/auth-ethatnext:npm ci,npm run build,npx jest: all pass (5/5).kms/auth-ethat the commit the production compose clones (78057c9):npm ciandnpm run buildpass. Its jest suites fail withHH700: Artifact for contract "KmsAuth" not found. The old Node 20 image fails the same way, so the cause is the missing compiled Hardhat artifacts, not the Node version.docker buildofdstack/kms/auth-mock/Dockerfilewithoven/bun:1.4.4-alpine@sha256:4cf82f5686b196504fe119db3fcd9185b191f82ece82c40680e597228ec6070apasses (bun install --frozen-lockfileOK), andbun --revisionin the built image prints1.4.4+38afee6c8.Not run here
docker compose buildof the full KMS app, and a KMS boot with the new auth-api.kms/auth-eth-buntests.Rollout impact
auth-api is part of the KMS app compose, so the KMS compose hash changes. Register the new compose hash in the on-chain allowlists and auth configs before redeploying the KMS.
Remaining / needs a decision
ETH_RPC_URL=http://helios:8545). Helios reaches the consensus and execution RPCs over public HTTPS. Its build (cargo build --releaseof a pinned helios commit, without--locked) is not changed here, and I did not check which rustls-webpki it resolves.