OpenSSH 10.5 was released today as the latest version of the widely used open-source SSH protocol implementation, fixing an interaction between ssh-agent locking and the session-bind@openssh.com extension used to identify forwarded agents.
Previously, these binding requests were rejected while the agent was locked, allowing operations meant to remain local to be performed remotely through a forwarded agent. According to the developers, this included adding PKCS#11 tokens and using keys with destination restrictions. Plus, the SSH client also fixes a potential realloc use-after-free condition.
On the server side, OpenSSH 10.5 corrects the behavior of the restrict keyword in authorized_keys, ensuring that it also applies to tunnel forwarding. Importantly, tunnel forwarding itself remains administratively disabled by default.
Beyond the security fixes, the release introduces a useful new command-line option. Running ssh -Z user@host now prints the public keys SSH would attempt for public-key authentication, showing them in the exact order they would be tried.
OpenSSH 10.5 also brings several improvements related to FIDO authenticators. ssh-keygen can now set or clear the touch-required and verify-required flags on FIDO private keys while resetting the key’s passphrase.
In addition, the SSH client reorders the certificates attempted during public-key authentication. FIDO keys that do not require user presence are attempted first, while keys requiring verification through a PIN or biometric authentication are tried later.
The release also contains several bug fixes. ssh-keyscan now reads server banners using a non-blocking operation, preventing an unresponsive server from delaying scans involving many hosts. Meanwhile, errors from packet-handling code in sshd now include more information about the peer, such as its address, port, and user.
Other fixes include correctly propagating errors that may occur during Ed25519 key generation, fixing double-free conditions reachable only through a test harness, and using freezero in more places where appropriate.
Furthermore, OpenSSH 10.5 fixes an issue where the ChannelTimeout and RekeyLimit directives were not correctly applied inside Match blocks in sshd_config. The PAMServiceName directive is once again permitted inside Match blocks as well, restoring functionality that was unintentionally disabled during the OpenSSH 10.4 refactoring.
Perhaps one of the most interesting details accompanying OpenSSH 10.5 concerns how the project intends to handle security releases going forward. The developers say they have recently received a large number of security reports discovered either directly by AI models or with AI assistance.
While many of these reports turn out not to have meaningful security implications once realistic threat models are considered, the OpenSSH team says AI-assisted findings accompanied by human analysis, test cases, and proposed fixes are welcome.
More importantly, the developers have observed cases in which vulnerabilities initially identified with AI tools were subsequently discovered independently by other security researchers.
The project considers this an indication that malicious actors using similar tools may also be capable of finding these vulnerabilities without reporting them. Consequently, OpenSSH says it plans, at least for the time being, to publish releases more frequently so that fixes reach users sooner, rather than waiting for the project’s normally scheduled releases.
For additional details, see the release notes. OpenSSH 10.5 is available now from the project’s official mirrors, with source packages provided for both OpenSSH and Portable OpenSSH.
