openssh (1:9.2p1-2+deb12u2) bookworm-security; urgency=medium * Cherry-pick from upstream: - [CVE-2023-28531] ssh-add(1): when adding smartcard keys to ssh-agent(1) with the per-hop destination constraints (ssh-add -h ...) added in OpenSSH 8.9, a logic error prevented the constraints from being communicated to the agent. This resulted in the keys being added without constraints. The common cases of non-smartcard keys and keys without destination constraints are unaffected. This problem was reported by Luci Stanescu (closes: #1033166). - [CVE-2023-48795] ssh(1), sshd(8): implement protocol extensions to thwart the so-called "Terrapin attack" discovered by Fabian Bäumer, Marcus Brinkmann and Jörg Schwenk. This attack allows a MITM to effect a limited break of the integrity of the early encrypted SSH transport protocol by sending extra messages prior to the commencement of encryption, and deleting an equal number of consecutive messages immediately after encryption starts. A peer SSH client/server would not be able to detect that messages were deleted. - [CVE-2023-51384] ssh-agent(1): when adding PKCS#11-hosted private keys while specifying destination constraints, if the PKCS#11 token returned multiple keys then only the first key had the constraints applied. Use of regular private keys, FIDO tokens and unconstrained keys are unaffected. - [CVE-2023-51385] ssh(1): if an invalid user or hostname that contained shell metacharacters was passed to ssh(1), and a ProxyCommand, LocalCommand directive or "match exec" predicate referenced the user or hostname via %u, %h or similar expansion token, then an attacker who could supply arbitrary user/hostnames to ssh(1) could potentially perform command injection depending on what quoting was present in the user-supplied ssh_config(5) directive. ssh(1) now bans most shell metacharacters from user and hostnames supplied via the command-line. -- Colin Watson <cjwatson@debian.org> Tue, 19 Dec 2023 14:51:56 +0000 openssh (1:9.2p1-2+deb12u1) bookworm; urgency=medium * Cherry-pick from OpenSSH 9.3p2: - [CVE-2023-38408] Fix a condition where specific libraries loaded via ssh-agent(1)'s PKCS#11 support could be abused to achieve remote code execution via a forwarded agent socket (closes: #1042460). -- Colin Watson <cjwatson@debian.org> Sat, 23 Sep 2023 23:11:33 +0100 openssh (1:9.2p1-2) unstable; urgency=medium * Fix mistakenly-unreleased entry for 1:9.2p1-1 in debian/NEWS. -- Colin Watson <cjwatson@debian.org> Wed, 08 Feb 2023 10:43:07 +0000 openssh (1:9.2p1-1) unstable; urgency=medium * Set "UsePAM yes" when running regression tests, to match our default sshd configuration. * Ignore Lintian error about depending on lsb-base for now, to avoid problems with partial upgrades on non-default init systems. * New upstream release (https://www.openssh.com/releasenotes.html#9.2p1): - [SECURITY] sshd(8): fix a pre-authentication double-free memory fault introduced in OpenSSH 9.1. This is not believed to be exploitable, and it occurs in the unprivileged pre-auth process that is subject to chroot(2) and is further sandboxed on most major platforms. - [SECURITY] ssh(8): in OpenSSH releases after 8.7, the PermitRemoteOpen option would ignore its first argument unless it was one of the special keywords "any" or "none", causing the permission list to fail open if only one permission was specified. - [SECURITY] ssh(1): if the CanonicalizeHostname and CanonicalizePermittedCNAMEs options were enabled, and the system/libc resolver did not check that names in DNS responses were valid, then use of these options could allow an attacker with control of DNS to include invalid characters (possibly including wildcards) in names added to known_hosts files when they were updated. These names would still have to match the CanonicalizePermittedCNAMEs allow-list, so practical exploitation appears unlikely. - ssh(1): add a new EnableEscapeCommandline ssh_config(5) option that controls whether the client-side ~C escape sequence that provides a command-line is available. Among other things, the ~C command-line could be used to add additional port-forwards at runtime. This option defaults to "no", disabling the ~C command-line that was previously enabled by default. - sshd(8): add support for channel inactivity timeouts via a new sshd_config(5) ChannelTimeout directive. This allows channels that have not seen traffic in a configurable interval to be automatically closed. Different timeouts may be applied to session, X11, agent and TCP forwarding channels. - sshd(8): add a sshd_config UnusedConnectionTimeout option to terminate client connections that have no open channels for a length of time. This complements the ChannelTimeout option above. - sshd(8): add a -V (version) option to sshd like the ssh client has. - ssh(1): add a "Host" line to the output of ssh -G showing the original hostname argument. bz3343 - scp(1), sftp(1): add a -X option to both scp(1) and sftp(1) to allow control over some SFTP protocol parameters: the copy buffer length and the number of in-flight requests, both of which are used during upload/download. Previously these could be controlled in sftp(1) only. This makes them available in both SFTP protocol clients using the same option character sequence. - ssh-keyscan(1): allow scanning of complete CIDR address ranges, e.g. "ssh-keyscan 192.168.0.0/24". If a CIDR range is passed, then it will be expanded to all possible addresses in the range including the all-0s and all-1s addresses. - ssh(1): support dynamic remote port forwarding in escape command-line's -R processing. - ssh(1): when restoring non-blocking mode to stdio fds, restore exactly the flags that ssh started with and don't just clobber them with zero, as this could also remove the append flag from the set. - ssh(1): avoid printf("%s", NULL) if using UserKnownHostsFile=none and a hostkey in one of the system known hosts file changes. - scp(1): switch scp from using pipes to a socket-pair for communication with its ssh sub-processes, matching how sftp(1) operates. - sshd(8): clear signal mask early in main(); sshd may have been started with one or more signals masked (sigprocmask(2) is not cleared on fork/exec) and this could interfere with various things, e.g. the login grace timer. Execution environments that fail to clear the signal mask before running sshd are clearly broken, but apparently they do exist. - ssh(1): warn if no host keys for hostbased auth can be loaded. - sshd(8): Add server debugging for hostbased auth that is queued and sent to the client after successful authentication, but also logged to assist in diagnosis of HostbasedAuthentication problems. - ssh(1): document use of the IdentityFile option as being usable to list public keys as well as private keys. - sshd(8): check for and disallow MaxStartups values less than or equal to zero during config parsing, rather than failing later at runtime. - ssh-keygen(1): fix parsing of hex cert expiry times specified on the command-line when acting as a CA. - scp(1): when scp(1) is using the SFTP protocol for transport (the default), better match scp/rcp's handling of globs that don't match the globbed characters but do match literally (e.g. trying to transfer a file named "foo.[1]"). Previously scp(1) in SFTP mode would not match these pathnames but legacy scp/rcp mode would. - ssh-agent(1): document the "-O no-restrict-websafe" command-line option. - ssh(1): honour user's umask(2) if it is more restrictive then the ssh default (022). - sshd(8): allow writev(2) in the Linux seccomp sandbox. This seems to be used by recent glibcs at least in some configurations during error conditions. - sshd(8): simplify handling of SSH_CONNECTION PAM env var, removing global variable and checking the return value from pam_putenv. - sshd(8): disable SANDBOX_SECCOMP_FILTER_DEBUG that was mistakenly enabled during the OpenSSH 9.1 release cycle. - sshd(8): defer PRNG seeding until after the initial closefrom(2) call. PRNG seeding will initialize OpenSSL, and some engine providers (e.g. Intel's QAT) will open descriptors for their own use that closefrom(2) could clobber. * debian/run-tests: Add a little more flexibility for debugging. -- Colin Watson <cjwatson@debian.org> Wed, 08 Feb 2023 10:36:06 +0000 openssh (1:9.1p1-2) unstable; urgency=medium [ Christian Göttsche ] * Do not copy SELinux security context in postinst. [ Colin Watson ] * Add missing ${misc:Depends} to Depends for openssh-client-udeb, openssh-server-udeb. * Use secure URI in Homepage field. * Remove 2 obsolete maintscript entries in 2 files. * Fix day-of-week for changelog entries 1:3.0.2p1-9, 1:3.0.2p1-2, 1:3.0.1p1-1. * Remove deprecated Encoding key from desktop file debian/ssh-askpass-gnome.desktop. * Update standards version to 4.6.2, no changes needed. * debian/tests/regress: Adjust to cope with changes in adduser 3.130 (see #625758). -- Colin Watson <cjwatson@debian.org> Tue, 03 Jan 2023 11:57:19 +0000 openssh (1:9.1p1-1) unstable; urgency=medium [ Markus Teich ] * Delete obsolete upstart configuration override. [ Colin Watson ] * Work around apparent dh-exec regressions (closes: #1016340). * Don't install unnecessary *.lo files in openssh-tests. * Update Lintian overrides to current syntax. * Pass on compiler/linker flags when building debian/keygen-test. * Remove obsolete and misleading rcp/rlogin/rsh alternatives, and stop providing rsh-client (closes: #197037). * Add sshd_config checksums for 1:8.2p1-1 and 1:8.7p1-1 to ucf reference file. * New upstream release (https://www.openssh.com/releasenotes.html#9.1p1, closes: #1021585): - ssh-keyscan(1): fix a one-byte overflow in SSH- banner processing. - ssh-keygen(1): double free() in error path of file hashing step in signing/verify code. - ssh-keysign(8): double-free in error path introduced in openssh-8.9. - ssh(1), sshd(8): SetEnv directives in ssh_config and sshd_config are now first-match-wins to match other directives. Previously if an environment variable was multiply specified the last set value would have been used. - ssh-keygen(8): ssh-keygen -A (generate all default host key types) will no longer generate DSA keys, as these are insecure and have not been used by default for some years. - ssh(1), sshd(8): add a RequiredRSASize directive to set a minimum RSA key length. Keys below this length will be ignored for user authentication and for host authentication in sshd(8). ssh(1) will terminate a connection if the server offers an RSA key that falls below this limit, as the SSH protocol does not include the ability to retry a failed key exchange. - sftp-server(8): add a "users-groups-by-id@openssh.com" extension request that allows the client to obtain user/group names that correspond to a set of uids/gids. - sftp(1): use "users-groups-by-id@openssh.com" sftp-server extension (when available) to fill in user/group names for directory listings. - sftp-server(8): support the "home-directory" extension request defined in draft-ietf-secsh-filexfer-extensions-00. This overlaps a bit with the existing "expand-path@openssh.com", but some other clients support it. - ssh-keygen(1), sshd(8): allow certificate validity intervals, sshsig verification times and authorized_keys expiry-time options to accept dates in the UTC time zone in addition to the default of interpreting them in the system time zone. YYYYMMDD and YYMMDDHHMM[SS] dates/times will be interpreted as UTC if suffixed with a 'Z' character. Also allow certificate validity intervals to be specified in raw seconds-since-epoch as hex value, e.g. -V 0x1234:0x4567890. This is intended for use by regress tests and other tools that call ssh-keygen as part of a CA workflow. - sftp(1): allow arguments to the sftp -D option, e.g. sftp -D "/usr/libexec/sftp-server -el debug3". - ssh-keygen(1): allow the existing -U (use agent) flag to work with "-Y sign" operations, where it will be interpreted to require that the private keys is hosted in an agent. - ssh-keygen(1): implement the "verify-required" certificate option. This was already documented when support for user-verified FIDO keys was added, but the ssh-keygen(1) code was missing. - ssh-agent(1): hook up the restrict_websafe command-line flag; previously the flag was accepted but never actually used. - sftp(1): improve filename tab completions: never try to complete names to non-existent commands, and better match the completion type (local or remote filename) against the argument position being completed. - ssh-keygen(1), ssh(1), ssh-agent(1): several fixes to FIDO key handling, especially relating to keys that request user-verification. These should reduce the number of unnecessary PIN prompts for keys that support intrinsic user verification. - ssh-keygen(1): when enrolling a FIDO resident key, check if a credential with matching application and user ID strings already exists and, if so, prompt the user for confirmation before overwriting the credential. - sshd(8): improve logging of errors when opening authorized_keys files. - ssh(1): avoid multiplexing operations that could cause SIGPIPE from causing the client to exit early. - ssh_config(5), sshd_config(5): clarify that the RekeyLimit directive applies to both transmitted and received data. - ssh-keygen(1): avoid double fclose() in error path. - sshd(8): log an error if pipe() fails while accepting a connection. - ssh-keyscan(1): add missing *-sk types to ssh-keyscan manpage. - sshd(8): ensure that authentication passwords are cleared from memory in error paths. - ssh(1), ssh-agent(1): avoid possibility of notifier code executing kill(-1). - ssh_config(5): note that the ProxyJump directive also accepts the same tokens as ProxyCommand. - scp(1): do not ftruncate(3) files early when in sftp mode. The previous behaviour of unconditionally truncating the destination file would cause "scp ~/foo localhost:foo" and the reverse "scp localhost:foo ~/foo" to delete all the contents of their destination. - ssh-keygen(1): improve error message when 'ssh-keygen -Y sign' is unable to load a private key. - sftp(1), scp(1): when performing operations that glob(3) a remote path, ensure that the implicit working directory used to construct that path escapes glob(3) characters. This prevents glob characters from being processed in places they shouldn't, e.g. "cd /tmp/a*/", "get *.txt" should have the get operation treat the path "/tmp/a*" literally and not attempt to expand it (LP: #1483751). - ssh(1), sshd(8): be stricter in which characters will be accepted in specifying a mask length; allow only 0-9. - ssh-keygen(1): avoid printing hash algorithm twice when dumping a KRL. - ssh(1), sshd(8): continue running local I/O for open channels during SSH transport rekeying. This should make ~-escapes work in the client (e.g. to exit) if the connection happened to have stalled during a rekey event. - ssh(1), sshd(8): avoid potential poll() spin during rekeying. - Further hardening for sshbuf internals: disallow "reparenting" a hierarchical sshbuf and zero the entire buffer if reallocation fails. - sshd(8): add AUDIT_ARCH_PPC to supported seccomp sandbox architectures. * Drop patch to work around https://twistedmatrix.com/trac/ticket/9765, since the fix for that is in Debian testing. * Rewrite gnome-ssh-askpass(1) manual page using mdoc macros, and flesh it out a bit more. [ Steve Langasek ] * Support systemd socket activation. Migrate any existing inetd-style socket activation to systemd socket activation. [ Gioele Barabucci ] * Remove ancient version constraints. * d/openssh-server.{postinst,config}: get_config_option: Replace perl with sed. -- Colin Watson <cjwatson@debian.org> Mon, 14 Nov 2022 16:25:45 +0000 openssh (1:9.0p1-1) unstable; urgency=medium * New upstream release (https://www.openssh.com/releasenotes.html#9.0p1): - scp(1): Use the SFTP protocol by default (closes: #144579, #204546, #327019). This changes scp's quoting semantics by no longer performing wildcard expansion using the remote shell, and (with some server versions) no longer expanding ~user paths. The -O option is available to use the old protocol. See NEWS.Debian for more details. - ssh(1), sshd(8): use the hybrid Streamlined NTRU Prime + x25519 key exchange method by default ("sntrup761x25519-sha512@openssh.com"). The NTRU algorithm is believed to resist attacks enabled by future quantum computers and is paired with the X25519 ECDH key exchange (the previous default) as a backstop against any weaknesses in NTRU Prime that may be discovered in the future. The combination ensures that the hybrid exchange offers at least as good security as the status quo. - sftp-server(8): support the "copy-data" extension to allow server- side copying of files/data, following the design in draft-ietf-secsh-filexfer-extensions-00. - sftp(1): add a "cp" command to allow the sftp client to perform server-side file copies. - ssh(1), sshd(8): upstream: fix poll(2) spin when a channel's output fd closes without data in the channel buffer (closes: #1007822). - sshd(8): pack pollfd array in server listen/accept loop. Could cause the server to hang/spin when MaxStartups > RLIMIT_NOFILE. - ssh-keygen(1): avoid NULL deref via the find-principals and check-novalidate operations. bz3409 and GHPR307 respectively. - scp(1): fix a memory leak in argument processing. - sshd(8): don't try to resolve ListenAddress directives in the sshd re-exec path. They are unused after re-exec and parsing errors (possible for example if the host's network configuration changed) could prevent connections from being accepted. - sshd(8): when refusing a public key authentication request from a client for using an unapproved or unsupported signature algorithm include the algorithm name in the log message to make debugging easier. - ssh(1), sshd(8): Fix possible integer underflow in scan_scaled(3) parsing of K/M/G/etc quantities. - sshd(8): default to not using sandbox when cross compiling. On most systems poll(2) does not work when the number of FDs is reduced with setrlimit, so assume it doesn't when cross compiling and we can't run the test. * Remove obsolete FAQ, removed from openssh.com in 2016. -- Colin Watson <cjwatson@debian.org> Sat, 09 Apr 2022 14:14:10 +0100 openssh (1:8.9p1-3) unstable; urgency=medium * Allow ppoll_time64 in seccomp filter (closes: #1006445). -- Colin Watson <cjwatson@debian.org> Fri, 25 Feb 2022 23:30:49 +0000 openssh (1:8.9p1-2) unstable; urgency=medium * Improve detection of -fzero-call-used-regs=all support. -- Colin Watson <cjwatson@debian.org> Thu, 24 Feb 2022 16:09:56 +0000 openssh (1:8.9p1-1) unstable; urgency=medium * New upstream release (https://www.openssh.com/releasenotes.html#8.9p1): - sshd(8): fix an integer overflow in the user authentication path that, in conjunction with other logic errors, could have yielded unauthenticated access under difficult to exploit conditions. - sshd(8), portable OpenSSH only: this release removes in-built support for MD5-hashed passwords. - ssh(1), sshd(8), ssh-add(1), ssh-agent(1): add a system for restricting forwarding and use of keys added to ssh-agent(1). - ssh(1), sshd(8): add the sntrup761x25519-sha512@openssh.com hybrid ECDH/x25519 + Streamlined NTRU Prime post-quantum KEX to the default KEXAlgorithms list (after the ECDH methods but before the prime-group DH ones). The next release of OpenSSH is likely to make this key exchange the default method. - ssh-keygen(1): when downloading resident keys from a FIDO token, pass back the user ID that was used when the key was created and append it to the filename the key is written to (if it is not the default). Avoids keys being clobbered if the user created multiple resident keys with the same application string but different user IDs. - ssh-keygen(1), ssh(1), ssh-agent(1): better handling for FIDO keys on tokens that provide user verification (UV) on the device itself, including biometric keys, avoiding unnecessary PIN prompts. - ssh-keygen(1): add "ssh-keygen -Y match-principals" operation to perform matching of principals names against an allowed signers file. To be used towards a TOFU model for SSH signatures in git. - ssh-add(1), ssh-agent(1): allow pin-required FIDO keys to be added to ssh-agent(1). $SSH_ASKPASS will be used to request the PIN at authentication time. - ssh-keygen(1): allow selection of hash at sshsig signing time (either sha512 (default) or sha256). - ssh(1), sshd(8): read network data directly to the packet input buffer instead indirectly via a small stack buffer. Provides a modest performance improvement. - ssh(1), sshd(8): read data directly to the channel input buffer, providing a similar modest performance improvement. - ssh(1): extend the PubkeyAuthentication configuration directive to accept yes|no|unbound|host-bound to allow control over one of the protocol extensions used to implement agent-restricted keys. - sshd(8): document that CASignatureAlgorithms, ExposeAuthInfo and PubkeyAuthOptions can be used in a Match block. - sshd(8): fix possible string truncation when constructing paths to .rhosts/.shosts files with very long user home directory names. - ssh-keysign(1): unbreak for KEX algorithms that use SHA384/512 exchange hashes. - ssh(1): don't put the TTY into raw mode when SessionType=none, avoids ^C being unable to kill such a session. - scp(1): fix some corner-case bugs in SFTP-mode handling of ~-prefixed paths. - ssh(1): unbreak hostbased auth using RSA keys. Allow ssh(1) to select RSA keys when only RSA/SHA2 signature algorithms are configured (this is the default case). Previously RSA keys were not being considered in the default case. - ssh-keysign(1): make ssh-keysign use the requested signature algorithm and not the default for the key type. Part of unbreaking hostbased auth for RSA/SHA2 keys. - ssh(1): stricter UpdateHostkey signature verification logic on the client-side. Require RSA/SHA2 signatures for RSA hostkeys except when RSA/SHA1 was explicitly negotiated during initial KEX. - ssh(1), sshd(8): fix signature algorithm selection logic for UpdateHostkeys on the server side. The previous code tried to prefer RSA/SHA2 for hostkey proofs of RSA keys, but missed some cases. This will use RSA/SHA2 signatures for RSA keys if the client proposed these algorithms in initial KEX. - All: convert all uses of select(2)/pselect(2) to poll(2)/ppoll(2). This includes the mainloops in ssh(1), ssh-agent(1), ssh-agent(1) and sftp-server(8), as well as the sshd(8) listen loop and all other FD read/writability checks. On platforms with missing or broken poll(2)/ppoll(2) syscalls a select(2)-based compat shim is available. - ssh-keygen(1): the "-Y find-principals" command was verifying key validity when using ca certs but not with simple key lifetimes within the allowed signers file. - ssh-keygen(1): make sshsig verify-time argument parsing optional. - sshd(8): fix truncation in rhosts/shosts path construction. - ssh(1), ssh-agent(1): avoid xmalloc(0) for PKCS#11 keyid for ECDSA keys (we already did this for RSA keys). Avoids fatal errors for PKCS#11 libraries that return empty keyid, e.g. Microchip ATECC608B "cryptoauthlib". - ssh(1), ssh-agent(1): improve the testing of credentials against inserted FIDO: ask the token whether a particular key belongs to it in cases where the token supports on-token user-verification (e.g. biometrics) rather than just assuming that it will accept it. Will reduce spurious "Confirm user presence" notifications for key handles that relate to FIDO keys that are not currently inserted in at least some cases. - ssh(1), sshd(8): correct value for IPTOS_DSCP_LE. It needs to allow for the preceding two ECN bits. - ssh-keygen(1): add missing -O option to usage() for the "-Y sign" option. - ssh-keygen(1): fix a NULL deref when using the find-principals function, when matching an allowed_signers line that contains a namespace restriction, but no restriction specified on the command-line - ssh-agent(1): fix memleak in process_extension(). - ssh(1): suppress "Connection to xxx closed" messages when LogLevel is set to "error" or above. - ssh(1), sshd(8): use correct zlib flags when inflate(3)-ing compressed packet data. - scp(1): when recursively transferring files in SFTP mode, create the destination directory if it doesn't already exist to match scp(1) in legacy RCP mode behaviour. - scp(1): many improvements in error message consistency between scp(1) in SFTP mode vs legacy RCP mode. - sshd(8): fix potential race in SIGTERM handling. - ssh(1), ssh(8): since DSA keys are deprecated, move them to the end of the default list of public keys so that they will be tried last. - ssh-keygen(1): allow 'ssh-keygen -Y find-principals' to match wildcard principals in allowed_signers files. - ssh(1), sshd(8): don't trust closefrom(2) on Linux. glibc's implementation does not work in a chroot when the kernel does not have close_range(2). It tries to read from /proc/self/fd and when that fails dies with an assertion of sorts. Instead, call close_range(2) directly from our compat code and fall back if that fails. - Correct handling of exceptfds/POLLPRI in our select(2)-based poll(2)/ppoll(2) compat implementation. * Drop patch to work around https://twistedmatrix.com/trac/ticket/9515, since the fix for that is in Debian stable. -- Colin Watson <cjwatson@debian.org> Thu, 24 Feb 2022 11:06:15 +0000 openssh (1:8.8p1-1) unstable; urgency=medium * New upstream release (https://www.openssh.com/releasenotes.html#8.8p1, closes: #996391): - This release disables RSA signatures using the SHA-1 hash algorithm by default. (Existing RSA keys may still be used and do not need to be replaced; see NEWS.Debian if you have problems connecting to old SSH servers.) - ssh(1): allow the ssh_config(5) CanonicalizePermittedCNAMEs directive to accept a "none" argument to specify the default behaviour. - scp(1): when using the SFTP protocol, continue transferring files after a transfer error occurs, better matching original scp/rcp behaviour. - ssh(1): fixed a number of memory leaks in multiplexing, - ssh-keygen(1): avoid crash when using the -Y find-principals command. - A number of documentation and manual improvements. - ssh(1)/sshd(8): some fixes to the pselect(2) replacement compatibility code. * Work around missing RSA SHA-2 signature support in conch until the upstream fix lands in Debian. -- Colin Watson <cjwatson@debian.org> Tue, 15 Feb 2022 19:20:21 +0000 openssh (1:8.7p1-4) unstable; urgency=medium [ Daniel Baumann ] * Fix typo in openssh-client.alternatives (closes: #1002803). [ Colin Watson ] * Further clarify socket activation instructions. -- Colin Watson <cjwatson@debian.org> Wed, 29 Dec 2021 12:08:38 +0000 openssh (1:8.7p1-3) unstable; urgency=medium * Include unit test binaries in openssh-tests even if building with DEB_BUILD_OPTIONS=nocheck. * Install built version of sshd_config, with corrected PATH and PidFile. * Upgrade to debhelper v13. * debian/copyright: Use HTTPS in Source field. * Update renamed Lintian tag name in Lintian override. * debian/watch: Upgrade to version 4. * Clarify instructions for using socket activation to avoid accidental attempts to start the non-socket-activated service that can result in systems without a running sshd (closes: #1001320). * Remove maintainer script code for upgrades from before Debian 9. * Make the sysvinit script provide "ssh" as well as "sshd". * Set Rules-Requires-Root: no. * Use dh_installalternatives. * Simplify some debhelper overrides slightly. -- Colin Watson <cjwatson@debian.org> Wed, 29 Dec 2021 01:12:00 +0000 openssh (1:8.7p1-2) unstable; urgency=medium * Backport from upstream: - Avoid NULL deref in -Y find-principals (closes: #999593). -- Colin Watson <cjwatson@debian.org> Sat, 13 Nov 2021 13:40:50 +0000 openssh (1:8.7p1-1) unstable; urgency=medium * debian/upstream/signing-key.asc: Update from upstream. * New upstream release (https://www.openssh.com/releasenotes.html#8.7p1): - 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 behaviour. - 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 names. - 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 fires. - ssh(1): sessions started with ControlPersist were incorrectly executing a shell when the -N (no shell) option was specified (closes: #762633). - 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-agent. - 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 limits@openssh.com extension but fails when the client tries to invoke it. - 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 limits@openssh.com 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 LONG_MAX. - 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 (https://www.openssh.com/releasenotes.html#8.6p1): - sftp-server(8): add a new limits@openssh.com 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 limits@openssh.com 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 sandbox. * New upstream release (https://www.openssh.com/releasenotes.html#8.5p1): - 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 rijndael-cbc@lysator.liu.se. - ssh(1), sshd(8): update/replace the experimental post-quantum hybrid key exchange method based on Streamlined NTRU Prime coupled with X25519. - 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 GlobalKnownHostsFile). + 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 future. - ssh(1), sshd(8): add a new LogVerbose configuration directive that allows forcing maximum debug logging by file/function/line pattern-lists. - 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 SOCKS. - 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 credentials. - 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 blocks. - 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 lsetstat@openssh.com 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 SSH2_MSG_KEX_DH_GEX_REQUEST. - 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 step. - 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: #998069). * Define MAXHOSTNAMELEN on GNU/Hurd (thanks, Svante Signell; closes: #997030). * 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). -- Colin Watson <cjwatson@debian.org> Sat, 06 Nov 2021 12:23:47 +0000 openssh (1:8.4p1-6) unstable; urgency=medium [ Colin Watson ] * Rename ssh group to _ssh (closes: #990456). It's only used by ssh-agent. * debian/tests/regress: Don't fail cleanup if haveged isn't running. * Backport from upstream: - Add includes.h to compat tests (closes: #992134, LP: #1939751). * Use "command -v" in maintainer scripts rather than "which". [ Athos Ribeiro ] * d/systemd/ssh@.service: preserve the systemd managed runtime directory to ensure parallel processes will not disrupt one another when halting (LP: #1905285) (closes: #934663) -- Colin Watson <cjwatson@debian.org> Thu, 19 Aug 2021 11:04:01 +0100 openssh (1:8.4p1-5) unstable; urgency=high * CVE-2021-28041: Fix double free in ssh-agent(1) (closes: #984940). -- Colin Watson <cjwatson@debian.org> Sat, 13 Mar 2021 09:59:40 +0000 openssh (1:8.4p1-4) unstable; urgency=medium * Avoid using libmd's <sha2.h> even if it's installed (closes: #982705). -- Colin Watson <cjwatson@debian.org> Mon, 15 Feb 2021 10:25:17 +0000 openssh (1:8.4p1-3) unstable; urgency=medium * Backport from upstream: - Fix `EOF: command not found` error in ssh-copy-id (closes: #975540). -- Colin Watson <cjwatson@debian.org> Wed, 02 Dec 2020 10:32:23 +0000 openssh (1:8.4p1-2) unstable; urgency=medium * Revert incorrect upstream patch that claimed to fix the seccomp sandbox on x32 but in fact broke it instead. -- Colin Watson <cjwatson@debian.org> Mon, 26 Oct 2020 17:41:13 +0000 openssh (1:8.4p1-1) unstable; urgency=medium * New upstream release (https://www.openssh.com/txt/release-8.4): - [SECURITY] ssh-agent(1): restrict ssh-agent from signing web challenges for FIDO/U2F keys. - [SECURITY] ssh-keygen(1): Enable FIDO 2.1 credProtect extension when generating a FIDO resident key. - ssh-keygen(1): the format of the attestation information optionally recorded when a FIDO key is generated has changed. It now includes the authenticator data needed to validate attestation signatures. - The API between OpenSSH and the FIDO token middleware has changed and the SSH_SK_VERSION_MAJOR version has been incremented as a result. Third-party middleware libraries must support the current API version (7) to work with OpenSSH 8.4. - ssh(1), ssh-keygen(1): support for FIDO keys that require a PIN for each use. These keys may be generated using ssh-keygen using a new "verify-required" option. When a PIN-required key is used, the user will be prompted for a PIN to complete the signature operation. - sshd(8): authorized_keys now supports a new "verify-required" option to require FIDO signatures assert that the token verified that the user was present before making the signature. The FIDO protocol supports multiple methods for user-verification, but currently OpenSSH only supports PIN verification. - sshd(8), ssh-keygen(1): add support for verifying FIDO webauthn signatures. Webauthn is a standard for using FIDO keys in web browsers. These signatures are a slightly different format to plain FIDO signatures and thus require explicit support. - ssh(1): allow some keywords to expand shell-style ${ENV} environment variables. The supported keywords are CertificateFile, ControlPath, IdentityAgent and IdentityFile, plus LocalForward and RemoteForward when used for Unix domain socket paths. - ssh(1), ssh-agent(1): allow some additional control over the use of ssh-askpass via a new $SSH_ASKPASS_REQUIRE environment variable, including forcibly enabling and disabling its use (closes: #368657). - ssh(1): allow ssh_config(5)'s AddKeysToAgent keyword accept a time limit for keys in addition to its current flag options. Time-limited keys will automatically be removed from ssh-agent after their expiry time has passed. - scp(1), sftp(1): allow the -A flag to explicitly enable agent forwarding in scp and sftp. The default remains to not forward an agent, even when ssh_config enables it. - ssh(1): add a '%k' TOKEN that expands to the effective HostKey of the destination. This allows, e.g., keeping host keys in individual files using "UserKnownHostsFile ~/.ssh/known_hosts.d/%k" (closes: #481250). - ssh(1): add %-TOKEN, environment variable and tilde expansion to the UserKnownHostsFile directive, allowing the path to be completed by the configuration. - ssh-keygen(1): allow "ssh-add -d -" to read keys to be deleted from stdin. - sshd(8): improve logging for MaxStartups connection throttling. sshd will now log when it starts and stops throttling and periodically while in this state. - ssh(1), ssh-keygen(1): better support for multiple attached FIDO tokens. In cases where OpenSSH cannot unambiguously determine which token to direct a request to, the user is now required to select a token by touching it. In cases of operations that require a PIN to be verified, this avoids sending the wrong PIN to the wrong token and incrementing the token's PIN failure counter (tokens effectively erase their keys after too many PIN failures). - sshd(8): fix Include before Match in sshd_config (LP: #1885990). - ssh(1): close stdin/out/error when forking after authentication completes ("ssh -f ..."). - ssh(1), sshd(8): limit the amount of channel input data buffered, avoiding peers that advertise large windows but are slow to read from causing high memory consumption. - ssh-agent(1): handle multiple requests sent in a single write() to the agent. - sshd(8): allow sshd_config longer than 256k. - sshd(8): avoid spurious "Unable to load host key" message when sshd load a private key but no public counterpart. - ssh(1): prefer the default hostkey algorithm list whenever we have a hostkey that matches its best-preference algorithm. - sshd(1): when ordering the hostkey algorithms to request from a server, prefer certificate types if the known_hosts files contain a key marked as a @cert-authority. - ssh(1): perform host key fingerprint comparisons for the "Are you sure you want to continue connecting (yes/no/[fingerprint])?" prompt with case sensitivity. - sshd(8): ensure that address/masklen mismatches in sshd_config yield fatal errors at daemon start time rather than later when they are evaluated. - ssh-keygen(1): ensure that certificate extensions are lexically sorted. Previously if the user specified a custom extension then the everything would be in order except the custom ones. - ssh(1): also compare username when checking for JumpHost loops. - ssh-keygen(1): preserve group/world read permission on known_hosts files across runs of "ssh-keygen -Rf /path". The old behaviour was to remove all rights for group/other. - ssh-keygen(1): Mention the [-a rounds] flag in the ssh-keygen manual page and usage(). - sshd(8): explicitly construct path to ~/.ssh/rc rather than relying on it being relative to the current directory, so that it can still be found if the shell startup changes its directory. - sshd(8): when redirecting sshd's log output to a file, undo this redirection after the session child process is forked(). Fixes missing log messages when using this feature under some circumstances. - sshd(8): start ClientAliveInterval bookkeeping before first pass through select() loop; fixed theoretical case where busy sshd may ignore timeouts from client. - ssh(1): only reset the ServerAliveInterval check when we receive traffic from the server and ignore traffic from a port forwarding client, preventing a client from keeping a connection alive when it should be terminated. - ssh-keygen(1): avoid spurious error message when ssh-keygen creates files outside ~/.ssh. - sftp-client(1): fix off-by-one error that caused sftp downloads to make one more concurrent request that desired. This prevented using sftp(1) in unpipelined request/response mode, which is useful when debugging. - ssh(1), sshd(8): handle EINTR in waitfd() and timeout_connect() helpers. - ssh(1), ssh-keygen(1): defer creation of ~/.ssh until we attempt to write to it so we don't leave an empty .ssh directory when it's not needed. - ssh(1), sshd(8): fix multiplier when parsing time specifications when handling seconds after other units. - sshd(8): always send any PAM account messages. If the PAM account stack returns any messages, always send them to the user and not just if the check succeeds. - gnome-ssh-askpass3: ensure the "close" button is not focused by default for SSH_ASKPASS_PROMPT=none prompts. Avoids space/enter accidentally dismissing FIDO touch notifications. - gnome-ssh-askpass3: allow some control over textarea colour via $GNOME_SSH_ASKPASS_FG_COLOR and $GNOME_SSH_ASKPASS_BG_COLOR environment variables. - Detect the Frankenstein monster of Linux/X32 and allow the sandbox to function there. -- Colin Watson <cjwatson@debian.org> Tue, 20 Oct 2020 14:15:17 +0100 openssh (1:8.3p1-1) unstable; urgency=medium * New upstream release (https://www.openssh.com/txt/release-8.3): - [SECURITY] scp(1): when receiving files, scp(1) could 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. - sftp(1): reject an argument of "-1" in the same way as ssh(1) and scp(1) do instead of accepting and silently ignoring it. - sshd(8): make IgnoreRhosts a tri-state option: "yes" to ignore rhosts/shosts, "no" to 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 LocalForward 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". - 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. - 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. - 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 (closes: #932071). - 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. bz#3057. - 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. - Fix theoretical infinite loop in the glob(3) replacement implementation. * Update GSSAPI key exchange patch from https://github.com/openssh-gsskex/openssh-gsskex: - Fix connection through ProxyJump in combination with "GSSAPITrustDNS yes". - Enable SHA2-based GSSAPI key exchange methods by default as RFC 8732 was published. * Fix or suppress various shellcheck errors under debian/. * Use AUTOPKGTEST_TMP rather than the deprecated ADTTMP. * Apply upstream patch to fix the handling of Port directives after Include (closes: #962035, LP: #1876320). -- Colin Watson <cjwatson@debian.org> Sun, 07 Jun 2020 13:44:04 +0100 openssh (1:8.2p1-4) unstable; urgency=medium * Add /etc/ssh/ssh_config.d/ to openssh-client. * Add /etc/ssh/sshd_config.d/ to openssh-server (closes: #952427). * Install ssh-sk-helper even on non-Linux architectures, though it will need an external middleware library in those cases. -- Colin Watson <cjwatson@debian.org> Wed, 26 Feb 2020 10:55:07 +0000 openssh (1:8.2p1-3) unstable; urgency=medium * Reupload with -sa to work around confusion with 1:8.2p1-1 being in NEW. -- Colin Watson <cjwatson@debian.org> Sun, 23 Feb 2020 13:30:01 +0000 openssh (1:8.2p1-2) unstable; urgency=medium * Move ssh-sk-helper into openssh-client rather than shipping it in a separate package. The extra library dependencies are pretty small, so it doesn't seem worth bloating the Packages file. Suggested by Bastian Blank. -- Colin Watson <cjwatson@debian.org> Sun, 23 Feb 2020 11:31:31 +0000 openssh (1:8.2p1-1) unstable; urgency=medium * New upstream release (https://www.openssh.com/txt/release-8.2, closes: #951582): - ssh(1), sshd(8), ssh-keygen(1): this release removes the "ssh-rsa" (RSA/SHA1) algorithm from those accepted for certificate signatures (i.e. the client and server CASignatureAlgorithms option) and will use the rsa-sha2-512 signature algorithm by default when the ssh-keygen(1) CA signs new certificates. - ssh(1), sshd(8): Remove diffie-hellman-group14-sha1 from the default key exchange proposal for both the client and server. - ssh-keygen(1): The command-line options related to the generation and screening of safe prime numbers used by the diffie-hellman-group-exchange-* key exchange algorithms have changed. Most options have been folded under the -O flag. - sshd(8): The sshd listener process title visible to ps(1) has changed to include information about the number of connections that are currently attempting authentication and the limits configured by MaxStartups. - Add support for FIDO/U2F hardware authenticators. - ssh-keygen(1): Add a "no-touch-required" option when generating FIDO-hosted keys, that disables their default behaviour of requiring a physical touch/tap on the token during authentication. Note: not all tokens support disabling the touch requirement. - sshd(8): Add a sshd_config PubkeyAuthOptions directive that collects miscellaneous public key authentication-related options for sshd(8). At present it supports only a single option "no-touch-required". This causes sshd to skip its default check for FIDO/U2F keys that the signature was authorised by a touch or press event on the token hardware. - ssh(1), sshd(8), ssh-keygen(1): Add a "no-touch-required" option for authorized_keys and a similar extension for certificates. This option disables the default requirement that FIDO key signatures attest that the user touched their key to authorize them, mirroring the similar PubkeyAuthOptions sshd_config option. - ssh-keygen(1): Add support for the writing the FIDO attestation information that is returned when new keys are generated via the "-O write-attestation=/path" option. FIDO attestation certificates may be used to verify that a FIDO key is hosted in trusted hardware. OpenSSH does not currently make use of this information, beyond optionally writing it to disk. - Add support for FIDO2 resident keys. - sshd(8): Add an Include sshd_config keyword that allows including additional configuration files via glob(3) patterns (closes: #631189). - ssh(1)/sshd(8): Make the LE (low effort) DSCP code point available via the IPQoS directive. - ssh(1): When AddKeysToAgent=yes is set and the key contains no comment, add the key to the agent with the key's path as the comment. - ssh-keygen(1), ssh-agent(1): Expose PKCS#11 key labels and X.509 subjects as key comments, rather than simply listing the PKCS#11 provider library path. - ssh-keygen(1): Allow PEM export of DSA and ECDSA keys. - sshd(8): When clients get denied by MaxStartups, send a notification prior to the SSH2 protocol banner according to RFC4253 section 4.2 (closes: #275458). - ssh(1), ssh-agent(1): When invoking the $SSH_ASKPASS prompt program, pass a hint to the program to describe the type of desired prompt. The possible values are "confirm" (indicating that a yes/no confirmation dialog with no text entry should be shown), "none" (to indicate an informational message only), or blank for the original ssh-askpass behaviour of requesting a password/phrase. - ssh(1): Allow forwarding a different agent socket to the path specified by $SSH_AUTH_SOCK, by extending the existing ForwardAgent option to accepting an explicit path or the name of an environment variable in addition to yes/no. - ssh-keygen(1): Add a new signature operations "find-principals" to look up the principal associated with a signature from an allowed-signers file. - sshd(8): Expose the number of currently-authenticating connections along with the MaxStartups limit in the process title visible to "ps". - sshd(8): Make ClientAliveCountMax=0 have sensible semantics: it will now disable connection killing entirely rather than the current behaviour of instantly killing the connection after the first liveness test regardless of success. - sshd(8): Clarify order of AllowUsers / DenyUsers vs AllowGroups / DenyGroups in the sshd(8) manual page. - sshd(8): Better describe HashKnownHosts in the manual page. - sshd(8): Clarify that that permitopen=/PermitOpen do no name or address translation in the manual page. - sshd(8): Allow the UpdateHostKeys feature to function when multiple known_hosts files are in use. When updating host keys, ssh will now search subsequent known_hosts files, but will add updated host keys to the first specified file only. - All: Replace all calls to signal(2) with a wrapper around sigaction(2). This wrapper blocks all other signals during the handler preventing races between handlers, and sets SA_RESTART which should reduce the potential for short read/write operations. - sftp(1): Fix a race condition in the SIGCHILD handler that could turn in to a kill(-1). - sshd(8): Fix a case where valid (but extremely large) SSH channel IDs were being incorrectly rejected. - ssh(1): When checking host key fingerprints as answers to new hostkey prompts, ignore whitespace surrounding the fingerprint itself. - All: Wait for file descriptors to be readable or writeable during non-blocking connect, not just readable. Prevents a timeout when the server doesn't immediately send a banner (e.g. multiplexers like sslh). - sshd_config(5): Document the sntrup4591761x25519-sha512@tinyssh.org key exchange algorithm. * Add more historical md5sums of /etc/ssh/sshd_config between 1:7.4p1-1 and 1:7.8p1-1 inclusive (closes: #951220). * ssh(1): Explain that -Y is equivalent to -X in the default configuration (closes: #951640). * Include /etc/ssh/ssh_config.d/*.conf from /etc/ssh/ssh_config and /etc/ssh/sshd_config.d/*.conf from /etc/ssh/sshd_config (closes: #845315). -- Colin Watson <cjwatson@debian.org> Fri, 21 Feb 2020 16:36:37 +0000 openssh (1:8.1p1-5) unstable; urgency=medium * Apply upstream patches to allow clock_nanosleep() and variants in the seccomp sandbox, fixing failures with glibc 2.31. * Apply upstream patch to deny (non-fatally) ipc in the seccomp sandbox, fixing failures with OpenSSL 1.1.1d and Linux < 3.19 on some architectures (closes: #946242). -- Colin Watson <cjwatson@debian.org> Sat, 11 Jan 2020 23:55:03 +0000 openssh (1:8.1p1-4) unstable; urgency=medium * Apply upstream patch to stop using 2020 as a future date in regress tests. -- Colin Watson <cjwatson@debian.org> Thu, 09 Jan 2020 11:42:10 +0000 openssh (1:8.1p1-3) unstable; urgency=medium [ Colin Watson ] * Drop suggestion of rssh, since it's been removed (see https://bugs.debian.org/923691). [ Steve Langasek ] * Don't build openssh-tests on Ubuntu i386 (closes: #948466). -- Colin Watson <cjwatson@debian.org> Thu, 09 Jan 2020 00:29:58 +0000 openssh (1:8.1p1-2) unstable; urgency=medium * Drop "Allow flock and ipc syscall for s390 architecture" patch for now; upstream has security concerns with it and it doesn't currently seem to be needed. * Mark openssh-sftp-server, openssh-tests, ssh, and ssh-askpass-gnome as Multi-Arch: foreign; none of them provide any architecture-dependent interfaces. -- Colin Watson <cjwatson@debian.org> Wed, 11 Dec 2019 23:53:49 +0000 openssh (1:8.1p1-1) unstable; urgency=medium * New upstream release (https://www.openssh.com/txt/release-8.1): - ssh(1), sshd(8), ssh-agent(1): Add protection for private keys at rest in RAM against speculation and memory side-channel attacks like Spectre, Meltdown and Rambleed. This release encrypts private keys when they are not in use with a symmetric key that is derived from a relatively large "prekey" consisting of random data (currently 16KB). - ssh(1): Allow %n to be expanded in ProxyCommand strings. - ssh(1), sshd(8): Allow prepending a list of algorithms to the default set by starting the list with the '^' character, e.g. "HostKeyAlgorithms ^ssh-ed25519". - ssh-keygen(1): Add an experimental lightweight signature and verification ability. Signatures may be made using regular ssh keys held on disk or stored in a ssh-agent and verified against an authorized_keys-like list of allowed keys. Signatures embed a namespace that prevents confusion and attacks between different usage domains (e.g. files vs email). - ssh-keygen(1): Print key comment when extracting public key from a private key. - ssh-keygen(1): Accept the verbose flag when searching for host keys in known hosts (i.e. "ssh-keygen -vF host") to print the matching host's random-art signature too. - All: Support PKCS8 as an optional format for storage of private keys to disk. The OpenSSH native key format remains the default, but PKCS8 is a superior format to PEM if interoperability with non-OpenSSH software is required, as it may use a less insecure key derivation function than PEM's. - ssh(1): If a PKCS#11 token returns no keys then try to login and refetch them. - ssh(1): Produce a useful error message if the user's shell is set incorrectly during "match exec" processing. - sftp(1): Allow the maximum uint32 value for the argument passed to -b which allows better error messages from later validation. - ssh-keyscan(1): Include SHA2-variant RSA key algorithms in KEX proposal; allows ssh-keyscan to harvest keys from servers that disable old SHA1 ssh-rsa. - sftp(1): Print explicit "not modified" message if a file was requested for resumed download but was considered already complete. - sftp(1): Fix a typo and make <esc><right> move right to the closest end of a word just like <esc><left> moves left to the closest beginning of a word. - sshd(8): Cap the number of permitopen/permitlisten directives allowed to appear on a single authorized_keys line. - All: Fix a number of memory leaks (one-off or on exit paths). - ssh(1), sshd(8): Check for convtime() refusing to accept times that resolve to LONG_MAX. - ssh(1): Slightly more instructive error message when the user specifies multiple -J options on the command-line (closes: #929669). - ssh-agent(1): Process agent requests for RSA certificate private keys using correct signature algorithm when requested. - sftp(1): Check for user@host when parsing sftp target. This allows user@[1.2.3.4] to work without a path. - sshd(8): Enlarge format buffer size for certificate serial number so the log message can record any 64-bit integer without truncation. - sshd(8): For PermitOpen violations add the remote host and port to be able to more easily ascertain the source of the request. Add the same logging for PermitListen violations which were not previously logged at all. - scp(1), sftp(1): Use the correct POSIX format style for left justification for the transfer progress meter. - sshd(8): When examining a configuration using sshd -T, assume any attribute not provided by -C does not match, which allows it to work when sshd_config contains a Match directive with or without -C. - ssh(1), ssh-keygen(1): Downgrade PKCS#11 "provider returned no slots" warning from log level error to debug. This is common when attempting to enumerate keys on smartcard readers with no cards plugged in. - ssh(1), ssh-keygen(1): Do not unconditionally log in to PKCS#11 tokens. Avoids spurious PIN prompts for keys not selected for authentication in ssh(1) and when listing public keys available in a token using ssh-keygen(1). - ssh(1), sshd(8): Fix typo that prevented detection of Linux VRF. - sshd(8): In the Linux seccomp-bpf sandbox, allow mprotect(2) with PROT_(READ|WRITE|NONE) only. This syscall is used by some hardened heap allocators. - sshd(8): In the Linux seccomp-bpf sandbox, allow the s390-specific ioctl for ECC hardware support. * Re-enable hardening on hppa, since the corresponding GCC bug is apparently fixed. -- Colin Watson <cjwatson@debian.org> Thu, 10 Oct 2019 10:23:19 +0100 openssh (1:8.0p1-7) unstable; urgency=medium [ Daniel Kahn Gillmor ] * runit: Correct typo in comment. [ Colin Watson ] * Apply upstream patch to deny (non-fatally) shmget/shmat/shmdt in preauth privsep child, coping with changes in OpenSSL 1.1.1d that broke OpenSSH on Linux kernels before 3.19 (closes: #941663). -- Colin Watson <cjwatson@debian.org> Sat, 05 Oct 2019 22:41:11 +0100 openssh (1:8.0p1-6) unstable; urgency=medium * Only run dh_runit on openssh-server (closes: #935936). -- Colin Watson <cjwatson@debian.org> Wed, 28 Aug 2019 10:53:18 +0100 openssh (1:8.0p1-5) unstable; urgency=medium [ Lorenzo Puliti ] * Add a runscript for runit (closes: #933999). -- Colin Watson <cjwatson@debian.org> Tue, 27 Aug 2019 15:18:54 +0100 openssh (1:8.0p1-4) unstable; urgency=medium * Use debhelper-compat instead of debian/compat. * debian/*.apport: - Remove #! lines. - Avoid star imports. - Fix flake8 errors. * Run regression tests against the Python 3 version of Twisted Conch. -- Colin Watson <cjwatson@debian.org> Sat, 03 Aug 2019 13:33:24 +0100 openssh (1:8.0p1-3) unstable; urgency=medium * Upload to unstable. -- Colin Watson <cjwatson@debian.org> Mon, 08 Jul 2019 17:19:37 +0100 # Older entries have been removed from this changelog. # To read the complete changelog use `apt changelog ssh`.
Generated by dwww version 1.15 on Thu May 23 02:09:16 CEST 2024.