Skip to content

chore(security): remediate 10 container image vulnerabilities #735

Description

@johntmyers

Summary

The April 1, 2026 Security Tracker identifies 10 container vulnerabilities (1 Critical, 9 High) across the openshell/ci, openshell/cluster, and openshell/gateway images. All originate from third-party binaries and system packages embedded at build time — OpenShell has no Go source code, so these are transitive dependencies of upstream tools (k3s, Docker CLI, etc.).

Affected Images

Image Dockerfile Vuln Count
openshell/cluster deploy/docker/Dockerfile.images (target: cluster) 7
openshell/ci deploy/docker/Dockerfile.ci 6
openshell/gateway deploy/docker/Dockerfile.images (target: gateway) 1

Vulnerabilities

CVE Severity Package Image(s)
GHSA-p77j-4mvh-x3m3 Critical google.golang.org/grpc ci, cluster
GHSA-pwhc-rpq9-4c8w High github.com/containerd/containerd/v2 cluster
GHSA-p436-gjf2-799p High github.com/docker/cli ci, cluster
GHSA-9h8m-3fm2-qjrq High go.opentelemetry.io/otel/sdk ci, cluster
GHSA-6v2p-p543-phr9 High golang.org/x/oauth2 cluster
GHSA-6g7g-w4f8-9c9x High github.com/buger/jsonparser cluster
GHSA-4qg8-fj49-pxjh High github.com/sigstore/timestamp-authority ci
CVE-2026-4519 High python ci
CVE-2025-68973 High gpgv ci, gateway
CVE-2024-36623 High github.com/docker/docker (moby) cluster

Remediation Plan

Group 1 (P0): Bump k3s version — 7 CVEs including Critical

File: deploy/docker/Dockerfile.images lines 18-19

The cluster image embeds rancher/k3s:v1.35.2-k3s1, which bundles containerd, docker/moby, gRPC-Go, and other Go libraries. Upgrading k3s to the latest patch release is the single highest-leverage fix, addressing GHSA-p77j (Critical), GHSA-pwhc, GHSA-p436, GHSA-9h8m, GHSA-6v2p, GHSA-6g7g, and CVE-2024-36623.

Steps:

  1. Identify latest k3s release that patches these Go deps
  2. Update K3S_VERSION and K3S_DIGEST in Dockerfile.images
  3. Get new digest: docker buildx imagetools inspect rancher/k3s:<new-tag> | head -3
  4. Build cluster image: mise run build:docker:cluster
  5. Run e2e: mise run e2e
  6. Rescan with grype/trivy

Group 2 (P1): Bump base image — 2 CVEs across all images

Files: Dockerfile.images lines 165, 226; Dockerfile.ci line 9

All three images use nvcr.io/nvidia/base/ubuntu:noble-20251013. The gpgv (CVE-2025-68973) and python3 (CVE-2026-4519) system packages need patching.

Steps:

  1. Check for a newer nvcr.io/nvidia/base/ubuntu:noble-* tag with patched packages
  2. Update all three FROM references
  3. Fallback: add explicit apt-get install gpgv=<patched> if no newer base exists
  4. For python, also check mise.toml Python version

Group 3 (P2): Bump Docker CLI in CI — 2 CVEs

File: deploy/docker/Dockerfile.ci line 11

CI image pins Docker CLI v29.3.0. Update DOCKER_VERSION to a release patching GHSA-p436 and potentially GHSA-p77j. Also evaluate bumping BUILDX_VERSION.

Group 4 (P3): Bump mise-managed tools in CI — 2 CVEs

Files: mise.toml, deploy/docker/Dockerfile.ci

GHSA-4qg8 (sigstore/timestamp-authority) and GHSA-9h8m (OTel SDK) likely come from Go tools installed via mise install. Audit mise.toml for cosign, rekor-cli, or other sigstore/OTel-consuming tools and bump versions.

Verification

After all changes:

  1. Rebuild all images: mise run build:docker
  2. Full CI: mise run ci
  3. E2e tests: mise run e2e
  4. Rescan all images to confirm 0 remaining findings

Activity

  1. added a commit that references this issue on Apr 2, 2026
    8baed60
  2. added a commit that references this issue on Apr 2, 2026
    dd8dd8a
  3. added a commit that references this issue on Apr 8, 2026
    e14d1b7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions