Repository navigation
2024.2.0.5
SSH.NET extension to authenticate via the OpenSSH agent and PuTTY Pageant.
A hardening-focused release on top of 2024.2.0.4, adding smartcard support and bounding every synchronous transport path.
Features
- PKCS#11 / smartcard keys — add and remove keys held on a PKCS#11 token through the agent (
ssh-add -s/-e): implementsSSH_AGENTC_ADD_SMARTCARD_KEY,..._ADD_SMARTCARD_KEY_CONSTRAINEDand..._REMOVE_SMARTCARD_KEY, sync and async, with the same lifetime/confirm constraints as regular keys. - sk certificate identities — FIDO / security-key identities that also carry an OpenSSH certificate (
sk-*-cert-v01@openssh.com).
Hardening
- Synchronous response length is now bounded — the sync receive path reads the whole framed response and applies OpenSSH's
AGENT_MAX_MSGLENcap (the async path already did), so a malformed or malicious length prefix is refused instead of driving an unbounded allocation. - Inner string lengths in agent messages are validated — length prefixes that overrun the message are rejected.
- Legacy Pageant
WM_COPYDATAtransport is bounded — the 8 KB shared-memory fallback path. - Synchronous unix-socket connect is bounded — a stalled connect fails fast instead of hanging (covered by a regression test).
- Invalid pipe names are tolerated when locating Pageant's OpenSSH named pipe.
Packaging / CI / Docs
- Documented minting certificates with SshNet.Keygen (pairs with SshNet.Keygen 2024.2.0.4).
- Dependabot:
actions/setup-dotnet5 → 6 and a nuget minor/patch group bump.
NuGet: https://www.nuget.org/packages/SshNet.Agent/2024.2.0.5
Full changelog: 2024.2.0.4...2024.2.0.5