Repository navigation
chore(images): distroless runtime images and patched Go deps - #151
Merged
Merged
Conversation
nicolasriverocorvalan
requested review from
a team,
DaniDeltaT,
amirylm and
rezabfil-sec
as code owners
September 24, 2026 23:15
amirylm
approved these changes
Sep 28, 2026
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.
Moves the gateway and plugin runtime images to Docker Hardened distroless bases (
dhi.io/static, glibc variant for the gateway). The images no longer contain a shell, package manager, or curl. This takes the Docker Scout result from 92 vulnerabilities (19 critical) to 0 critical / 0 high for both images./app healthcheck,/bin/gateway healthcheck) because there is no shell for curlx/crypto,x/netandotel. gRPC is pinned to v1.83.2 because 1.84.0 is still affected by CVE-2026-84445; keep the pin until 1.85 shipsbuild_push.ymlande2e.ymllog in todhi.io. The dead attestation steps inbuild_push.ymlare removedValidated in k8s dev using image tags:
v0.2.22-rc
v0.2.22-rc-1
v0.2.22-rc-2
The new images are about half the size overall: the gateway is 73% smaller to download and the plugin 22%:
-
Gateway: almost all the saving comes from dropping the debian:trixie-slim base, which carried a shell, coreutils, apt, dpkg and so on. The glibc distroless base keeps only libc, libgcc, CA certs and tzdata-
Plugin: the 33 MB Go binary is most of the image. The Alpine base with curl and its libraries is gone. The binary grew by 0.75 MB because of the newer dependencies (Go 1.26, x/crypto 0.57, and so on)ecdsa.PublicKey.X/.Yfields: the auth plugin now rejects a JWK whose coordinates are not 32 bytes or whose point is not on the curve, with an error while loading the JWKS. Before, such a key was accepted and every PAT signed with it failed later as "invalid signature". Our issuer always publishes valid, padded points, so real traffic is unaffected