Repository navigation
v2.3.1
This is a v2 patch release with a security-driven toolchain and dependency
update plus small fixes. It adds no new feature. The official exact-tag release
workflow creates the stable v2.3.1 Release with make_latest=false; v2.3.0
remains GitHub latest until published-asset canaries pass and a separate
promotion is made. Ordinary ssm update stays within v2.
Security: toolchain and dependencies
- The build toolchain moves from Go 1.26.8 to Go 1.26.9.
golang.org/x/netmoves to v0.60.0, which fixes GO-2026-6603,
GO-2026-6610, GO-2026-6611, GO-2026-6612, and GO-2026-6617 reported by
govulncheck.golang.org/x/crypto,golang.org/x/sys,
golang.org/x/term, and the othergolang.org/xmodules are updated with it.
Static release binaries
All official release binaries are now built with CGO_ENABLED=0. The
linux-amd64 binary was previously dynamically linked against glibc and is now
statically linked, which benefits hosts with an older glibc and Alpine. This is
a user-visible change in how the binary is built; command behavior does not
change.
sshctl tunnel port parsing
-L 0:host:portand-L [bind:]0:host:portnow correctly listen on port 0,
so the operating system assigns the listening port.- A remote IPv6 target that contains a
:0:segment is no longer altered. - Ports accept plain decimal digits only.
+80and-0are now rejected; this
tightens input that was previously accepted. - Remote target port 0 is still rejected.
Development script
scripts/ssh_matrix_test.sh now works with PAM public-key authentication when
run as root. It is a development and CI script only and is not part of the
release binaries.
There is no request-schema or JSON-field breaking change. No request or result
field and no error code is added or removed. The request schema structure is
unchanged; only its version-bound $id and title are updated to v2.3.1.
Changes since v2.3.0
- Updated the build toolchain to Go 1.26.9 and
golang.org/x/netto v0.60.0,
clearing fivegovulncheckfindings. - Built all official release binaries with
CGO_ENABLED=0, so linux-amd64 is
now statically linked. - Fixed
sshctl tunnellistener port 0 handling and remote IPv6 targets
containing:0:; ports now accept plain decimal digits only. - Fixed
scripts/ssh_matrix_test.shPAM public-key authentication when run as
root.