Skip to content

security - patch Go, CA and x/text/x/image advisories (23 Oct 2026) - #199

Merged
gocanto merged 1 commit into
mainfrom
security/2026-10-23-runtime-patches
Oct 23, 2026
Merged

gocanto merged 1 commit into
mainfrom
security/2026-10-23-runtime-patches

Conversation

@gocanto

@gocanto gocanto commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

Changes

Change Advisory
Go 1.26.3 → 1.26.10 in go.mod, gofmt.yml, tests.yml, build.mk, Dockerfile.builder, dockerfile-api and the docker-compose.yml and app.mk toolchain defaults Go 1.26.10 security release (eMudhra CA, CVE-2026-111943)
golang:1.26.10-alpine3.23 digest sha256:0525c952… and alpine:3.23 digest sha256:21f3e19b… (Alpine 3.23.7, ca-certificates 20261020-r0); BASE_IMAGE_REVISION 6 → 7 CVE-2026-111943
APK pins: musl and musl-dev 1.2.5-r23 → r24, zlib 1.3.2-r0 → r1, tzdata 2026d-r0 → 2026e-r0; all four checksums/*.sha256 regenerated with generate-checksums.sh Alpine main no longer serves the old zlib and tzdata files, so the base-image build on main already fails
docker-compose.yml BASE_IMAGE_VERSION default 1.26.3-alpine3.23-r4 → 1.26.10-alpine3.23-r7 Also fixes drift: build.mk was already on r6
postgres:18.4-alpine digest 96d56f7f… → 9a8afca5… in the compose file and Testcontainers helpers Digest refresh
golang.org/x/text v0.37.0 → v0.41.0 GO-2026-5970 (GHSA-jpjm-c3r5-q96r, high), GO-2026-6629 (GHSA-gx9w-9qq8-m485, high)
golang.org/x/image v0.41.0 → v0.45.0 GO-2026-5061 (GHSA-m43h-mp45-ghq6, high), GO-2026-4961, GO-2026-6222

x/sync moved to v0.22.0 and x/sys to v0.47.0 as go get required.

Checks

  • go build ./... and go vet ./... (Go 1.26.10): pass.
  • go test ./...: every package without a database passes. The Postgres Testcontainers suites failed locally because Docker Desktop's published ports are broken (mapped port: "invalid port"). They also failed when rerun serially. Continuous Integration (CI) should run them.
  • govulncheck ./...: the x/text and x/image findings are cleared. Two reachable findings remain.

Follow-ups

  • golang.org/x/crypto v0.52.0: GO-2026-6354 and GO-2026-6355 (ssh channel denial of service) are fixed in v0.56.0. Severity is unrated, so this PR leaves them.
  • Caddy CADDY_VERSION=2.10.2 is frozen on Alpine 3.22.3 with ca-certificates 20250911. Only caddy:2-alpine (2.11.7) carries 20261020-r0, so moving Caddy is a minor-version decision.
  • postgres:18.4-alpine has not been rebuilt with the refreshed CA bundle. Refresh the digest again when it is.
  • The base images must be rebuilt and published at revision r7 before dockerfile-api can pull them.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated the Go toolchain to 1.26.10 across builds and workflows.
    • Refreshed Go library versions and Alpine-based build and runtime images, including system package updates.
    • Updated the pinned PostgreSQL test image for consistent test environments.

Move Go 1.26.3 to 1.26.10 and rebuild the Alpine base images on the
refreshed digests that carry ca-certificates 20261020-r0 (eMudhra CA,
CVE-2026-111943). Refresh the APK pins and checksums the base images
need, the postgres:18.4-alpine test digest, and bump golang.org/x/text
to v0.41.0 and golang.org/x/image to v0.45.0 for the reachable high
advisories govulncheck reports.
@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Essentials
  • Run ID: 4a251a25-a768-42b4-8f8f-55b502f3ab37
📥 Commits

Reviewing files that changed from the base of the PR and between 4af48c7 and 581467b.

⛔ Files ignored due to path filters: 1
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing: 21
  • .github/workflows/gofmt.yml
  • .github/workflows/tests.yml
  • database/connection_test.go
  • database/seeder/importer/runner_test.go
  • database/seeder/seeds/seeder_test.go
  • docker-compose.yml
  • go.mod
  • infra/docker/base-images/Dockerfile.builder
  • infra/docker/base-images/Dockerfile.runtime
  • infra/docker/base-images/checksums/builder-aarch64.sha256
  • infra/docker/base-images/checksums/builder-x86_64.sha256
  • infra/docker/base-images/checksums/runtime-aarch64.sha256
  • infra/docker/base-images/checksums/runtime-x86_64.sha256
  • infra/docker/base-images/generate-checksums.sh
  • infra/docker/dockerfile-api
  • infra/makefile/app.mk
  • infra/makefile/build.mk
  • internal/testutil/dbtest/helpers.go
  • metal/cli/clitest/helpers.go
  • pkg/middleware/token_middleware_additional_test.go
  • pkg/middleware/token_middleware_test.go

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.

Walkthrough

The pull request updates Go to 1.26.10, advances four Go module dependencies, refreshes pinned Alpine packages and image digests, and changes PostgreSQL 18.4 Alpine digests used by Compose and tests.

Changes

Go toolchain and dependency versions

Layer / File(s) Summary
Go toolchain and dependency versions
.github/workflows/*, go.mod, docker-compose.yml, infra/docker/base-images/Dockerfile.builder, infra/docker/dockerfile-api, infra/makefile/*
Go version defaults and workflow matrices change to 1.26.10. The golang.org/x/image, golang.org/x/text, golang.org/x/sync and golang.org/x/sys versions are updated. Docker and Makefile defaults also change.

Base-image package pins and checksums

Layer / File(s) Summary
Base-image package pins and checksums
infra/docker/base-images/Dockerfile.*, infra/docker/base-images/checksums/*, infra/docker/base-images/generate-checksums.sh
Pinned musl, musl-dev, tzdata and zlib revisions are updated where listed. The runtime Alpine image digest and the related package checksums change. The builder package list no longer includes musl-dev.

PostgreSQL image digest updates

Layer / File(s) Summary
PostgreSQL image digest updates
docker-compose.yml, database/*, internal/testutil/dbtest/helpers.go, metal/cli/clitest/helpers.go, pkg/middleware/*_test.go
The PostgreSQL 18.4 Alpine image tag remains unchanged. Its pinned digest changes in the Compose configuration and test setup code.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 58146

No actionable issue remains from this review. The change is mergeable after normal checks.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 42.86% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 8 files. (13 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly summarises the security-focused dependency and Go updates, which are the main changes in the pull request.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 42.86% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 8 files. (13 skipped: 13 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@gocanto
gocanto merged commit 6126b55 into main Oct 23, 2026
4 checks passed
@gocanto
gocanto deleted the security/2026-10-23-runtime-patches branch October 23, 2026 04:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant