Skip to content

Close SSH-stack and stdlib CVEs (x/crypto v0.52.0, Go 1.25.12)#813

Open
itsouvalas wants to merge 3 commits into
developfrom
q3-2026-xcrypto-security-bump
Open

Close SSH-stack and stdlib CVEs (x/crypto v0.52.0, Go 1.25.12)#813
itsouvalas wants to merge 3 commits into
developfrom
q3-2026-xcrypto-security-bump

Conversation

@itsouvalas

Copy link
Copy Markdown
Contributor

A security patch over v9.0.1, closing the reachable SSH-stack and
standard-library advisories and adding a probe that guards the SSH
channel against future dependency drift.

golang.org/x/crypto v0.50.0 → v0.52.0. SHIELD imports
golang.org/x/crypto/ssh first-party in both roles — the shield-agent is
an SSH server, core is the client — so these are reachable. Clears eight
advisories: CVE-2026-39828, -39829, -39830, -39831, -39834, -39835,
-46595, -46597.

Go build floor 1.25.5 → 1.25.12. Closes three stdlib DoS advisories:
GO-2026-4977 and -4986 (net/mail) and -4342 (archive/zip).

SSH-channel probe (agent/xcrypto_probe_test.go). Stands up the real
shield-agent and drives a task through core's own client path, asserting
the handshake and round-trip and pinning the negotiated crypto — nothing
else exercises this channel end to end with the production client config.

Clears the eight SSH advisories that govulncheck reports as
symbol-reachable at v0.50.0: CVE-2026-39828, -39829, -39830, -39831,
-39834, -39835, -46595 and -46597. Five further advisories in the same
release are not in this build's call graph, since ssh/agent and
ssh/knownhosts are not vendored.

Pulls x/net, x/sys, x/term and x/text forward as transitive
requirements. Build, unit tests and the 398-test API suite are green,
and go vet reports only the three pre-existing warnings.
Nothing exercised the core->agent SSH channel end to end with the
production client config, though shield imports golang.org/x/crypto/ssh
first-party as both server (shield-agent) and client (core). A bump can
pass build, unit tests and the API suite while silently altering the
negotiated channel.

Adds agent/xcrypto_probe_test.go: six go-test probes that stand up the
real shield-agent, drive a task through core's own client path, and pin
the negotiated KEX, host key, cipher and MAC as a default-on drift gate.
An algorithm-inventory check catches a dropped-algorithm regression that
a matched-version round trip cannot see.

Exposes core.DefaultLegacyAgentMACs so the probe asserts core's real MAC
list rather than a copy that could drift. Behaviour is unchanged.
The go directive moves from 1.25.5 to 1.25.12, closing three residual
DoS advisories that a 1.25.5 build leaves open -- GO-2026-4977 and
-4986 in net/mail, -4342 in archive/zip, all fixed by go1.25.10.
@itsouvalas
itsouvalas requested a review from wayneeseguin July 27, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant