Skip to content

Go feature installs unpinned editor tools with fixable HIGH vulnerabilities #1742

Description

@lusoris

Summary

The current Go feature installs nine editor tools from mutable @latest targets during every image build, with no option to pin or skip the tool set. A frozen Dev Container feature lock therefore does not produce a reproducible or vulnerability-clean image.

A build from ghcr.io/devcontainers/features/go@sha256:d85e921f91b41340055bb12b325d9d551170ed04b3b832e33530bf42f167c032 (feature 1.3.4) on 2026-09-19 produced ten fixable HIGH findings across the installed tools:

  • gopls: golang.org/x/mod below 0.40.0 and golang.org/x/text below 0.39.0
  • gotests, impl, and staticcheck: golang.org/x/mod below 0.40.0
  • revive: golang.org/x/text below 0.39.0

The operating-system and application layers in the same image were clean at HIGH/CRITICAL after package updates.

Reproduction

trivy image --scanners vuln --severity HIGH,CRITICAL --ignore-unfixed <image>

The feature installer currently defines GO_TOOLS with @latest for every tool. The tool versions and transitive modules are neither represented in devcontainer-lock.json nor configurable through devcontainer-feature.json.

Expected behavior

Please add reviewed per-tool version options and an option to disable installation of the bundled editor tools. The feature's release gate should also scan the resulting binaries for fixable HIGH/CRITICAL findings. This would let consumers retain a frozen feature lock while choosing a reproducible, vulnerability-clean tool set.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions