Skip to content
This repository was archived by the owner on Sep 17, 2026. It is now read-only.

Bump base-server image, pin apk versions, fix misconfig findings - #336

Open
rajeshk486 wants to merge 2 commits into
temporalio:mainfrom
rajeshk486:main
Open

rajeshk486 wants to merge 2 commits into
temporalio:mainfrom
rajeshk486:main

Conversation

@rajeshk486

Copy link
Copy Markdown

What changed?

  • server.Dockerfile: BASE_SERVER_IMAGE 1.15.15 -> 1.15.25, closing both CRITICAL OS-level CVEs and dropping HIGH findings from 23 to 5 (Alpine) and 36 to 8 (dockerize binary), per verified trivy re-scan.
  • admin-tools.Dockerfile / develop.Dockerfile: pinned apk add package versions (bash-completion=2.17.0-r1, iproute2=6.17.0-r0).
  • Documented (not changed) two hadolint/trivy findings that can't be fixed without breaking the build: the temporaliotest/server/temporaliotest/admin-tools FROM lines are bake-injected build-context references, not registry pulls; develop.Dockerfile needs to stay root for tc traffic-shaping at runtime.
  • docker/base-images/base-admin-tools.Dockerfile / base-server.Dockerfile: documented why these build-only layers correctly have no USER (downstream consumers need root for addgroup/adduser before setting their own non-root user) and suppressed the resulting trivy false positive via a new path-scoped .trivyignore.yaml.

Why?

Found via a Trivy vulnerability/misconfiguration scan of the built server image and the Dockerfiles in this repo. Full writeup (including what's intentionally left open) is in temporal's SECURITY_VULNERABILITY_REPORT.md.

Deliberately not changed: base-builder.Dockerfile and base-ci-builder.Dockerfile also run as root and are published standalone to Docker Hub for external CI/dev use. Adding a non-root USER looks technically safe from what's in this file, but downstream consumers are unknown from this repo, so that's left as an open decision rather than applied.

How did you test it?

  • built
  • run locally and tested manually (built the server image target, rescanned with trivy/grype to confirm the CVE reduction, verified with hadolint)

Potential risks

Base image bump could theoretically introduce new behavior from the newer Alpine/package versions, but this is a routine patch-version bump (1.15.15 -> 1.15.25) within the same major/minor line published by the same maintainers.

rajeshk486 and others added 2 commits August 25, 2026 22:45
- server.Dockerfile: BASE_SERVER_IMAGE 1.15.15 -> 1.15.25, closing both
  CRITICAL OS-level CVEs and dropping HIGH findings from 23 to 5 (Alpine)
  and 36 to 8 (dockerize binary), per verified trivy re-scan.
- admin-tools.Dockerfile: pin bash-completion=2.17.0-r1 (hadolint DL3018);
  document why the temporaliotest/server FROM can't be tag-pinned (it's a
  bake-injected build-context reference, not a registry pull).
- develop.Dockerfile: pin iproute2=6.17.0-r0 (hadolint DL3018); document
  why this dev/test-only image stays root (tc traffic-shaping needs
  CAP_NET_ADMIN at runtime).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
A trivy config scan (Dockerfile misconfiguration checks, distinct from
hadolint) surfaced 17 findings across this repo's Dockerfiles. Most are
false positives once you know the build topology:

- develop.Dockerfile's unpinned "temporaliotest/auto-setup:latest": that
  registry has 6,728 tags, nearly all ephemeral per-commit CI SHAs with
  no stable channel to pin to -- ":latest" is the only sane default for
  local dev builds.
- base-admin-tools.Dockerfile / base-server.Dockerfile flagged for
  running as root: these are build-only layers consumed via ARG by
  admin-tools.Dockerfile / server.Dockerfile, which immediately need
  root for addgroup/adduser before their own USER temporal. Adding USER
  here would break that.

Both documented inline and suppressed via the new path-scoped
.trivyignore.yaml (DS-0002 is a file-level check, so inline
"trivy:ignore" comments don't work for it -- confirmed empirically).

Deliberately NOT touched: base-builder.Dockerfile and
base-ci-builder.Dockerfile also run as root and publish standalone to
Docker Hub for external CI/dev use. Downstream consumers are unknown
from this repo, so whether adding USER is safe needs a human call.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@rajeshk486
rajeshk486 requested a review from a team as a code owner August 25, 2026 17:53
@CLAassistant

CLAassistant commented Aug 25, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants