fix(scripts/ironbank): rebuild bundled Terraform from source with Go 1.25.10#25250
Merged
Merged
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
…1.25.10 Build Terraform from source during the IronBank image build instead of downloading pre-built binaries from HashiCorp. This controls the Go toolchain version, ensuring Go stdlib CVEs (1 Critical, 5 High, 3 Medium) fixed in Go 1.25.9 are addressed in the bundled Terraform binary. No upstream Terraform release (including 1.14.9 and 1.15.2) is compiled with Go 1.25.9+; all use Go 1.25.8. Building from source with GOTOOLCHAIN=go1.25.10 (read from go.mod) is the only path forward without waiting for an upstream toolchain bump. Changes: - hardening_manifest.yaml: Replace pre-built Terraform 1.3.7 binary with Terraform 1.14.5 source tarball (matches install.go). Update terraform-provider-coder from 0.6.10 to 2.16.0 (matches go.mod). - build_ironbank.sh: Download Terraform source, compile with the project's Go toolchain (1.25.10), package as terraform.zip. Add go to dependencies. Update base image to UBI9. - Dockerfile: Update base image from UBI8 8.7 to UBI9 9.6. Remove python3-urllib3 to address CVE-2026-44431. Refs ENT-30
941a310 to
85035a4
Compare
This was referenced May 13, 2026
f0ssel
approved these changes
May 13, 2026
f0ssel
pushed a commit
that referenced
this pull request
May 13, 2026
…1.25.9 (#25260) Build Terraform from source during the IronBank image build instead of downloading pre-built binaries from HashiCorp. This controls the Go toolchain version, ensuring Go stdlib CVEs (1 Critical, 5 High, 3 Medium) fixed in Go 1.25.9 are addressed in the bundled Terraform binary. No upstream Terraform release is compiled with Go 1.25.9+; all use Go 1.25.8. Building from source with GOTOOLCHAIN=go1.25.9 (read from go.mod) is the only path forward without waiting for an upstream toolchain bump. ### Changes - **hardening_manifest.yaml**: Replace pre-built Terraform 1.3.7 binary with Terraform 1.14.5 source tarball (matches `install.go`). Update terraform-provider-coder from 0.6.10 to 2.13.1 (matches `go.mod`). Add `TERRAFORM_VERSION` build arg. - **build_ironbank.sh**: Download Terraform source, compile with the project's Go toolchain (1.25.9), package as terraform.zip. Add `go` to dependencies. Update base image to UBI9. - **Dockerfile**: Update base image from UBI8 8.7 to UBI9 9.6. Remove python3-urllib3 to address CVE-2026-44431. Refs ENT-1 > [!NOTE] > Generated by Coder Agents <details> <summary>Implementation context (Coder Agents generated)</summary> ### Go toolchain analysis | Component | Before | After | |-----------|--------|-------| | Terraform binary | Go 1.19.4 (v1.3.7 pre-built) | Go 1.25.9 (v1.14.5 built from source) | | terraform-provider-coder | old (v0.6.10) | Go 1.24.6 (v2.13.1) | | Coder binary | Go 1.25.9 | Go 1.25.9 (unchanged) | ### Related PRs - #25219 — main - #25250 — release/2.33 - #25259 — release/2.32 </details>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Build Terraform from source during the IronBank image build instead of downloading pre-built binaries from HashiCorp. This controls the Go toolchain version, ensuring Go stdlib CVEs (1 Critical, 5 High, 3 Medium) fixed in Go 1.25.9 are addressed in the bundled Terraform binary.
No upstream Terraform release (including 1.14.9 and 1.15.2) is compiled with Go 1.25.9+; all use Go 1.25.8. Building from source with
GOTOOLCHAIN=go1.25.10(read fromgo.mod) is the only path forward without waiting for an upstream toolchain bump.Changes:
hardening_manifest.yaml: Replace pre-built Terraform 1.3.7 binary with Terraform 1.14.5 source tarball (matchesinstall.go). Updateterraform-provider-coderfrom 0.6.10 to 2.16.0 (matchesgo.mod).build_ironbank.sh: Download Terraform source, compile with the project's Go toolchain (1.25.10), package asterraform.zip. Addgoto dependencies. Update base image to UBI9.Dockerfile: Update base image from UBI8 8.7 to UBI9 9.6. Removepython3-urllib3to address CVE-2026-44431.Refs ENT-30
Note
Generated by Coder Agents
Context and decision log
Problem
The bundled Terraform binary in v2.33.x IronBank images was compiled with Go 1.25.8, exposing 9 CVEs. No upstream Terraform release uses Go 1.25.9+:
Approach chosen
Build Terraform from source instead of downloading pre-built binaries, using
GOTOOLCHAIN=go<version from go.mod>to pin the Go toolchain. Verified this produces a binary with go1.25.10 embedded.Why not just update the Terraform version?
Even the latest Terraform (1.15.2) is compiled with Go 1.25.8. Updating to a newer version alone does not resolve the CVEs.
Additional fixes included