Repository navigation
Security: update SSH.NET to 2026.0.0 - #46
Merged
Merged
Conversation
SSH.NET 2026.0.0 fixes GHSA-vhpg-4g9v-rppq (infinite loop in Channel.SendData when RemotePacketSize=0) and GHSA-h5q6-2gr6-3g3m (uncapped data during protocol version exchange), which affect the SshClient/SftpClient connections the app opens, plus the ScpClient advisories GHSA-q939-rpr3-3284 and GHSA-mggc-4xg6-vcxf (ScpClient is unused). Removes the NU1903 build warnings. SshNet.Keygen moves to 2026.0.0, which requires SSH.NET [2026, 2027). SshNet.PuttyKeyFile has no newer release and stays at 2024.2.0.3; it is referenced but not used in code (PPK files are read by SSH.NET's PrivateKeyFile and written by SshNet.Keygen). Adds PPK round-trip tests: keys written by SshNet.Keygen in PuTTY v2/v3 format (RSA, ED25519, ECDSA, with and without passphrase) must load with SSH.NET's PrivateKeyFile and yield the same public key. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Automated review by Claude: no blocking findings.
I read the whole diff. It bumps SSH.NET and SshNet.Keygen to 2026.0.0 in Directory.Packages.props, as central package management requires. It also adds a cross-platform PPK round-trip test that uses a temp directory and cleans it up. I did not build the code or run the tests, so I couldn't check the new package APIs. I found no change to host-key verification, file permissions, passphrase handling, backup/restore, resx strings or CI, so I found no blocking issues.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Updates SSH.NET from 2025.1.0 to 2026.0.0 (and SshNet.Keygen to 2026.0.0) to pick up security fixes and clear the NU1903 build warnings.
Changes Made
Bug fix (non-breaking change)
SSH.NET2025.1.0 → 2026.0.0. Fixes:Channel.SendDatawhenRemotePacketSize=0. Reachable through theSshClient/SftpClientconnections the app opens (a malicious server could hang it).ScpClientonly, not used by the app; these caused the NU1903 warnings.SshNet.Keygen2024.2.0.2 → 2026.0.0: required, since it pins SSH.NET[2026.0.0, 2027.0.0).SshNet.PuttyKeyFilestays at 2024.2.0.3 (no newer release). It is referenced inOpenSSH_GUI.Core.csprojbut not used in code: PPK files are read by SSH.NET'sPrivateKeyFileand written by SshNet.Keygen'sToPuttyFormat. It could be removed in a follow-up.New
PuttyKeyFileCompatibilityTests: PPK files written by SshNet.Keygen (PuTTY v2/v3; RSA, ED25519, ECDSA; with and without passphrase) must load with SSH.NET'sPrivateKeyFileand give the same public key. This guards the PPK read path, which had no test before.Testing Performed
Test Evidence
dotnet build OpenSSH_GUI.slnx -c Release: 0 errors, NU1903 warnings gonedotnet test OpenSSH_GUI.slnx -c Release: 230 passed, 3 skipped (Unix-only), 0 failed (Windows)ServerConnection).Checklist
dotnet build,dotnet test)Notes for Reviewers:
🤖 Generated with Claude Code