Skip to content

Shrink the runtime base images to cut CVE surface (distroless / Chainguard / trimmed Debian) #247

Description

@elronbandel

Problem

The fleet's runtime bases (core/benchmark-base-*, debian-slim) ship packages most images don't use — perl, expat, ncurses, sqlite, libssh2, jq, … — each of which is CVE surface. The trivy image gate re-flags new HIGH/CRITICAL CVEs in these on every base rebuild, and many never get an upstream fix.

#243 made the gate fire on fixable CVEs only (--ignore-unfixed) — the right gate-sanity move — but it treats the symptom: it stops looking at no-fix CVEs rather than reducing them. The durable fix is to shrink the base.

Durable fix

Cut the package count in the bases so there's less CVE surface (fixable or not):

  • Evaluate distroless / Chainguard-Wolfi / aggressively-trimmed Debian for the runtime bases.
  • Drop incidental packages — the .github/.trivyignore history (perl/expat/ncurses/sqlite/libssh2) suggests several are transitive, not actually needed.
  • Keep what's genuinely used: jq (eval-materialize-task), curl (dataset/gateway downloads), gettext-base.

Companion items

Context

Surfaced by the faster-bifrost republish (release run 28368018989), whose release-gate failed on 6 rebuilt bases over no-fix jq CVE-2026-49839 + libssh2 CVE-2026-55200 (CRITICAL) / 55199.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions