Skip to content

fix(scripts/ironbank): rebuild bundled Terraform from source with Go 1.25.9+#25267

Merged
f0ssel merged 1 commit into
release/2.29from
fix/ironbank-terraform-go-toolchain-v2.29
May 18, 2026
Merged

fix(scripts/ironbank): rebuild bundled Terraform from source with Go 1.25.9+#25267
f0ssel merged 1 commit into
release/2.29from
fix/ironbank-terraform-go-toolchain-v2.29

Conversation

@Shelnutt2
Copy link
Copy Markdown
Contributor

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.

On v2.29.x, both the Coder binary and the Terraform binary were compiled with Go 1.25.8. The Coder binary's Go toolchain upgrade is handled separately via go.mod changes. This commit addresses the Terraform binary by building from source.

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, 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-48

Note

Generated by Coder Agents

Implementation context (Coder Agents generated)

Note on v2.29.x

v2.29.x is more severely affected than later branches: both the Coder binary AND the Terraform binary were compiled with Go 1.25.8. The Coder binary go.mod upgrade to 1.25.9+ is tracked separately (ENT-48). This PR addresses the Terraform binary component.

Go toolchain analysis

Component Before After
Terraform binary Go 1.19.4 (v1.3.7 pre-built) Built from source with project Go toolchain
terraform-provider-coder old (v0.6.10) Go 1.24.6 (v2.13.1)
Coder binary Go 1.25.8 Go 1.25.8 (unchanged by this PR)

Related PRs

…1.25.9+

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.

On v2.29.x, both the Coder binary and the Terraform binary were compiled
with Go 1.25.8. The Coder binary's Go toolchain is upgraded separately
via go.mod changes. This commit addresses the Terraform binary by
building from source.

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, 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-48
@Shelnutt2 Shelnutt2 added dependencies Pull requests that update a dependency file cherry-pick/v2.29 Needs to be cherry-picked to the 2.29 release branch labels May 13, 2026
f0ssel pushed a commit that referenced this pull request May 18, 2026
…1.25.10 (#25268)

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.

Supersedes #25248 which only did a version bump without source build.

### 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.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-37

> 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.10 (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.10 | Go 1.25.10 (unchanged) |

### Related PRs
- #25219 — main
- #25250 — release/2.33
- #25259 — release/2.32
- #25260 — release/2.31
- #25267 — release/2.29
</details>
@f0ssel f0ssel merged commit c61867b into release/2.29 May 18, 2026
38 checks passed
@f0ssel f0ssel deleted the fix/ironbank-terraform-go-toolchain-v2.29 branch May 18, 2026 19:24
@github-actions github-actions Bot locked and limited conversation to collaborators May 18, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

cherry-pick/v2.29 Needs to be cherry-picked to the 2.29 release branch dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants