Repository navigation
Fix critical Go runtime, HTTP/2, and CI tooling vulnerabilities - #21636
Merged
Merged
Conversation
kylos101
had a problem deploying
to
branch-build
October 11, 2026 02:31 — with
GitHub Actions
Failure
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
kylos101
had a problem deploying
to
branch-build
October 16, 2026 17:28 — with
GitHub Actions
Failure
kylos101
had a problem deploying
to
branch-build
October 16, 2026 17:37 — with
GitHub Actions
Failure
Contributor
Author
|
Updating devcontainer image in #21640 to use new version of go and lint. |
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Refresh npm and node-gyp to consume patched tar releases, update handlebars and proxy-addr, and refresh the IDE updater HTTP client and form-data dependency. Co-authored-by: Codex <noreply@openai.com>
kylos101
force-pushed
the
fix/critical-go-cves
branch
from
October 20, 2026 15:54
e46e932 to
ebe2fdb
Compare
2 of 15 tasks
kylos101
had a problem deploying
to
branch-build
October 20, 2026 18:13 — with
GitHub Actions
Failure
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
kbrennan-oai
approved these changes
Oct 20, 2026
This branch was successfully deployed
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.
Description
Update production Go dependencies and bundled executables to remove critical standard-library and HTTP/2 vulnerabilities, and fix critical vulnerabilities in standalone CI tooling.
golang.org/x/net0.60.0 requires Go 1.26 and the accompanyingx/*updates across the repository's modules.golang.org/x/net0.55.0 → 0.60.0 and its required supportingx/*dependencies; raise module Go requirements to 1.26x/netdev/npm-toolsghcr.io/gitpod-io/buildkit:v0.20.1-gitpod.8→ghcr.io/gitpod-io/buildkit:v0.34.0-gitpod.1, pinned by digestCorrect workspacekit's sync-message format string so Go vet accepts the updated module.
The standalone npm lockfiles are actively consumed by IDE workflows and development-image tooling; the root workspace's merged npm fixes do not update them.
Existing TypeORM and containerd CRI exceptions in WORKSPACE.yaml remain unchanged, with no new suppressions. A broad source scan also reports stale tar, Handlebars, and protobufjs entries in
components/ide-metrics-api/typescript-grpc/yarn.lock; its Leeway target explicitly uses the patched root lockfile instead, so this unused lockfile is unchanged.Bob now consumes the fork workflow's published image
ghcr.io/gitpod-io/buildkit:v0.34.0-gitpod.1@sha256:dbe25ae89df951659bbb996465754eba57281de9a99bdf1e27216c89098eee55. The image's embedded revision is58f91399d4b52985b952870fc08b3a3bd4bc0ca3oncustom-mirror; the image publication and draft release jobs succeeded. Tests run independently of release creation. The consumer uses GHCR directly and preserves the existing Bob packaging and runc facade. A full local scan of the rebuilt Bob image has zero Critical findings, with the previous GO-2026-6604 / CVE-2026-56857 and GO-2026-6612 / CVE-2026-78663 findings absent.After this lands, the patched npm tools need the normal development-image publication and consumer-promotion follow-up.
Related Issue(s)
Follow-up to #21639 and #21640. Includes the consumer update for the reviewed and published Gitpod BuildKit fork image.
How to test
Current GHCR consumer update (
c80f444f6): local build and scan passed; a new Gitpod CI scan and workspace preview validation are pending. The earlier CI results below used the Core Dev image and do not validate this new GHCR digest.Previous CI validation, before the GHCR switch, for
a35ad0257e6ceadbc94c5b7f60ee574b2e8cb749: Branch Build run 39491270707 and its Build Gitpod job completed successfully. The vulnerability reports artifact containsvulnerability-stats.json: all 116 scanned packages have zero Critical findings, includingcomponents/image-builder-bob:docker. Bob's Docker image has 11 High, 14 Medium, 3 Low and 4 Unknown findings in this CI scan; this PR does not remove all CVEs. The scheduled-only Critical gate was skipped in this regular PR run; the zero-Critical assertion above was checked directly against the uploaded scan results. Workspace integration jobs were skipped in that run, so the earlier integration results below remain the available evidence for those suites.Local GHCR image validation: rebuilt the Bob Dockerfile with the pinned published base and the same Bob/runc-facade binaries previously compiled from this PR using Go 1.26.9; no Go source changed.
bob --helpand packagedbuildkitd --versionpass. Full Grype 0.121.0 scan, without--only-fixedor suppressions: 0 Critical, 11 High, 12 Medium, 2 Low package matches. The Critical threshold and explicit assertions that the previous Critical advisory IDs are absent both pass. Remaining High findings are three gRPC advisories in Bob and its facade (six matches) and five containerd advisories in Bob (five matches). Lower-severity findings remain in containerd, Bob's BuildKit client, OpenTelemetry, Docker distribution, BusyBox and nghttp2. Pre-commit passed. This local Docker build reused the direct Go compilation fallback because the environment's golangci-lint binary was built with Go 1.25.Before the Bob image update,
34fe89287294493292de8cbf627a1c0aad811a2dpassed the workspace integration job: 32 passed, 0 failed, 13 skipped across the selected suites. The workspace package itself had 7 passed, 0 failed, 9 skipped. Docker-in-workspace, base-image build, and parallel-image-build tests passed. Skips were for username-dependent tests, disabled GitLab integration, maintenance labels, and unsupported k3s; none were caused by CVEs. See JUnit results. These results predate the BuildKit base-image update.Completed locally with Go 1.26.9 and a fresh Grype 0.121.0 database built October 20, 2026:
go mod tidy -diffpasses in all 60 changed Go modules;go build ./...passes in 20 production modules.go test ./...passes in ws-proxy, image-builder-bob, and workspacekit. All common-go packages except baseserver pass; that test and a local Leeway build are blocked by this environment already occupying hard-coded port127.0.0.1:8765.npm ciand frozen Yarn installs pass; node-gyp builds and loads a native addon, and xunit-viewer renders a report.leeway vet --ignore-warnings, pre-commit for all changed files, andgit diff --checkpass.To repeat production scanning, dispatch
branch-build.ymlonfix/critical-go-cveswithsimulate_scheduled_run=trueand inspectvulnerability-stats.json. Require zero Critical findings in every package, including Bob; the new GHCR-based Bob image meets that threshold locally, and CI confirmation of this digest is pending. Selectwith-integration-tests=workspacefor the preview integration suite.Documentation
No public documentation updates are required.
Preview status
Gitpod was successfully deployed to your preview environment.
Build Options
Build
Run the build with werft instead of GHA
Run Leeway with
--dont-testPublish
Installer
Add desired feature flags to the end of the line above, space separated
Preview Environment / Integration Tests
If enabled this will build
install/previewIf enabled this will create the environment on GCE infra
Saves cost. Untick this only if you're really sure you need a non-preemtible machine.
Valid options are
all,workspace,webapp,ide,jetbrains,vscode,ssh. If enabled,with-previewandwith-large-vmwill be enabled./hold