chore(deps): update security updates [security] - #207
Conversation
|
🛑 Changes requested — automated reviewThe dependency update raises the module requirement to Go 1.26 without updating the repository's pinned Go 1.25 Nix development toolchain. |
NumaryBot
left a comment
There was a problem hiding this comment.
NumaryBot posted 1 new inline finding.
Summary: #207 (comment)
| module github.com/formancehq/orchestration | ||
|
|
||
| go 1.25.0 | ||
| go 1.26.0 |
There was a problem hiding this comment.
🔴 [blocker] Update the Nix Go toolchain with the module directive
The module now requires Go 1.26, but flake.nix still pins goVersion = 25. Consequently, the repository's nix develop --command just ... CI and development workflow must download an undeclared Go 1.26 toolchain, and fails outright when toolchain downloads are unavailable or GOTOOLCHAIN=local; update the pinned Nix toolchain as part of this upgrade.
e279184 to
61fcfbd
Compare
|
This PR bumps StandardsHARD — Pinned Nix toolchain (Go 1.25) no longer satisfies the module's
|
61fcfbd to
bb512f3
Compare
|
This PR correctly delivers the two requested security bumps — Standards1. The diff changes
Fix: set (The dependency-bump hunks in Spec1. Unrequested The PR body's update table lists exactly two updates: Otherwise the spec is fully satisfied: both requested bumps are present and complete, Reviewed independently by GLM (glm-5.3-flash) and DeepSeek (deepseek-v4-pro-0813) via Shipfox; verified and synthesized by GLM. |
#207 pulled in golang.org/x/crypto v0.56.0, which declares `go 1.26.0` in its own go.mod and so forced this module's go directive from 1.25.10 to 1.26.0. Nothing bumped the Nix toolchain to match, and both CI jobs run inside the dev shell, so main has been red since: Dirty: can't load config: the Go language version (go1.25) used to build golangci-lint is lower than the targeted Go version (1.26.0) Tests: compile: version "go1.26.0" does not match go tool version "go1.25.2" (building ./cmd under -race) Reverting the go directive is not an option without dropping the security patch, and the locked nixpkgs (Nov 2025) has no go_1_26 attribute, so the input is updated alongside the pin. That update also moves golangci-lint 2.6.0 -> 2.13.2, whose staticcheck reports the Temporal SDK SearchAttributes deprecation on five pre-existing call sites. Migrating to TypedSearchAttributes changes how attributes are registered and searched, which does not belong in a toolchain bump, so .golangci.yml excludes just that one diagnostic and it is tracked separately.
This PR contains the following updates:
v0.55.0->v0.56.0v1.83.1->v1.83.2Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh
CVE-2026-78662 / GO-2026-6354
More information
Details
Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection.
Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.
Severity
Unknown
References
This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh
CVE-2026-56855 / GO-2026-6355
More information
Details
Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection.
Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking.
Severity
Unknown
References
This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).
gRPC-Go xDS servers: Denial of Service (DoS) via crash due to missing
:authorityandHostheadersCVE-2026-84445 / GHSA-2v4p-qf9q-27wj
More information
Details
A vulnerability exists in gRPC-Go servers configured with
xds.NewGRPCServer()where a crafted request missing both:authorityandHostheaders can cause a server panic, resulting in a Denial of Service (DoS).Servers built with
xds.NewGRPCServerinstall an xDS routing interceptor on every RPC. This interceptor looks up the request’s:authorityheader to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither:authoritynorHost. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.
Impact
An attacker can cause a complete outage of the gRPC server by sending a request missing both
:authorityandHostheaders, provided they can successfully establish a transport connection.Patches
The issue has been addressed in
master(and backported to1.83.2and1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both:authorityandHostheaders early, maintaining consistency with and other gRPC language implementations.Severity
High
References
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
grpc/grpc-go (google.golang.org/grpc)
v1.83.2: Release 1.83.2Compare Source
Security
:authorityandHostheaders with HTTP 400 and statusInternal. (https://github.com/grpc/grpc-go/pull/9365)Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.