OpenSSH 8.3 Released with multiple Bug fixes and added new features.
OpenSSH is the premier connectivity software for remote login with the SSH protocol. It encrypts all traffic to eliminate eavesdropping, connection hijacking, and other attacks. In addition, OpenSSH provides a large suite of secure tunneling capabilities, several authentication methods, and sophisticated configuration options.
OpenSSH 8.3 New Features
- sshd(8): make IgnoreRhosts a tri-state option: “yes” to ignore rhosts/shosts, “no” allow rhosts/shosts or (new) “shosts-only” to allow .shosts files but not .rhosts.
- sshd(8): allow the IgnoreRhosts directive to appear anywhere in a sshd_config, not just before any Match blocks.
- ssh(1): add %TOKEN percent expansion for the LocalFoward and RemoteForward keywords when used for Unix domain socket forwarding.
- all: allow loading public keys from the unencrypted envelope of a private key file if no corresponding public key file is present.
- ssh(1), sshd(8): prefer to use chacha20 from libcrypto where possible instead of the (slower) portable C implementation included in OpenSSH.
- ssh-keygen(1): add ability to dump the contents of a binary key revocation list via “ssh-keygen -lQf /path”.
scp(1): when receiving files, scp(1) could be become desynchronised if a utimes(2) system call failed. This could allow file contents to be interpreted as file metadata and thereby permit an adversary to craft a file system that, when copied with scp(1) in a
configuration that caused utimes(2) to fail (e.g. under a SELinux policy or syscall sandbox), transferred different file names and
contents to the actual file system layout.
Exploitation of this is not likely as utimes(2) does not fail under normal circumstances. Successful exploitation is not silent – the output of scp(1) would show transfer errors followed by the actual file(s) that were received.
Finally, filenames returned from the peer are (since openssh-8.0) matched against the user’s requested destination, thereby disallowing a successful exploit from writing files outside the user’s selected target glob (or directory, in the case of a recursive transfer). This ensures that this attack can achieve no more than a hostile peer is already able to achieve within the scp protocol.
- ssh(1): fix IdentitiesOnly=yes to also apply to keys loaded from a PKCS11Provider.
- ssh-keygen(1): avoid NULL dereference when trying to convert an invalid RFC4716 private key.
- scp(1): when performing remote-to-remote copies using “scp -3”, start the second ssh(1) channel with BatchMode=yes enabled to avoid confusing and non-deterministic ordering of prompts.
- ssh(1), ssh-keygen(1): when signing a challenge using a FIDO token, perform hashing of the message to be signed in the middleware layer rather than in OpenSSH code. This permits the use of security key middlewares that perform the hashing implicitly, such as Windows Hello.
- ssh(1): fix incorrect error message for “too many known hosts files.”
- ssh(1): make failures when establishing “Tunnel” forwarding terminate the connection when ExitOnForwardFailure is enabled.
- ssh-keygen(1): fix printing of fingerprints on private keys and add a regression test for same.
- sshd(8): document order of checking AuthorizedKeysFile (first) and AuthorizedKeysCommand (subsequently, if the file doesn’t match);
- sshd(8): document that /etc/hosts.equiv and /etc/shosts.equiv are not considered for HostbasedAuthentication when the target user is root.
- ssh(1), ssh-keygen(1): fix NULL dereference in private certificate key parsing (oss-fuzz #20074).
- ssh(1), sshd(8): more consistency between sets of %TOKENS are accepted in various configuration options.
- ssh(1), ssh-keygen(1): improve error messages for some common PKCS#11 C_Login failure cases.
- ssh(1), sshd(8): make error messages for problems during SSH banner exchange consistent with other SSH transport-layer error messages and ensure they include the relevant IP addresses.
- various: fix a number of spelling errors in comments and debug/error messages
- ssh-keygen(1), ssh-add(1): when downloading FIDO2 resident keys from a token, don’t prompt for a PIN until the token has told us that it needs one. Avoids double-prompting on devices that implement on-device authentication.
- sshd(8), ssh-keygen(1): no-touch-required FIDO certificate option should be an extension, not a critical option.
- ssh(1), ssh-keygen(1), ssh-add(1): offer a better error message when trying to use a FIDO key function and SecurityKeyProvider is empty.
- ssh-add(1), ssh-agent(8): ensure that a key lifetime fits within the values allowed by the wire format (u32). Prevents integer wraparound of the timeout values.
- ssh(1): detect and prevent trivial configuration loops when using ProxyJump.
- Detect systems where signals flagged with SA_RESTART will interrupt select(2). POSIX permits implementations to choose whether select(2) will return when interrupted with a SA_RESTART-flagged signal, but OpenSSH requires interrupting behaviour.
- Several compilation fixes for HP/UX and AIX.
- On platforms that do not support setting process-wide routing domains (all excepting OpenBSD at present), fail to accept a configuration attempts to set one at process start time rather than fatally erroring at run time. bz#3126
- Improve detection of egrep (used in regression tests) on platforms that offer a poor default one (e.g. Solaris).
- A number of shell portability fixes for the regression tests.
- Fix theoretical infinite loop in the glob(3) replacement implementation.
- Fix seccomp sandbox compilation problems for some Linux configurations
- Improved detection of libfido2 and some compilation fixes for some configurations when –with-security-key-builtin is selected.
– SHA1 (openssh-8.3.tar.gz) = 46c63b7ddbe46a0666222f7988c993866c31fcca
– SHA256 (openssh-8.3.tar.gz) = M6CnZ+duGs4bzDio8hQNLwyLQChV+3wkUEO8HWLV35c=
– SHA1 (/openssh-8.3p1.tar.gz) = 04c7adb9986f16746588db8988b910530c589819
– SHA256 (openssh-8.3p1.tar.gz) = 8r774Ecv5+t10jNA6xdTHLazqsJAdeIGa0H4FOEjh7I=
In its previous version OpenSSH 8.2, added support for FIDO/U2F hardware authenticators to OpenSSH. U2F/FIDO are open standards for inexpensive two-factor authentication hardware that are widely used for website authentication. In OpenSSH FIDO devices are supported by new public key types “ecdsa-sk” and “ed25519-sk”, along with corresponding certificate types.