Back to openssh PTS page

Accepted openssh 1:8.7p1-1 (source) into unstable

Hash: SHA512

Format: 1.8
Date: Sat, 06 Nov 2021 12:23:47 +0000
Source: openssh
Architecture: source
Version: 1:8.7p1-1
Distribution: unstable
Urgency: medium
Maintainer: Debian OpenSSH Maintainers <>
Changed-By: Colin Watson <>
Closes: 343267 609122 734386 762633 764027 875532 933665 995130 997030 997035 998069
 openssh (1:8.7p1-1) unstable; urgency=medium
   * debian/upstream/signing-key.asc: Update from upstream.
   * New upstream release (
     - scp(1): this release changes the behaviour of remote to remote copies
       (e.g. "scp host-a:/path host-b:") to transfer through the local host
       by default (closes: #734386, LP: #1462758). This was previously
       available via the -3 flag. A -R flag has been added to select the old
     - ssh(1)/sshd(8): both the client and server are now using a stricter
       configuration file parser.
     - ssh(1): when using SSHFP DNS records for host key verification, ssh(1)
       will verify all matching records instead of just those with the
       specific signature type requested.
     - ssh-keygen(1): when generating a FIDO key and specifying an explicit
       attestation challenge (using -Ochallenge), the challenge will now be
       hashed by the builtin security key middleware.
     - sshd(8): environment="..." directives in authorized_keys files are now
       first-match-wins and limited to 1024 discrete environment variable
     - scp(1): experimental support for transfers using the SFTP protocol as
       a replacement for the venerable SCP/RCP protocol that it has
       traditionally used. SFTP offers more predictable filename handling and
       does not require expansion of glob(3) patterns via the shell on the
       remote side.
       SFTP support may be enabled via a temporary scp -s flag. It is
       intended for SFTP to become the default transfer mode in the near
       future, at which time the -s flag will be removed. The -O flag exists
       to force use of the original SCP/RCP protocol for cases where SFTP may
       be unavailable or incompatible.
     - sftp-server(8): add a protocol extension to support expansion of ~/
       and ~user/ prefixed paths. This was added to support these paths when
       used by scp(1) while in SFTP mode.
     - ssh(1): add a ForkAfterAuthentication ssh_config(5) counterpart to the
       ssh(1) -f flag. GHPR231
     - ssh(1): add a StdinNull directive to ssh_config(5) that allows the
       config file to do the same thing as -n does on the ssh(1) command-
       line. GHPR231
     - ssh(1): add a SessionType directive to ssh_config, allowing the
       configuration file to offer equivalent control to the -N (no session)
       and -s (subsystem) command-line flags (closes: #609122).
     - ssh-keygen(1): allowed signers files used by ssh-keygen(1) signatures
       now support listing key validity intervals alongside they key, and
       ssh-keygen(1) can optionally check during signature verification
       whether a specified time falls inside this interval. This feature is
       intended for use by git to support signing and verifying objects using
       ssh keys.
     - ssh-keygen(8): support printing of the full public key in a sshsig
       signature via a -Oprint-pubkey flag.
     - ssh(1)/sshd(8): start time-based re-keying exactly on schedule in the
       client and server mainloops. Previously the re-key timeout could
       expire but re-keying would not start until a packet was sent or
       received, causing a spin in select() if the connection was quiescent.
     - ssh-keygen(1): avoid Y2038 problem in printing certificate validity
       lifetimes. Dates past 2^31-1 seconds since epoch were displayed
       incorrectly on some platforms.
     - scp(1): allow spaces to appear in usernames for local to remote and
       scp -3 remote to remote copies.
     - ssh(1)/sshd(8): remove references to ChallengeResponseAuthentication
       in favour of KbdInteractiveAuthentication. The former is what was in
       SSHv1, the latter is what is in SSHv2 (RFC4256) and they were treated
       as somewhat but not entirely equivalent. We retain the old name as a
       deprecated alias so configuration files continue to work as well as a
       reference in the man page for people looking for it.
     - ssh(1)/ssh-add(1)/ssh-keygen(1): fix decoding of X.509 subject name
       when extracting a key from a PKCS#11 certificate.
     - ssh(1): restore blocking status on stdio fds before close. ssh(1)
       needs file descriptors in non-blocking mode to operate but it was not
       restoring the original state on exit. This could cause problems with
       fds shared with other programs via the shell.
     - ssh(1)/sshd(8): switch both client and server mainloops from select(3)
       to pselect(3). Avoids race conditions where a signal may arrive
       immediately before select(3) and not be processed until an event
     - ssh(1): sessions started with ControlPersist were incorrectly
       executing a shell when the -N (no shell) option was specified (closes:
     - ssh(1): check if IPQoS or TunnelDevice are already set before
       overriding. Prevents values in config files from overriding values
       supplied on the command line.
     - ssh(1): fix debug message when finding a private key to match a
       certificate being attempted for user authentication. Previously it
       would print the certificate's path, whereas it was supposed to be
       showing the private key's path.
     - sshd(8): match host certificates against host public keys, not private
       keys. Allows use of certificates with private keys held in a
     - ssh(1): add a workaround for a bug in OpenSSH 7.4 sshd(8), which
       allows RSA/SHA2 signatures for public key authentication but fails to
       advertise this correctly via SSH2_MSG_EXT_INFO. This causes clients of
       these server to incorrectly match PubkeyAcceptedAlgorithms and
       potentially refuse to offer valid keys.
     - sftp(1)/scp(1): degrade gracefully if a sftp-server offers the extension but fails when the client tries to invoke
     - ssh(1): allow ssh_config SetEnv to override $TERM, which is otherwise
       handled specially by the protocol. Useful in ~/.ssh/config to set TERM
       to something generic (e.g. "xterm" instead of "xterm-256color") for
       destinations that lack terminfo entries.
     - sftp-server(8): the extension was incorrectly
       marked as an operation that writes to the filesystem, which made it
       unavailable in sftp-server read-only mode.
     - ssh(1): fix SEGV in UpdateHostkeys debug() message, triggered when the
       update removed more host keys than remain present.
     - Many manual page fixes.
     - sshd(8): handle GIDs > 2^31 in getgrouplist. When compiled in 32bit
       mode, the getgrouplist implementation may fail for GIDs greater than
     - ssh(1): xstrdup environment variable used by ForwardAgent.
     - sshd(8): don't sigdie() in signal handler in privsep child process;
       this can end up causing sandbox violations.
   * New upstream release (
     - sftp-server(8): add a new protocol extension that
       allows a client to discover various server limits, including maximum
       packet size and maximum read/write length.
     - sftp(1): use the new extension (when available) to
       select better transfer lengths in the client.
     - sshd(8): Add ModuliFile keyword to sshd_config to specify the location
       of the "moduli" file containing the groups for DH-GEX.
     - ssh_config(5), sshd_config(5): sync CASignatureAlgorithms lists in
       manual pages with the current default.
     - ssh(1): ensure that pkcs11_del_provider() is called before exit.
     - ssh(1), sshd(8): fix problems in string->argv conversion. Multiple
       backslashes were not being dequoted correctly and quoted space in the
       middle of a string was being incorrectly split.
     - ssh(1): return non-zero exit status when killed by signal.
     - sftp-server(8): increase maximum SSH2_FXP_READ to match the maximum
       packet size. Also handle zero-length reads that are not explicitly
       banned by the spec.
     - sshd(8): don't mistakenly exit on transient read errors on the network
       socket (e.g. EINTR, EAGAIN).
     - Create a dedicated contrib/gnome-ssk-askpass3.c source instead of
       building it from the same file as used for GNOME2. Use the GNOME3
       gdk_seat_grab() to manage keyboard/mouse/server grabs for better
       compatibility with Wayland.
     - sshd(8): soft-disallow the fstatat64 syscall in the Linux seccomp-bpf
   * New upstream release (
     - ssh(1), sshd(8): change the first-preference signature algorithm from
       ECDSA to ED25519.
     - ssh(1), sshd(8): set the TOS/DSCP specified in the configuration for
       interactive use prior to TCP connect.
     - ssh(1), sshd(8): remove the pre-standardization cipher
     - ssh(1), sshd(8): update/replace the experimental post-quantum hybrid
       key exchange method based on Streamlined NTRU Prime coupled with
     - ssh(1): disable CheckHostIP by default. It provides insignificant
       benefits while making key rotation significantly more difficult,
       especially for hosts behind IP-based load-balancers (closes: #764027).
     - ssh(1): enable UpdateHostkeys by default subject to some conservative
       preconditions (closes: #875532):
       + The key was matched in the UserKnownHostsFile (and not in the
       + The same key does not exist under another name.
       + A certificate host key is not in use.
       + known_hosts contains no matching wildcard hostname pattern.
       + VerifyHostKeyDNS is not enabled.
       + The default UserKnownHostsFile is in use.
       We expect some of these conditions will be modified or relaxed in
     - ssh(1), sshd(8): add a new LogVerbose configuration directive that
       allows forcing maximum debug logging by file/function/line
     - ssh(1): when prompting the user to accept a new hostkey, display any
       other host names/addresses already associated with the key.
     - ssh(1): allow UserKnownHostsFile=none to indicate that no known_hosts
       file should be used to identify host keys.
     - ssh(1): add a ssh_config KnownHostsCommand option that allows the
       client to obtain known_hosts data from a command in addition to the
       usual files.
     - ssh(1): add a ssh_config PermitRemoteOpen option that allows the
       client to restrict the destination when RemoteForward is used with
     - ssh(1): for FIDO keys, if a signature operation fails with a
       "incorrect PIN" reason and no PIN was initially requested from the
       user, then request a PIN and retry the operation. This supports some
       biometric devices that fall back to requiring PIN when reading of the
       biometric failed, and devices that require PINs for all hosted
     - sshd(8): implement client address-based rate-limiting via new
       sshd_config(5) PerSourceMaxStartups and PerSourceNetBlockSize
       directives that provide more fine-grained control on a per-origin
       address basis than the global MaxStartups limit.
     - ssh(1): Prefix keyboard interactive prompts with "(user@host)" to make
       it easier to determine which connection they are associated with in
       cases like scp -3, ProxyJump, etc. (closes: #343267).
     - sshd(8): fix sshd_config SetEnv directives located inside Match
     - ssh(1): when requesting a FIDO token touch on stderr, inform the user
       once the touch has been recorded.
     - ssh(1): prevent integer overflow when ridiculously large
       ConnectTimeout values are specified, capping the effective value (for
       most platforms) at 24 days.
     - ssh(1): consider the ECDSA key subtype when ordering host key
       algorithms in the client.
     - ssh(1), sshd(8): rename the PubkeyAcceptedKeyTypes keyword to
       PubkeyAcceptedAlgorithms. The previous name incorrectly suggested that
       it control allowed key algorithms, when this option actually specifies
       the signature algorithms that are accepted. The previous name remains
       available as an alias (closes: #933665).
     - ssh(1), sshd(8): similarly, rename HostbasedKeyTypes (ssh) and
       HostbasedAcceptedKeyTypes (sshd) to HostbasedAcceptedAlgorithms.
     - sftp-server(8): add missing documentation and
       advertisement in the server's SSH2_FXP_VERSION hello packet.
     - ssh(1), sshd(8): more strictly enforce KEX state-machine by banning
       packet types once they are received. Fixes memleak caused by duplicate
     - sftp(1): allow the full range of UIDs/GIDs for chown/chgrp on 32bit
       platforms instead of being limited by LONG_MAX.
     - Minor man page fixes (capitalization, commas, etc.)
     - sftp(1): when doing an sftp recursive upload or download of a
       read-only directory, ensure that the directory is created with write
       and execute permissions in the interim so that the transfer can
       actually complete, then set the directory permission as the final
     - ssh-keygen(1): document the -Z, check the validity of its argument
       earlier and provide a better error message if it's not correct.
     - ssh(1): ignore comments at the end of config lines in ssh_config,
       similar to what we already do for sshd_config.
     - sshd_config(5): mention that DisableForwarding is valid in a
       sshd_config Match block.
     - sftp(1): fix incorrect sorting of "ls -ltr" under some circumstances.
     - ssh(1), sshd(8): fix potential integer truncation of (unlikely)
       timeout values.
     - ssh(1): make hostbased authentication send the signature algorithm in
       its SSH2_MSG_USERAUTH_REQUEST packets instead of the key type. This
       make HostbasedAcceptedAlgorithms do what it is supposed to - filter on
       signature algorithm and not key type.
     - sshd(8): add a number of platform-specific syscalls to the Linux
       seccomp-bpf sandbox.
     - sshd(8): remove debug message from sigchld handler that could cause
       deadlock on some platforms.
     - Sync contrib/ssh-copy-id with upstream.
   * Remove OpenBSD-specific rdomain references from sshd_config(5) (closes:
   * Define MAXHOSTNAMELEN on GNU/Hurd (thanks, Svante Signell; closes:
   * Build-depend on libelogind-dev as an alternative to libsystemd-dev on
     Linux (thanks, Svante Signell; closes: #997035).
   * Backport from upstream:
     - CVE-2021-41617 (closes: #995130): sshd(8) from OpenSSH 6.2 through 8.7
       failed to correctly initialise supplemental groups when executing an
       AuthorizedKeysCommand or AuthorizedPrincipalsCommand, where a
       AuthorizedKeysCommandUser or AuthorizedPrincipalsCommandUser directive
       has been set to run the command as a different user. Instead these
       commands would inherit the groups that sshd(8) was started with.
   * Configure with ac_cv_func_closefrom=no to avoid an incompatibility with
     glibc 2.34's fallback_closefrom function (thanks, William 'jawn-smith'
     Wilson; LP: #1944621).
 35a6ed3a7daa358f857bdb1588c77e55c957241d 3382 openssh_8.7p1-1.dsc
 8719032c1e47732c8fdb14adfb24b5e9e71de802 1814595 openssh_8.7p1.orig.tar.gz
 d0d0d2442bed150073213a0ce46f21944da22664 833 openssh_8.7p1.orig.tar.gz.asc
 262d4cca9c9ef007bff54b25b9aab3b4dcc81ae1 186008 openssh_8.7p1-1.debian.tar.xz
 d3b668e42f2af28f75557587ec34c3c4345ed397564cc8215dafaad8b45ab789 3382 openssh_8.7p1-1.dsc
 7ca34b8bb24ae9e50f33792b7091b3841d7e1b440ff57bc9fabddf01e2ed1e24 1814595 openssh_8.7p1.orig.tar.gz
 bb18c454a3e5d3738cb26a1c89e17c467d7a59529ec92251b26461ae04771eba 833 openssh_8.7p1.orig.tar.gz.asc
 7c6ad0691cceffca8a0f91dd3145f783b9f889bae6d1dae8c7c3dce7e2070c31 186008 openssh_8.7p1-1.debian.tar.xz
 087f6aaacc0b1bd683a8615374e4bd50 3382 net standard openssh_8.7p1-1.dsc
 f545230799f131aecca04da56e61990a 1814595 net standard openssh_8.7p1.orig.tar.gz
 a0da35bba461f8f5dda6cd257b74a59a 833 net standard openssh_8.7p1.orig.tar.gz.asc
 f0f194cdc390456e450cfc25023e16df 186008 net standard openssh_8.7p1-1.debian.tar.xz