Repository navigation
upgrade Go toolchain to 1.26.10 (CVE-2026-111943) - #1
Conversation
Broly Security ScanCaution Note Summary 5 actionable finding(s) in this PR
Main table: 3 shown, 2 omitted of 5 actionable finding(s) above the reporting threshold. See the repository Security tab for the full set.
Dismiss false positivesTick a box to dismiss the finding; untick it to bring the finding back. That is the same as replying
Note Re-scan this PR anytime with
|
|
Bumped golang.org/x/net v0.54.0 -> v0.61.0 (Broly CRITICAL) and x/text -> v0.43.0 in the http-metadata-server example. Tidy also moved x/crypto to v0.58.0, x/sys to v0.49.0 and the go directive to 1.26.0. Builds and vets clean with go1.26.10. |
| RUN wget https://go.dev/dl/go1.26.10.linux-amd64.tar.gz \ | ||
| && tar -C /usr/local -xzf go1.26.10.linux-amd64.tar.gz |
- monitoring: prom/prometheus v2.54.0 -> v3.15.1 (Go 1.27.3, Debian 13 base) - monitoring: grafana/grafana-oss:11.0.0 (Alpine 3.19, EOL) -> grafana/grafana:13.2.4 (Alpine 3.24) - docker: install ca-certificates in runtime stages so the updated package is pulled at build time
| @@ -0,0 +1,9 @@ | |||
| FROM grafana/grafana:13.2.4 | |||
Advisory: https://thehackernews.com/2026/10/go-issues-emergency-update-blocking.html
Version change
Go toolchain: 1.22.12 (devcontainer) / 1.23.8 (dependencies.sh, used by CI, release workflows and docker/*.Dockerfile) / go.mod toolchain go1.23.7, go1.23.8, go1.24.1 -> go1.26.10.
Go 1.26.10 adds the crypto/x509 blocklist of the eMudhra/emSign intermediates. The fix only takes effect once the binaries are rebuilt with this toolchain and redeployed.
Files changed
.devcontainer/Dockerfile: Go tarball go1.22.12 -> go1.26.10.dependencies.sh:GOVER=1.23.8->1.26.10. CI (ci.yml,ci_cu13.yml), the release workflows anddocker/mooncake.Dockerfile/docker/musa.Dockerfileall install Go through this script.mooncake-common/etcd/go.mod: toolchain -> go1.26.10. Fixes critical/high vulns: etcd client v3.5.21 -> v3.5.33, grpc v1.59.0 -> v1.83.2 (indirect). go-mod-tidy also moved x/net, x/sys, x/text, protobuf and genproto as required by the new versions.mooncake-p2p-store/src/p2pstore/go.mod: toolchain -> go1.26.10. Same etcd (v3.5.15 -> v3.5.33) and grpc (-> v1.83.2) bumps.mooncake-transfer-engine/example/http-metadata-server/go.mod: toolchain -> go1.26.10. golang.org/x/crypto v0.36.0 -> v0.52.0 (critical/high fixes). x/net, x/sys and x/text moved up with it.go line change: the
godirective went from 1.23.0 to 1.25.0 in all three modules. We did not choose this: the fixed grpc, etcd and x/crypto releases need go >= 1.25. This changes GODEBUG defaults for these modules to the 1.25 ones (for example x509 and TLS defaults introduced in 1.24 and 1.25). Every build path installs go1.26.10, so that is fine.Local build/test
All builds ran with GOTOOLCHAIN=go1.26.10:
go build ./...passes in all 3 modules.go build -buildmode=c-shared etcd_wrapper.go(as build.sh does it) also passes.go vetshows the same warnings as before the change (lostcancel in etcd_wrapper.go, unsafe.Pointer in p2pstore). Nothing new._test.gofiles in these modules.--all: exit 0 for all 3 modules (no fixable critical/high left). Medium/low findings remain, and they don't block.Impact assessment
Downtime risk: medium.
Cert exposure: none found. No emSign/eMudhra references, custom CA bundles,
x509.CertPool/RootCAs, orSSL_CERT_FILEusage. Outbound connections go to etcd and internal peers.Deploy/rollout: CI, the release workflows and the docker images get Go from
dependencies.sh, so they pick up 1.26.10 automatically. The Python wheels and images that bundlelibetcd_wrapper.soand the p2p store must be rebuilt and redeployed. The base image and libc are unchanged. CGO is used as before (c-shared). A rolling deploy should be safe because nothing changes on the wire.ca-certificates workaround: none of the upstream vendor images have been rebuilt with the fixed ca-certificates yet (nvidia/cuda 12.8.1 and mthreads/musa rc4.3.0, both Ubuntu 22.04). So
docker/mooncake.Dockerfileanddocker/musa.Dockerfilenow run an upgrade ofca-certificatesfrom jammy-security right after eachFROM, and the build fails if the installed version is older than 20260816. Thebuild-musaCI container job does the same upgrade and check.monitoring/: grafana/grafana 13.2.4 (newest release, Alpine 3.24) still ships the old ca-certificates. A small wrappermonitoring/grafana/Dockerfilerunsapk upgrade ca-certificatesas root, fails if the version is below 20261020-r0, then switches back to user 472.docker-compose.ymlbuilds it, andrun.shbuilds it beforedocker run, so both use the localmooncake-grafana:13.2.4image.