Up to [cvs.NetBSD.org] / src / crypto / external / bsd / openssh / dist
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Pull up the following, requested by kim in ticket #1780: crypto/external/bsd/openssh/Makefile.inc up to 1.15 (+patch) crypto/external/bsd/openssh/bin/Makefile.inc up to 1.4 crypto/external/bsd/openssh/bin/scp/Makefile up to 1.6 crypto/external/bsd/openssh/bin/sftp/Makefile up to 1.11 crypto/external/bsd/openssh/bin/sftp-server/Makefile up to 1.4 crypto/external/bsd/openssh/bin/ssh/Makefile up to 1.20 crypto/external/bsd/openssh/bin/ssh-add/Makefile up to 1.3 crypto/external/bsd/openssh/bin/ssh-agent/Makefile up to 1.7 crypto/external/bsd/openssh/bin/ssh-keygen/Makefile up to 1.10 crypto/external/bsd/openssh/bin/ssh-keyscan/Makefile up to 1.6 crypto/external/bsd/openssh/bin/ssh-pkcs11-helper/Makefile up to 1.4 crypto/external/bsd/openssh/bin/sshd/Makefile up to 1.27 (+patch) crypto/external/bsd/openssh/dist/PROTOCOL.sshsig up to 1.1.1.2 crypto/external/bsd/openssh/dist/srclimit.c up to 1.3 crypto/external/bsd/openssh/dist/sftp-realpath.c up to 1.3 crypto/external/bsd/openssh/dist/sntrup761.c up to 1.3 crypto/external/bsd/openssh/dist/sntrup761.sh up to 1.1.1.2 crypto/external/bsd/openssh/dist/sshsig.c up to 1.12 crypto/external/bsd/openssh/dist/sshsig.h up to 1.1.1.5 crypto/external/bsd/openssh/dist/addr.c up to 1.6 crypto/external/bsd/openssh/dist/PROTOCOL.u2f up to 1.1.1.3 crypto/external/bsd/openssh/dist/sk-api.h up to 1.1.1.6 crypto/external/bsd/openssh/dist/sk-usbhid.c up to 1.9 crypto/external/bsd/openssh/dist/ssh-ecdsa-sk.c up to 1.4 crypto/external/bsd/openssh/dist/ssh-ed25519-sk.c up to 1.5 crypto/external/bsd/openssh/dist/ssh-sk-client.c up to 1.6 crypto/external/bsd/openssh/dist/ssh-sk-helper.8 up to 1.1.1.2 crypto/external/bsd/openssh/dist/ssh-sk-helper.c up to 1.7 crypto/external/bsd/openssh/dist/ssh-sk.c up to 1.8 crypto/external/bsd/openssh/dist/ssh-sk.h up to 1.1.1.2 crypto/external/bsd/openssh/dist/sshbuf-io.c up to 1.2 crypto/external/bsd/openssh/dist/addr.h up to 1.1.1.2 crypto/external/bsd/openssh/dist/kexsntrup761x25519.c up to 1.3 crypto/external/bsd/openssh/dist/cipher-chachapoly-libcrypto.c up to 1.3 crypto/external/bsd/openssh/dist/srclimit.h up to 1.1.1.1 crypto/external/bsd/openssh/dist/auth2-pubkeyfile.c up to 1.3 crypto/external/bsd/openssh/dist/sftp-usergroup.c up to 1.3 crypto/external/bsd/openssh/dist/sftp-usergroup.h up to 1.1.1.1 crypto/external/bsd/openssh/dist/ed25519.sh up to 1.1.1.1 crypto/external/bsd/openssh/dist/crc32.c delete crypto/external/bsd/openssh/dist/crc32.h delete crypto/external/bsd/openssh/dist/fe25519.c delete crypto/external/bsd/openssh/dist/fe25519.h delete crypto/external/bsd/openssh/dist/ge25519.c delete crypto/external/bsd/openssh/dist/ge25519.h delete crypto/external/bsd/openssh/dist/ge25519_base.data delete crypto/external/bsd/openssh/dist/kexsntrup4591761x25519.c delete crypto/external/bsd/openssh/dist/sc25519.c delete crypto/external/bsd/openssh/dist/sc25519.h delete crypto/external/bsd/openssh/dist/sntrup4591761.c delete crypto/external/bsd/openssh/dist/sntrup4591761.sh delete crypto/external/bsd/openssh/dist/uuencode.c delete crypto/external/bsd/openssh/dist/uuencode.h delete crypto/external/bsd/openssh/dist/verify.c delete crypto/external/bsd/openssh/dist/LICENCE up to 1.7 crypto/external/bsd/openssh/dist/PROTOCOL up to 1.23 crypto/external/bsd/openssh/dist/PROTOCOL.agent up to 1.15 crypto/external/bsd/openssh/dist/PROTOCOL.certkeys up to 1.13 crypto/external/bsd/openssh/dist/PROTOCOL.chacha20poly1305 up to 1.1.1.4 crypto/external/bsd/openssh/dist/PROTOCOL.key up to 1.1.1.3 crypto/external/bsd/openssh/dist/PROTOCOL.krl up to 1.1.1.5 crypto/external/bsd/openssh/dist/PROTOCOL.mux up to 1.12 crypto/external/bsd/openssh/dist/addrmatch.c up to 1.15 crypto/external/bsd/openssh/dist/auth-krb5.c up to 1.16 crypto/external/bsd/openssh/dist/auth-options.c up to 1.29 crypto/external/bsd/openssh/dist/auth-options.h up to 1.15 crypto/external/bsd/openssh/dist/auth-pam.c up to 1.21 crypto/external/bsd/openssh/dist/auth-passwd.c up to 1.13 crypto/external/bsd/openssh/dist/auth-rhosts.c up to 1.16 crypto/external/bsd/openssh/dist/auth.c up to 1.34 crypto/external/bsd/openssh/dist/auth.h up to 1.23 crypto/external/bsd/openssh/dist/auth2-chall.c up to 1.19 crypto/external/bsd/openssh/dist/auth2-gss.c up to 1.17 crypto/external/bsd/openssh/dist/auth2-hostbased.c up to 1.23 crypto/external/bsd/openssh/dist/auth2-kbdint.c up to 1.15 crypto/external/bsd/openssh/dist/auth2-krb5.c up to 1.10 crypto/external/bsd/openssh/dist/auth2-none.c up to 1.14 crypto/external/bsd/openssh/dist/auth2-passwd.c up to 1.16 crypto/external/bsd/openssh/dist/auth2-pubkey.c up to 1.34 crypto/external/bsd/openssh/dist/auth2.c up to 1.29 crypto/external/bsd/openssh/dist/authfd.c up to 1.27 crypto/external/bsd/openssh/dist/authfd.h up to 1.17 crypto/external/bsd/openssh/dist/authfile.c up to 1.28 crypto/external/bsd/openssh/dist/authfile.h up to 1.10 crypto/external/bsd/openssh/dist/canohost.c up to 1.16 crypto/external/bsd/openssh/dist/chacha.c up to 1.6 crypto/external/bsd/openssh/dist/chacha.h up to 1.3 crypto/external/bsd/openssh/dist/channels.c up to 1.42 crypto/external/bsd/openssh/dist/channels.h up to 1.26 crypto/external/bsd/openssh/dist/cipher-chachapoly.c up to 1.7 crypto/external/bsd/openssh/dist/cipher-chachapoly.h up to 1.3 crypto/external/bsd/openssh/dist/cipher.c up to 1.21 crypto/external/bsd/openssh/dist/cipher.h up to 1.17 crypto/external/bsd/openssh/dist/clientloop.c up to 1.39 crypto/external/bsd/openssh/dist/clientloop.h up to 1.18 crypto/external/bsd/openssh/dist/compat.c up to 1.26 crypto/external/bsd/openssh/dist/compat.h up to 1.18 crypto/external/bsd/openssh/dist/crypto_api.h up to 1.5 crypto/external/bsd/openssh/dist/dh.c up to 1.20 crypto/external/bsd/openssh/dist/dh.h up to 1.13 crypto/external/bsd/openssh/dist/digest-libc.c up to 1.8 crypto/external/bsd/openssh/dist/digest-openssl.c up to 1.9 crypto/external/bsd/openssh/dist/dispatch.c up to 1.11 crypto/external/bsd/openssh/dist/dns.c up to 1.23 crypto/external/bsd/openssh/dist/dns.h up to 1.13 crypto/external/bsd/openssh/dist/ed25519.c up to 1.6 crypto/external/bsd/openssh/dist/fatal.c up to 1.7 crypto/external/bsd/openssh/dist/getrrsetbyname.c up to 1.6 crypto/external/bsd/openssh/dist/gss-genr.c up to 1.11 crypto/external/bsd/openssh/dist/gss-serv.c up to 1.15 crypto/external/bsd/openssh/dist/hash.c up to 1.7 crypto/external/bsd/openssh/dist/hmac.c up to 1.8 crypto/external/bsd/openssh/dist/hostfile.c up to 1.23 crypto/external/bsd/openssh/dist/hostfile.h up to 1.11 crypto/external/bsd/openssh/dist/includes.h up to 1.9 crypto/external/bsd/openssh/dist/kex.c up to 1.34 crypto/external/bsd/openssh/dist/kex.h up to 1.24 crypto/external/bsd/openssh/dist/kexdh.c up to 1.10 crypto/external/bsd/openssh/dist/kexgen.c up to 1.7 crypto/external/bsd/openssh/dist/kexgexc.c up to 1.17 crypto/external/bsd/openssh/dist/kexgexs.c up to 1.23 crypto/external/bsd/openssh/dist/krl.c up to 1.23 crypto/external/bsd/openssh/dist/krl.h up to 1.6 crypto/external/bsd/openssh/dist/ldapauth.c up to 1.8 crypto/external/bsd/openssh/dist/ldapauth.h up to 1.6 crypto/external/bsd/openssh/dist/log.c up to 1.27 crypto/external/bsd/openssh/dist/log.h up to 1.17 crypto/external/bsd/openssh/dist/mac.c up to 1.16 crypto/external/bsd/openssh/dist/match.c up to 1.16 crypto/external/bsd/openssh/dist/match.h up to 1.11 crypto/external/bsd/openssh/dist/misc.c up to 1.35 crypto/external/bsd/openssh/dist/misc.h up to 1.27 crypto/external/bsd/openssh/dist/moduli up to 1.10 crypto/external/bsd/openssh/dist/moduli.c up to 1.17 crypto/external/bsd/openssh/dist/monitor.c up to 1.43 crypto/external/bsd/openssh/dist/monitor.h up to 1.13 crypto/external/bsd/openssh/dist/monitor_fdpass.c up to 1.9 crypto/external/bsd/openssh/dist/monitor_wrap.c up to 1.34 crypto/external/bsd/openssh/dist/monitor_wrap.h up to 1.23 crypto/external/bsd/openssh/dist/msg.c up to 1.11 crypto/external/bsd/openssh/dist/mux.c up to 1.35 crypto/external/bsd/openssh/dist/myproposal.h up to 1.24 crypto/external/bsd/openssh/dist/namespace.h up to 1.10 crypto/external/bsd/openssh/dist/nchan.c up to 1.14 crypto/external/bsd/openssh/dist/packet.c up to 1.50 crypto/external/bsd/openssh/dist/packet.h up to 1.26 crypto/external/bsd/openssh/dist/pathnames.h up to 1.15 crypto/external/bsd/openssh/dist/pfilter.c up to 1.8 (+patch) crypto/external/bsd/openssh/dist/poly1305.c up to 1.6 crypto/external/bsd/openssh/dist/progressmeter.c up to 1.15 crypto/external/bsd/openssh/dist/readconf.c up to 1.44 crypto/external/bsd/openssh/dist/readconf.h up to 1.34 crypto/external/bsd/openssh/dist/readpass.c up to 1.18 crypto/external/bsd/openssh/dist/rijndael.h up to 1.3 crypto/external/bsd/openssh/dist/sandbox-pledge.c up to 1.3 crypto/external/bsd/openssh/dist/sandbox-rlimit.c up to 1.7 crypto/external/bsd/openssh/dist/scp.1 up to 1.31 crypto/external/bsd/openssh/dist/scp.c up to 1.41 crypto/external/bsd/openssh/dist/servconf.c up to 1.44 crypto/external/bsd/openssh/dist/servconf.h up to 1.30 crypto/external/bsd/openssh/dist/serverloop.c up to 1.35 crypto/external/bsd/openssh/dist/session.c up to 1.38 crypto/external/bsd/openssh/dist/session.h up to 1.10 crypto/external/bsd/openssh/dist/sftp-client.c up to 1.35 crypto/external/bsd/openssh/dist/sftp-client.h up to 1.18 crypto/external/bsd/openssh/dist/sftp-common.c up to 1.14 crypto/external/bsd/openssh/dist/sftp-common.h up to 1.8 crypto/external/bsd/openssh/dist/sftp-glob.c up to 1.15 crypto/external/bsd/openssh/dist/sftp-server-main.c up to 1.8 crypto/external/bsd/openssh/dist/sftp-server.8 up to 1.14 crypto/external/bsd/openssh/dist/sftp-server.c up to 1.30 crypto/external/bsd/openssh/dist/sftp.1 up to 1.30 crypto/external/bsd/openssh/dist/sftp.c up to 1.39 crypto/external/bsd/openssh/dist/ssh-add.1 up to 1.18 crypto/external/bsd/openssh/dist/ssh-add.c up to 1.30 crypto/external/bsd/openssh/dist/ssh-agent.1 up to 1.19 crypto/external/bsd/openssh/dist/ssh-agent.c up to 1.37 crypto/external/bsd/openssh/dist/ssh-dss.c up to 1.18 crypto/external/bsd/openssh/dist/ssh-ecdsa.c up to 1.15 crypto/external/bsd/openssh/dist/ssh-ed25519.c up to 1.10 crypto/external/bsd/openssh/dist/ssh-gss.h up to 1.10 crypto/external/bsd/openssh/dist/ssh-keygen.1 up to 1.34 crypto/external/bsd/openssh/dist/ssh-keygen.c up to 1.46 crypto/external/bsd/openssh/dist/ssh-keyscan.1 up to 1.18 crypto/external/bsd/openssh/dist/ssh-keyscan.c up to 1.32 crypto/external/bsd/openssh/dist/ssh-keysign.8 up to 1.14 crypto/external/bsd/openssh/dist/ssh-keysign.c up to 1.24 crypto/external/bsd/openssh/dist/ssh-pkcs11-client.c up to 1.19 crypto/external/bsd/openssh/dist/ssh-pkcs11-helper.8 up to 1.12 crypto/external/bsd/openssh/dist/ssh-pkcs11-helper.c up to 1.22 crypto/external/bsd/openssh/dist/ssh-pkcs11.c up to 1.26 crypto/external/bsd/openssh/dist/ssh-pkcs11.h up to 1.9 crypto/external/bsd/openssh/dist/ssh-rsa.c up to 1.19 crypto/external/bsd/openssh/dist/ssh-xmss.c up to 1.6 crypto/external/bsd/openssh/dist/ssh.1 up to 1.39 crypto/external/bsd/openssh/dist/ssh.c up to 1.45 crypto/external/bsd/openssh/dist/ssh.h up to 1.13 crypto/external/bsd/openssh/dist/ssh2.h up to 1.15 crypto/external/bsd/openssh/dist/ssh_api.c up to 1.15 crypto/external/bsd/openssh/dist/ssh_config up to 1.16 crypto/external/bsd/openssh/dist/ssh_config.5 up to 1.40 crypto/external/bsd/openssh/dist/sshbuf-getput-basic.c up to 1.12 crypto/external/bsd/openssh/dist/sshbuf-getput-crypto.c up to 1.11 crypto/external/bsd/openssh/dist/sshbuf-misc.c up to 1.14 crypto/external/bsd/openssh/dist/sshbuf.c up to 1.14 crypto/external/bsd/openssh/dist/sshbuf.h up to 1.19 crypto/external/bsd/openssh/dist/sshconnect.c up to 1.37 crypto/external/bsd/openssh/dist/sshconnect.h up to 1.17 crypto/external/bsd/openssh/dist/sshconnect2.c up to 1.46 crypto/external/bsd/openssh/dist/sshd.8 up to 1.31 crypto/external/bsd/openssh/dist/sshd.c up to 1.50 crypto/external/bsd/openssh/dist/sshd_config up to 1.28 crypto/external/bsd/openssh/dist/sshd_config.5 up to 1.42 crypto/external/bsd/openssh/dist/ssherr.c up to 1.10 crypto/external/bsd/openssh/dist/ssherr.h up to 1.4 crypto/external/bsd/openssh/dist/sshkey-xmss.c up to 1.10 crypto/external/bsd/openssh/dist/sshkey-xmss.h up to 1.5 crypto/external/bsd/openssh/dist/sshkey.c up to 1.32 crypto/external/bsd/openssh/dist/sshkey.h up to 1.19 crypto/external/bsd/openssh/dist/sshlogin.c up to 1.13 crypto/external/bsd/openssh/dist/sshpty.c up to 1.8 crypto/external/bsd/openssh/dist/ttymodes.c up to 1.12 crypto/external/bsd/openssh/dist/uidswap.c up to 1.10 crypto/external/bsd/openssh/dist/umac.c up to 1.22 crypto/external/bsd/openssh/dist/umac.h up to 1.10 crypto/external/bsd/openssh/dist/utf8.c up to 1.9 crypto/external/bsd/openssh/dist/utf8.h up to 1.5 crypto/external/bsd/openssh/dist/version.h up to 1.44 crypto/external/bsd/openssh/dist/xmalloc.c up to 1.13 crypto/external/bsd/openssh/dist/xmalloc.h up to 1.16 crypto/external/bsd/openssh/dist/xmss_hash.c up to 1.3 crypto/external/bsd/openssh/dist/moduli-gen/Makefile up to 1.3 crypto/external/bsd/openssh/dist/moduli-gen/moduli-gen.sh up to 1.1.1.3 crypto/external/bsd/openssh/dist/moduli-gen/moduli.2048 up to 1.16 crypto/external/bsd/openssh/dist/moduli-gen/moduli.3072 up to 1.18 crypto/external/bsd/openssh/dist/moduli-gen/moduli.4096 up to 1.18 crypto/external/bsd/openssh/dist/moduli-gen/moduli.6144 up to 1.18 crypto/external/bsd/openssh/dist/moduli-gen/moduli.7680 up to 1.18 crypto/external/bsd/openssh/dist/moduli-gen/moduli.8192 up to 1.18 crypto/external/bsd/openssh/lib/Makefile up to 1.38 crypto/external/bsd/openssh/lib/shlib_version up to 1.36 crypto/external/bsd/openssh/openssh2netbsd up to 1.4 lib/libpam/modules/pam_ssh/Makefile up to 1.13 lib/libpam/modules/pam_ssh/pam_ssh.c up to 1.30 distrib/sets/lists/base/shl.mi (apply patch) distrib/sets/lists/debug/shl.mi (apply patch) doc/3RDPARTY (apply patch) Update OpenSSH to 9.6.
Merge our changes from OpenSSH-8.6 to OpenSSH-8.7
Import OpenSSH-8.7: Imminent deprecation notice =========================== OpenSSH will disable the ssh-rsa signature scheme by default in the next release. In the SSH protocol, the "ssh-rsa" signature scheme uses the SHA-1 hash algorithm in conjunction with the RSA public key algorithm. It is now possible[1] to perform chosen-prefix attacks against the SHA-1 algorithm for less than USD$50K. Note that the deactivation of "ssh-rsa" signatures does not necessarily require cessation of use for RSA keys. In the SSH protocol, keys may be capable of signing using multiple algorithms. In particular, "ssh-rsa" keys are capable of signing using "rsa-sha2-256" (RSA/SHA256), "rsa-sha2-512" (RSA/SHA512) and "ssh-rsa" (RSA/SHA1). Only the last of these is being turned off by default. This algorithm is unfortunately still used widely despite the existence of better alternatives, being the only remaining public key signature algorithm specified by the original SSH RFCs that is still enabled by default. The better alternatives include: * The RFC8332 RSA SHA-2 signature algorithms rsa-sha2-256/512. These algorithms have the advantage of using the same key type as "ssh-rsa" but use the safe SHA-2 hash algorithms. These have been supported since OpenSSH 7.2 and are already used by default if the client and server support them. * The RFC8709 ssh-ed25519 signature algorithm. It has been supported in OpenSSH since release 6.5. * The RFC5656 ECDSA algorithms: ecdsa-sha2-nistp256/384/521. These have been supported by OpenSSH since release 5.7. To check whether a server is using the weak ssh-rsa public key algorithm, for host authentication, try to connect to it after removing the ssh-rsa algorithm from ssh(1)'s allowed list: ssh -oHostKeyAlgorithms=-ssh-rsa user@host If the host key verification fails and no other supported host key types are available, the server software on that host should be upgraded. OpenSSH recently enabled the UpdateHostKeys option by default to assist the client by automatically migrating to better algorithms. [1] "SHA-1 is a Shambles: First Chosen-Prefix Collision on SHA-1 and Application to the PGP Web of Trust" Leurent, G and Peyrin, T (2020) https://eprint.iacr.org/2020/014.pdf Potentially-incompatible changes ================================ This release includes a number of changes that may affect existing configurations: * 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. This was previously available via the -3 flag. This mode avoids the need to expose credentials on the origin hop, avoids triplicate interpretation of filenames by the shell (by the local system, the copy origin and the destination) and, in conjunction with the SFTP support for scp(1) mentioned below, allows use of all authentication methods to the remote hosts (previously, only non-interactive methods could be used). 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. The new parser uses more shell-like rules for quotes, space and escape characters. It is also more strict in rejecting configurations that include options lacking arguments. Previously some options (e.g. DenyUsers) could appear on a line with no subsequent arguments. This release will reject such configurations. The new parser will also reject configurations with unterminated quotes and multiple '=' characters after the option name. * 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. This may cause host key verification problems if stale SSHFP records of a different or legacy signature type exist alongside other records for a particular host. bz#3322 * 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. This removes the (undocumented) requirement that challenges be exactly 32 bytes in length and matches the expectations of libfido2. * sshd(8): environment="..." directives in authorized_keys files are now first-match-wins and limited to 1024 discrete environment variable names. Changes since OpenSSH 8.6 ========================= This release contains a mix of new features and bug-fixes. New features ------------ - 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. GHPR#231 - 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. GHPR#231 - 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. GHPR#231 - 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. Bugfixes -------- * 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. bz#3329 * scp(1): allow spaces to appear in usernames for local to remote and scp -3 remote to remote copies. bz#1164 * 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. bz#3303 * ssh(1)/ssh-add(1)/ssh-keygen(1): fix decoding of X.509 subject name when extracting a key from a PKCS#11 certificate. bz#3327 * 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, bz#3280 and GHPR#246 * 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. bz#2158 * ssh(1): sessions started with ControlPersist were incorrectly executing a shell when the -N (no shell) option was specified. bz#3290 * 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. bz#3319 * 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. GHPR#247 * sshd(8): match host certificates against host public keys, not private keys. Allows use of certificates with private keys held in a ssh-agent. bz#3524 * 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 PubkeyAcceptedAlgorithmse and potentially refuse to offer valid keys. bz#3213 * 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. bz#3318 * 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. bz#3318 * ssh(1): fix SEGV in UpdateHostkeys debug() message, triggered when the update removed more host keys than remain present. * many manual page fixes. Portability ----------- * ssh(1): move closefrom() to before first malloc. When built against tcmalloc, the closefrom() would stomp on file descriptors created for tcmalloc's internal use. bz#3321 * 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. bz#3328 * sshd(8): don't sigdie() in signal handler in privsep child process; this can end up causing sandbox violations per bz3286
Merge changes from current as of 20200406
Merge conflicts
OpenSSH 8.2/8.2p1 (2020-02-14) OpenSSH 8.2 was released on 2020-02-14. It is available from the mirrors listed at https://www.openssh.com/. OpenSSH is a 100% complete SSH protocol 2.0 implementation and includes sftp client and server support. Once again, we would like to thank the OpenSSH community for their continued support of the project, especially those who contributed code or patches, reported bugs, tested snapshots or donated to the project. More information on donations may be found at: https://www.openssh.com/donations.html Future deprecation notice ========================= It is now possible[1] to perform chosen-prefix attacks against the SHA-1 hash algorithm for less than USD$50K. For this reason, we will be disabling the "ssh-rsa" public key signature algorithm that depends on SHA-1 by default in a near-future release. This algorithm is unfortunately still used widely despite the existence of better alternatives, being the only remaining public key signature algorithm specified by the original SSH RFCs. The better alternatives include: * The RFC8332 RSA SHA-2 signature algorithms rsa-sha2-256/512. These algorithms have the advantage of using the same key type as "ssh-rsa" but use the safe SHA-2 hash algorithms. These have been supported since OpenSSH 7.2 and are already used by default if the client and server support them. * The ssh-ed25519 signature algorithm. It has been supported in OpenSSH since release 6.5. * The RFC5656 ECDSA algorithms: ecdsa-sha2-nistp256/384/521. These have been supported by OpenSSH since release 5.7. To check whether a server is using the weak ssh-rsa public key algorithm for host authentication, try to connect to it after removing the ssh-rsa algorithm from ssh(1)'s allowed list: ssh -oHostKeyAlgorithms=-ssh-rsa user@host If the host key verification fails and no other supported host key types are available, the server software on that host should be upgraded. A future release of OpenSSH will enable UpdateHostKeys by default to allow the client to automatically migrate to better algorithms. Users may consider enabling this option manually. [1] "SHA-1 is a Shambles: First Chosen-Prefix Collision on SHA-1 and Application to the PGP Web of Trust" Leurent, G and Peyrin, T (2020) https://eprint.iacr.org/2020/014.pdf Security ======== * 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. Certificates are at special risk to the aforementioned SHA1 collision vulnerability as an attacker has effectively unlimited time in which to craft a collision that yields them a valid certificate, far more than the relatively brief LoginGraceTime window that they have to forge a host key signature. The OpenSSH certificate format includes a CA-specified (typically random) nonce value near the start of the certificate that should make exploitation of chosen-prefix collisions in this context challenging, as the attacker does not have full control over the prefix that actually gets signed. Nonetheless, SHA1 is now a demonstrably broken algorithm and futher improvements in attacks are highly likely. OpenSSH releases prior to 7.2 do not support the newer RSA/SHA2 algorithms and will refuse to accept certificates signed by an OpenSSH 8.2+ CA using RSA keys unless the unsafe algorithm is explicitly selected during signing ("ssh-keygen -t ssh-rsa"). Older clients/servers may use another CA key type such as ssh-ed25519 (supported since OpenSSH 6.5) or one of the ecdsa-sha2-nistp256/384/521 types (supported since OpenSSH 5.7) instead if they cannot be upgraded. Potentially-incompatible changes ================================ This release includes a number of changes that may affect existing configurations: * ssh(1), sshd(8): the above removal of "ssh-rsa" from the accepted CASignatureAlgorithms list. * ssh(1), sshd(8): this release removes 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. * ssh-sk-helper(8): this is a new binary. It is used by the FIDO/U2F support to provide address-space isolation for token middleware libraries (including the internal one). It needs to be installed in the expected path, typically under /usr/libexec or similar. Changes since OpenSSH 8.1 ========================= This release contains some significant new features. FIDO/U2F Support ---------------- This release adds 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. ssh-keygen(1) may be used to generate a FIDO token-backed key, after which they may be used much like any other key type supported by OpenSSH, so long as the hardware token is attached when the keys are used. FIDO tokens also generally require the user explicitly authorise operations by touching or tapping them. Generating a FIDO key requires the token be attached, and will usually require the user tap the token to confirm the operation: $ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk Generating public/private ecdsa-sk key pair. You may need to touch your security key to authorize key generation. Enter file in which to save the key (/home/djm/.ssh/id_ecdsa_sk): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/djm/.ssh/id_ecdsa_sk Your public key has been saved in /home/djm/.ssh/id_ecdsa_sk.pub This will yield a public and private key-pair. The private key file should be useless to an attacker who does not have access to the physical token. After generation, this key may be used like any other supported key in OpenSSH and may be listed in authorized_keys, added to ssh-agent(1), etc. The only additional stipulation is that the FIDO token that the key belongs to must be attached when the key is used. FIDO tokens are most commonly connected via USB but may be attached via other means such as Bluetooth or NFC. In OpenSSH, communication with the token is managed via a middleware library, specified by the SecurityKeyProvider directive in ssh/sshd_config(5) or the $SSH_SK_PROVIDER environment variable for ssh-keygen(1) and ssh-add(1). The API for this middleware is documented in the sk-api.h and PROTOCOL.u2f files in the source distribution. OpenSSH includes a middleware ("SecurityKeyProvider=internal") with support for USB tokens. It is automatically enabled in OpenBSD and may be enabled in portable OpenSSH via the configure flag --with-security-key-builtin. If the internal middleware is enabled then it is automatically used by default. This internal middleware requires that libfido2 (https://github.com/Yubico/libfido2) and its dependencies be installed. We recommend that packagers of portable OpenSSH enable the built-in middleware, as it provides the lowest-friction experience for users. Note: FIDO/U2F tokens are required to implement the ECDSA-P256 "ecdsa-sk" key type, but hardware support for Ed25519 "ed25519-sk" is less common. Similarly, not all hardware tokens support some of the optional features such as resident keys. The protocol-level changes to support FIDO/U2F keys in SSH are documented in the PROTOCOL.u2f file in the OpenSSH source distribution. There are a number of supporting changes to this feature: * 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. FIDO2 resident keys ------------------- FIDO/U2F OpenSSH keys consist of two parts: a "key handle" part stored in the private key file on disk, and a per-device private key that is unique to each FIDO/U2F token and that cannot be exported from the token hardware. These are combined by the hardware at authentication time to derive the real key that is used to sign authentication challenges. For tokens that are required to move between computers, it can be cumbersome to have to move the private key file first. To avoid this requirement, tokens implementing the newer FIDO2 standard support "resident keys", where it is possible to effectively retrieve the key handle part of the key from the hardware. OpenSSH supports this feature, allowing resident keys to be generated using the ssh-keygen(1) "-O resident" flag. This will produce a public/private key pair as usual, but it will be possible to retrieve the private key part from the token later. This may be done using "ssh-keygen -K", which will download all available resident keys from the tokens attached to the host and write public/private key files for them. It is also possible to download and add resident keys directly to ssh-agent(1) without writing files to the file-system using "ssh-add -K". Resident keys are indexed on the token by the application string and user ID. By default, OpenSSH uses an application string of "ssh:" and an empty user ID. If multiple resident keys on a single token are desired then it may be necessary to override one or both of these defaults using the ssh-keygen(1) "-O application=" or "-O user=" options. Note: OpenSSH will only download and use resident keys whose application string begins with "ssh:" Storing both parts of a key on a FIDO token increases the likelihood of an attacker being able to use a stolen token device. For this reason, tokens should enforce PIN authentication before allowing download of keys, and users should set a PIN on their tokens before creating any resident keys. Other New Features ------------------ * sshd(8): add an Include sshd_config keyword that allows including additional configuration files via glob(3) patterns. bz2468 * ssh(1)/sshd(8): make the LE (low effort) DSCP code point available via the IPQoS directive; bz2986, * 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. bz2564 * 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. PR138 * ssh-keygen(1): allow PEM export of DSA and ECDSA keys; bz3091 * ssh(1), sshd(8): make zlib compile-time optional, available via the Makefile.inc ZLIB flag on OpenBSD or via the --with-zlib configure option for OpenSSH portable. * sshd(8): when clients get denied by MaxStartups, send a notification prior to the SSH2 protocol banner according to RFC4253 section 4.2. * 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". Bugfixes -------- * 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. bz2627 * sshd(8): clarify order of AllowUsers / DenyUsers vs AllowGroups / DenyGroups in the sshd(8) manual page. bz1690 * sshd(8): better describe HashKnownHosts in the manual page. bz2560 * sshd(8): clarify that that permitopen=/PermitOpen do no name or address translation in the manual page. bz3099 * 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. bz2738 * 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); bz3084 * sshd(8): fix a case where valid (but extremely large) SSH channel IDs were being incorrectly rejected. bz3098 * 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. PR#151
Sync with HEAD
merge conflicts.
Import 8.0: Security ======== This release contains mitigation for a weakness in the scp(1) tool and protocol (CVE-2019-6111): when copying files from a remote system to a local directory, scp(1) did not verify that the filenames that the server sent matched those requested by the client. This could allow a hostile server to create or clobber unexpected local files with attacker-controlled content. This release adds client-side checking that the filenames sent from the server match the command-line request, The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead. Potentially-incompatible changes ================================ This release includes a number of changes that may affect existing configurations: * scp(1): Relating to the above changes to scp(1); the scp protocol relies on the remote shell for wildcard expansion, so there is no infallible way for the client's wildcard matching to perfectly reflect the server's. If there is a difference between client and server wildcard expansion, the client may refuse files from the server. For this reason, we have provided a new "-T" flag to scp that disables these client-side checks at the risk of reintroducing the attack described above. * sshd(8): Remove support for obsolete "host/port" syntax. Slash- separated host/port was added in 2001 as an alternative to host:port syntax for the benefit of IPv6 users. These days there are establised standards for this like [::1]:22 and the slash syntax is easily mistaken for CIDR notation, which OpenSSH supports for some things. Remove the slash notation from ListenAddress and PermitOpen; bz#2335 Changes since OpenSSH 7.9 ========================= This release is focused on new features and internal refactoring. New Features ------------ * ssh(1), ssh-agent(1), ssh-add(1): Add support for ECDSA keys in PKCS#11 tokens. * ssh(1), sshd(8): Add experimental quantum-computing resistant key exchange method, based on a combination of Streamlined NTRU Prime 4591^761 and X25519. * ssh-keygen(1): Increase the default RSA key size to 3072 bits, following NIST Special Publication 800-57's guidance for a 128-bit equivalent symmetric security level. * ssh(1): Allow "PKCS11Provider=none" to override later instances of the PKCS11Provider directive in ssh_config; bz#2974 * sshd(8): Add a log message for situations where a connection is dropped for attempting to run a command but a sshd_config ForceCommand=internal-sftp restriction is in effect; bz#2960 * ssh(1): When prompting whether to record a new host key, accept the key fingerprint as a synonym for "yes". This allows the user to paste a fingerprint obtained out of band at the prompt and have the client do the comparison for you. * ssh-keygen(1): When signing multiple certificates on a single command-line invocation, allow automatically incrementing the certificate serial number. * scp(1), sftp(1): Accept -J option as an alias to ProxyJump on the scp and sftp command-lines. * ssh-agent(1), ssh-pkcs11-helper(8), ssh-add(1): Accept "-v" command-line flags to increase the verbosity of output; pass verbose flags though to subprocesses, such as ssh-pkcs11-helper started from ssh-agent. * ssh-add(1): Add a "-T" option to allowing testing whether keys in an agent are usable by performing a signature and a verification. * sftp-server(8): Add a "lsetstat@openssh.com" protocol extension that replicates the functionality of the existing SSH2_FXP_SETSTAT operation but does not follow symlinks. bz#2067 * sftp(1): Add "-h" flag to chown/chgrp/chmod commands to request they do not follow symlinks. * sshd(8): Expose $SSH_CONNECTION in the PAM environment. This makes the connection 4-tuple available to PAM modules that wish to use it in decision-making. bz#2741 * sshd(8): Add a ssh_config "Match final" predicate Matches in same pass as "Match canonical" but doesn't require hostname canonicalisation be enabled. bz#2906 * sftp(1): Support a prefix of '@' to suppress echo of sftp batch commands; bz#2926 * ssh-keygen(1): When printing certificate contents using "ssh-keygen -Lf /path/certificate", include the algorithm that the CA used to sign the cert. Bugfixes -------- * sshd(8): Fix authentication failures when sshd_config contains "AuthenticationMethods any" inside a Match block that overrides a more restrictive default. * sshd(8): Avoid sending duplicate keepalives when ClientAliveCount is enabled. * sshd(8): Fix two race conditions related to SIGHUP daemon restart. Remnant file descriptors in recently-forked child processes could block the parent sshd's attempt to listen(2) to the configured addresses. Also, the restarting parent sshd could exit before any child processes that were awaiting their re-execution state had completed reading it, leaving them in a fallback path. * ssh(1): Fix stdout potentially being redirected to /dev/null when ProxyCommand=- was in use. * sshd(8): Avoid sending SIGPIPE to child processes if they attempt to write to stderr after their parent processes have exited; bz#2071 * ssh(1): Fix bad interaction between the ssh_config ConnectTimeout and ConnectionAttempts directives - connection attempts after the first were ignoring the requested timeout; bz#2918 * ssh-keyscan(1): Return a non-zero exit status if no keys were found; bz#2903 * scp(1): Sanitize scp filenames to allow UTF-8 characters without terminal control sequences; bz#2434 * sshd(8): Fix confusion between ClientAliveInterval and time-based RekeyLimit that could cause connections to be incorrectly closed. bz#2757 * ssh(1), ssh-add(1): Correct some bugs in PKCS#11 token PIN handling at initial token login. The attempt to read the PIN could be skipped in some cases, particularly on devices with integrated PIN readers. This would lead to an inability to retrieve keys from these tokens. bz#2652 * ssh(1), ssh-add(1): Support keys on PKCS#11 tokens that set the CKA_ALWAYS_AUTHENTICATE flag by requring a fresh login after the C_SignInit operation. bz#2638 * ssh(1): Improve documentation for ProxyJump/-J, clarifying that local configuration does not apply to jump hosts. * ssh-keygen(1): Clarify manual - ssh-keygen -e only writes public keys, not private. * ssh(1), sshd(8): be more strict in processing protocol banners, allowing \r characters only immediately before \n. * Various: fix a number of memory leaks, including bz#2942 and bz#2938 * scp(1), sftp(1): fix calculation of initial bandwidth limits. Account for bytes written before the timer starts and adjust the schedule on which recalculations are performed. Avoids an initial burst of traffic and yields more accurate bandwidth limits; bz#2927 * sshd(8): Only consider the ext-info-c extension during the initial key eschange. It shouldn't be sent in subsequent ones, but if it is present we should ignore it. This prevents sshd from sending a SSH_MSG_EXT_INFO for REKEX for buggy these clients. bz#2929 * ssh-keygen(1): Clarify manual that ssh-keygen -F (find host in authorized_keys) and -R (remove host from authorized_keys) options may accept either a bare hostname or a [hostname]:port combo. bz#2935 * ssh(1): Don't attempt to connect to empty SSH_AUTH_SOCK; bz#2936 * sshd(8): Silence error messages when sshd fails to load some of the default host keys. Failure to load an explicitly-configured hostkey is still an error, and failure to load any host key is still fatal. pr/103 * ssh(1): Redirect stderr of ProxyCommands to /dev/null when ssh is started with ControlPersist; prevents random ProxyCommand output from interfering with session output. * ssh(1): The ssh client was keeping a redundant ssh-agent socket (leftover from authentication) around for the life of the connection; bz#2912 * sshd(8): Fix bug in HostbasedAcceptedKeyTypes and PubkeyAcceptedKeyTypes options. If only RSA-SHA2 siganture types were specified, then authentication would always fail for RSA keys as the monitor checks only the base key (not the signature algorithm) type against *AcceptedKeyTypes. bz#2746 * ssh(1): Request correct signature types from ssh-agent when certificate keys and RSA-SHA2 signatures are in use. Portability ----------- * sshd(8): On Cygwin, run as SYSTEM where possible, using S4U for token creation if it supports MsV1_0 S4U Logon. * sshd(8): On Cygwin, use custom user/group matching code that respects the OS' behaviour of case-insensitive matching. * sshd(8): Don't set $MAIL if UsePAM=yes as PAM typically specifies the user environment if it's enabled; bz#2937 * sshd(8) Cygwin: Change service name to cygsshd to avoid collision with Microsoft's OpenSSH port. * Allow building against OpenSSL -dev (3.x) * Fix a number of build problems against version configurations and versions of OpenSSL. Including bz#2931 and bz#2921 * Improve warnings in cygwin service setup. bz#2922 * Remove hardcoded service name in cygwin setup. bz#2922
Sync with HEAD Resolve a couple of conflicts (result of the uimin/uimax changes)
merge conflicts
Potentially-incompatible changes ================================ This release includes a number of changes that may affect existing configurations: * ssh-keygen(1): write OpenSSH format private keys by default instead of using OpenSSL's PEM format. The OpenSSH format, supported in OpenSSH releases since 2014 and described in the PROTOCOL.key file in the source distribution, offers substantially better protection against offline password guessing and supports key comments in private keys. If necessary, it is possible to write old PEM-style keys by adding "-m PEM" to ssh-keygen's arguments when generating or updating a key. * sshd(8): remove internal support for S/Key multiple factor authentication. S/Key may still be used via PAM or BSD auth. * ssh(1): remove vestigal support for running ssh(1) as setuid. This used to be required for hostbased authentication and the (long gone) rhosts-style authentication, but has not been necessary for a long time. Attempting to execute ssh as a setuid binary, or with uid != effective uid will now yield a fatal error at runtime. * sshd(8): the semantics of PubkeyAcceptedKeyTypes and the similar HostbasedAcceptedKeyTypes options have changed. These now specify signature algorithms that are accepted for their respective authentication mechanism, where previously they specified accepted key types. This distinction matters when using the RSA/SHA2 signature algorithms "rsa-sha2-256", "rsa-sha2-512" and their certificate counterparts. Configurations that override these options but omit these algorithm names may cause unexpected authentication failures (no action is required for configurations that accept the default for these options). * sshd(8): the precedence of session environment variables has changed. ~/.ssh/environment and environment="..." options in authorized_keys files can no longer override SSH_* variables set implicitly by sshd. * ssh(1)/sshd(8): the default IPQoS used by ssh/sshd has changed. They will now use DSCP AF21 for interactive traffic and CS1 for bulk. For a detailed rationale, please see the commit message: https://cvsweb.openbsd.org/src/usr.bin/ssh/readconf.c#rev1.284
Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
merge conflicts
OpenSSH 7.7 was released on 2018-04-02. It is available from the mirrors listed at http://www.openssh.com/ shortly. OpenSSH is a 100% complete SSH protocol 2.0 implementation and includes sftp client and server support. Once again, we would like to thank the OpenSSH community for their continued support of the project, especially those who contributed code or patches, reported bugs, tested snapshots or donated to the project. More information on donations may be found at: http://www.openssh.com/donations.html Potentially-incompatible changes ================================ This release includes a number of changes that may affect existing configurations: * ssh(1)/sshd(8): Drop compatibility support for some very old SSH implementations, including ssh.com <=2.* and OpenSSH <= 3.*. These versions were all released in or before 2001 and predate the final SSH RFCs. The support in question isn't necessary for RFC-compliant SSH implementations. Changes since OpenSSH 7.6 ========================= This is primarily a bugfix release. New Features ------------ * All: Add experimental support for PQC XMSS keys (Extended Hash- Based Signatures) based on the algorithm described in https://tools.ietf.org/html/draft-irtf-cfrg-xmss-hash-based-signatures-12 The XMSS signature code is experimental and not compiled in by default. * sshd(8): Add a "rdomain" criteria for the sshd_config Match keyword to allow conditional configuration that depends on which routing domain a connection was received on (currently supported on OpenBSD and Linux). * sshd_config(5): Add an optional rdomain qualifier to the ListenAddress directive to allow listening on different routing domains. This is supported only on OpenBSD and Linux at present. * sshd_config(5): Add RDomain directive to allow the authenticated session to be placed in an explicit routing domain. This is only supported on OpenBSD at present. * sshd(8): Add "expiry-time" option for authorized_keys files to allow for expiring keys. * ssh(1): Add a BindInterface option to allow binding the outgoing connection to an interface's address (basically a more usable BindAddress) * ssh(1): Expose device allocated for tun/tap forwarding via a new %T expansion for LocalCommand. This allows LocalCommand to be used to prepare the interface. * sshd(8): Expose the device allocated for tun/tap forwarding via a new SSH_TUNNEL environment variable. This allows automatic setup of the interface and surrounding network configuration automatically on the server. * ssh(1)/scp(1)/sftp(1): Add URI support to ssh, sftp and scp, e.g. ssh://user@host or sftp://user@host/path. Additional connection parameters described in draft-ietf-secsh-scp-sftp-ssh-uri-04 are not implemented since the ssh fingerprint format in the draft uses the deprecated MD5 hash with no way to specify the any other algorithm. * ssh-keygen(1): Allow certificate validity intervals that specify only a start or stop time (instead of both or neither). * sftp(1): Allow "cd" and "lcd" commands with no explicit path argument. lcd will change to the local user's home directory as usual. cd will change to the starting directory for session (because the protocol offers no way to obtain the remote user's home directory). bz#2760 * sshd(8): When doing a config test with sshd -T, only require the attributes that are actually used in Match criteria rather than (an incomplete list of) all criteria. Bugfixes -------- * ssh(1)/sshd(8): More strictly check signature types during key exchange against what was negotiated. Prevents downgrade of RSA signatures made with SHA-256/512 to SHA-1. * sshd(8): Fix support for client that advertise a protocol version of "1.99" (indicating that they are prepared to accept both SSHv1 and SSHv2). This was broken in OpenSSH 7.6 during the removal of SSHv1 support. bz#2810 * ssh(1): Warn when the agent returns a ssh-rsa (SHA1) signature when a rsa-sha2-256/512 signature was requested. This condition is possible when an old or non-OpenSSH agent is in use. bz#2799 * ssh-agent(1): Fix regression introduced in 7.6 that caused ssh-agent to fatally exit if presented an invalid signature request message. * sshd_config(5): Accept yes/no flag options case-insensitively, as has been the case in ssh_config(5) for a long time. bz#2664 * ssh(1): Improve error reporting for failures during connection. Under some circumstances misleading errors were being shown. bz#2814 * ssh-keyscan(1): Add -D option to allow printing of results directly in SSHFP format. bz#2821 * regress tests: fix PuTTY interop test broken in last release's SSHv1 removal. bz#2823 * ssh(1): Compatibility fix for some servers that erroneously drop the connection when the IUTF8 (RFC8160) option is sent. * scp(1): Disable RemoteCommand and RequestTTY in the ssh session started by scp (sftp was already doing this.) * ssh-keygen(1): Refuse to create a certificate with an unusable number of principals. * ssh-keygen(1): Fatally exit if ssh-keygen is unable to write all the public key during key generation. Previously it would silently ignore errors writing the comment and terminating newline. * ssh(1): Do not modify hostname arguments that are addresses by automatically forcing them to lower-case. Instead canonicalise them to resolve ambiguities (e.g. ::0001 => ::1) before they are matched against known_hosts. bz#2763 * ssh(1): Don't accept junk after "yes" or "no" responses to hostkey prompts. bz#2803 * sftp(1): Have sftp print a warning about shell cleanliness when decoding the first packet fails, which is usually caused by shells polluting stdout of non-interactive startups. bz#2800 * ssh(1)/sshd(8): Switch timers in packet code from using wall-clock time to monotonic time, allowing the packet layer to better function over a clock step and avoiding possible integer overflows during steps. * Numerous manual page fixes and improvements. Portability ----------- * sshd(8): Correctly detect MIPS ABI in use at configure time. Fixes sandbox violations on some environments. * sshd(8): Remove UNICOS support. The hardware and software are literal museum pieces and support in sshd is too intrusive to justify maintaining. * All: Build and link with "retpoline" flags when available to mitigate the "branch target injection" style (variant 2) of the Spectre branch-prediction vulnerability. * All: Add auto-generated dependency information to Makefile. * Numerous fixed to the RPM spec files. Checksums: ========== - SHA1 (openssh-7.7.tar.gz) = 24812e05fa233014c847c7775748316e7f8a836c - SHA256 (openssh-7.7.tar.gz) = T4ua1L/vgAYqwB0muRahvnm5ZUr3PLY9nPljaG8egvo= - SHA1 (openssh-7.7p1.tar.gz) = 446fe9ed171f289f0d62197dffdbfdaaf21c49f2 - SHA256 (openssh-7.7p1.tar.gz) = 1zvn5oTpnvzQJL4Vowv/y+QbASsvezyQhK7WIXdea48= Please note that the SHA256 signatures are base64 encoded and not hexadecimal (which is the default for most checksum tools). The PGP key used to sign the releases is available as RELEASE_KEY.asc from the mirror sites. Reporting Bugs: =============== - Please read http://www.openssh.com/report.html Security bugs should be reported directly to openssh@openssh.com
Pull up following revision(s) (requested by sevan in ticket #320): distrib/sets/lists/base/shl.mi: 1.822 distrib/sets/lists/debug/shl.mi: 1.184 doc/3RDPARTY: 1.1475 crypto/external/bsd/openssh/Makefile.inc: up to 1.10 crypto/external/bsd/openssh/bin/ssh/Makefile: up to 1.12 crypto/external/bsd/openssh/dist/LICENCE: up to 1.6 crypto/external/bsd/openssh/dist/PROTOCOL: up to 1.10 crypto/external/bsd/openssh/dist/PROTOCOL.agent: up to 1.9 crypto/external/bsd/openssh/dist/PROTOCOL.certkeys: up to 1.8 crypto/external/bsd/openssh/dist/auth-options.c: up to 1.16 crypto/external/bsd/openssh/dist/auth-options.h: up to 1.9 crypto/external/bsd/openssh/dist/auth-pam.c: up to 1.12 crypto/external/bsd/openssh/dist/auth.c: up to 1.20 crypto/external/bsd/openssh/dist/auth.h: up to 1.16 crypto/external/bsd/openssh/dist/auth2-chall.c: up to 1.13 crypto/external/bsd/openssh/dist/auth2-gss.c: up to 1.11 crypto/external/bsd/openssh/dist/auth2-hostbased.c: up to 1.12 crypto/external/bsd/openssh/dist/auth2-kbdint.c: up to 1.8 crypto/external/bsd/openssh/dist/auth2-krb5.c: up to 1.7 crypto/external/bsd/openssh/dist/auth2-none.c: up to 1.8 crypto/external/bsd/openssh/dist/auth2-passwd.c: up to 1.8 crypto/external/bsd/openssh/dist/auth2-pubkey.c: up to 1.18 crypto/external/bsd/openssh/dist/auth2.c: up to 1.15 crypto/external/bsd/openssh/dist/authfd.c: up to 1.14 crypto/external/bsd/openssh/dist/authfd.h: up to 1.9 crypto/external/bsd/openssh/dist/authfile.c: up to 1.17 crypto/external/bsd/openssh/dist/bitmap.c: up to 1.6 crypto/external/bsd/openssh/dist/bufbn.c: up to 1.9 crypto/external/bsd/openssh/dist/buffer.h: up to 1.10 crypto/external/bsd/openssh/dist/channels.c: up to 1.20 crypto/external/bsd/openssh/dist/channels.h: up to 1.14 crypto/external/bsd/openssh/dist/cipher-3des1.c: delete crypto/external/bsd/openssh/dist/cipher-bf1.c: delete crypto/external/bsd/openssh/dist/cipher.c: up to 1.11 crypto/external/bsd/openssh/dist/cipher.h: up to 1.11 crypto/external/bsd/openssh/dist/clientloop.c: up to 1.22 crypto/external/bsd/openssh/dist/clientloop.h: up to 1.15 crypto/external/bsd/openssh/dist/compat.c: up to 1.17 crypto/external/bsd/openssh/dist/compat.h: up to 1.10 crypto/external/bsd/openssh/dist/deattack.c: delete crypto/external/bsd/openssh/dist/deattack.h: delete crypto/external/bsd/openssh/dist/digest-libc.c: up to 1.7 crypto/external/bsd/openssh/dist/digest-openssl.c: up to 1.6 crypto/external/bsd/openssh/dist/digest.h: up to 1.1.1.3 crypto/external/bsd/openssh/dist/dispatch.c: up to 1.9 crypto/external/bsd/openssh/dist/dispatch.h: up to 1.7 crypto/external/bsd/openssh/dist/dns.c: up to 1.15 crypto/external/bsd/openssh/dist/dns.h: up to 1.10 crypto/external/bsd/openssh/dist/gss-serv.c: up to 1.11 crypto/external/bsd/openssh/dist/hostfile.c: up to 1.11 crypto/external/bsd/openssh/dist/includes.h: up to 1.7 crypto/external/bsd/openssh/dist/kex.c: up to 1.19 crypto/external/bsd/openssh/dist/kex.h: up to 1.16 crypto/external/bsd/openssh/dist/kexc25519c.c: up to 1.7 crypto/external/bsd/openssh/dist/kexc25519s.c: up to 1.9 crypto/external/bsd/openssh/dist/kexdhc.c: up to 1.10 crypto/external/bsd/openssh/dist/kexdhs.c: up to 1.13 crypto/external/bsd/openssh/dist/kexecdhc.c: up to 1.8 crypto/external/bsd/openssh/dist/kexecdhs.c: up to 1.9 crypto/external/bsd/openssh/dist/kexgexc.c: up to 1.10 crypto/external/bsd/openssh/dist/kexgexs.c: up to 1.14 crypto/external/bsd/openssh/dist/key.c: up to 1.22 crypto/external/bsd/openssh/dist/key.h: up to 1.14 crypto/external/bsd/openssh/dist/krl.c: up to 1.11 crypto/external/bsd/openssh/dist/log.c: up to 1.17 crypto/external/bsd/openssh/dist/log.h: up to 1.13 crypto/external/bsd/openssh/dist/mac.c: up to 1.15 crypto/external/bsd/openssh/dist/misc.c: up to 1.16 crypto/external/bsd/openssh/dist/misc.h: up to 1.13 crypto/external/bsd/openssh/dist/moduli-gen/moduli-gen.sh: up to 1.1.1.2 crypto/external/bsd/openssh/dist/moduli-gen/moduli.2048: up to 1.3 crypto/external/bsd/openssh/dist/moduli-gen/moduli.3072: up to 1.3 crypto/external/bsd/openssh/dist/moduli-gen/moduli.4096: up to 1.3 crypto/external/bsd/openssh/dist/moduli-gen/moduli.6144: up to 1.3 crypto/external/bsd/openssh/dist/moduli-gen/moduli.7680: up to 1.3 crypto/external/bsd/openssh/dist/moduli-gen/moduli.8192: up to 1.3 crypto/external/bsd/openssh/dist/monitor.c: up to 1.23 crypto/external/bsd/openssh/dist/monitor_wrap.c: up to 1.18 crypto/external/bsd/openssh/dist/monitor_wrap.h: up to 1.14 crypto/external/bsd/openssh/dist/mux.c: up to 1.19 crypto/external/bsd/openssh/dist/myproposal.h: up to 1.17 crypto/external/bsd/openssh/dist/nchan.c: up to 1.9 crypto/external/bsd/openssh/dist/opacket.c: up to 1.8 crypto/external/bsd/openssh/dist/opacket.h: up to 1.8 crypto/external/bsd/openssh/dist/packet.c: up to 1.29 crypto/external/bsd/openssh/dist/packet.h: up to 1.16 crypto/external/bsd/openssh/dist/pathnames.h: up to 1.13 crypto/external/bsd/openssh/dist/pfilter.c: up to 1.4 crypto/external/bsd/openssh/dist/readconf.c: up to 1.22 crypto/external/bsd/openssh/dist/readconf.h: up to 1.19 crypto/external/bsd/openssh/dist/recallocarray.c: up to 1.1 crypto/external/bsd/openssh/dist/rsa.c: delete crypto/external/bsd/openssh/dist/rsa.h: delete crypto/external/bsd/openssh/dist/scp.1: up to 1.15 crypto/external/bsd/openssh/dist/scp.c: up to 1.17 crypto/external/bsd/openssh/dist/servconf.c: up to 1.25 crypto/external/bsd/openssh/dist/servconf.h: up to 1.16 crypto/external/bsd/openssh/dist/serverloop.c: up to 1.18 crypto/external/bsd/openssh/dist/serverloop.h: up to 1.7 crypto/external/bsd/openssh/dist/session.c: up to 1.23 crypto/external/bsd/openssh/dist/session.h: up to 1.8 crypto/external/bsd/openssh/dist/sftp-client.c: up to 1.19 crypto/external/bsd/openssh/dist/sftp-common.c: up to 1.10 crypto/external/bsd/openssh/dist/sftp-server.c: up to 1.17 crypto/external/bsd/openssh/dist/sftp.1: up to 1.16 crypto/external/bsd/openssh/dist/sftp.c: up to 1.22 crypto/external/bsd/openssh/dist/ssh-add.1: up to 1.13 crypto/external/bsd/openssh/dist/ssh-add.c: up to 1.16 crypto/external/bsd/openssh/dist/ssh-agent.c: up to 1.21 crypto/external/bsd/openssh/dist/ssh-gss.h: up to 1.8 crypto/external/bsd/openssh/dist/ssh-keygen.1: up to 1.20 crypto/external/bsd/openssh/dist/ssh-keygen.c: up to 1.28 crypto/external/bsd/openssh/dist/ssh-keyscan.1: up to 1.14 crypto/external/bsd/openssh/dist/ssh-keyscan.c: up to 1.20 crypto/external/bsd/openssh/dist/ssh-pkcs11-client.c: up to 1.10 crypto/external/bsd/openssh/dist/ssh-pkcs11-helper.c: up to 1.13 crypto/external/bsd/openssh/dist/ssh-pkcs11.c: up to 1.13 crypto/external/bsd/openssh/dist/ssh-rsa.c: up to 1.13 crypto/external/bsd/openssh/dist/ssh.1: up to 1.21 crypto/external/bsd/openssh/dist/ssh.c: up to 1.26 crypto/external/bsd/openssh/dist/ssh.h: up to 1.10 crypto/external/bsd/openssh/dist/ssh1.h: delete crypto/external/bsd/openssh/dist/ssh_api.c: up to 1.7 crypto/external/bsd/openssh/dist/ssh_config: up to 1.11 crypto/external/bsd/openssh/dist/ssh_config.5: up to 1.21 crypto/external/bsd/openssh/dist/sshbuf-getput-basic.c: up to 1.8 crypto/external/bsd/openssh/dist/sshbuf.c: up to 1.8 crypto/external/bsd/openssh/dist/sshbuf.h: up to 1.8 crypto/external/bsd/openssh/dist/sshconnect.c: up to 1.20 crypto/external/bsd/openssh/dist/sshconnect.h: up to 1.10 crypto/external/bsd/openssh/dist/sshconnect1.c: delete crypto/external/bsd/openssh/dist/sshconnect2.c: up to 1.29 crypto/external/bsd/openssh/dist/sshd.8: up to 1.19 crypto/external/bsd/openssh/dist/sshd.c: up to 1.28 crypto/external/bsd/openssh/dist/sshd_config.5: up to 1.25 crypto/external/bsd/openssh/dist/ssherr.c: up to 1.7 crypto/external/bsd/openssh/dist/ssherr.h: up to 1.1.1.3 crypto/external/bsd/openssh/dist/sshkey.c: up to 1.11 crypto/external/bsd/openssh/dist/sshkey.h: up to 1.6 crypto/external/bsd/openssh/dist/ttymodes.c: up to 1.8 crypto/external/bsd/openssh/dist/ttymodes.h: up to 1.8 crypto/external/bsd/openssh/dist/umac.c: up to 1.14 crypto/external/bsd/openssh/dist/utf8.c: up to 1.6 crypto/external/bsd/openssh/dist/version.h: up to 1.24 crypto/external/bsd/openssh/dist/xmalloc.c: up to 1.10 crypto/external/bsd/openssh/dist/xmalloc.h: up to 1.10 crypto/external/bsd/openssh/lib/Makefile: up to 1.23 crypto/external/bsd/openssh/lib/shlib_version: up to 1.20 Update OpenSSH to 7.6.
merge conflicts.
Potentially-incompatible changes ================================ This release includes a number of changes that may affect existing configurations: * ssh(1): delete SSH protocol version 1 support, associated configuration options and documentation. * ssh(1)/sshd(8): remove support for the hmac-ripemd160 MAC. * ssh(1)/sshd(8): remove support for the arcfour, blowfish and CAST ciphers. * Refuse RSA keys <1024 bits in length and improve reporting for keys that do not meet this requirement. * ssh(1): do not offer CBC ciphers by default. Changes since OpenSSH 7.5 ========================= This is primarily a bugfix release. It also contains substantial internal refactoring. Security -------- * sftp-server(8): in read-only mode, sftp-server was incorrectly permitting creation of zero-length files. Reported by Michal Zalewski. New Features ------------ * ssh(1): add RemoteCommand option to specify a command in the ssh config file instead of giving it on the client's command line. This allows the configuration file to specify the command that will be executed on the remote host. * sshd(8): add ExposeAuthInfo option that enables writing details of the authentication methods used (including public keys where applicable) to a file that is exposed via a $SSH_USER_AUTH environment variable in the subsequent session. * ssh(1): add support for reverse dynamic forwarding. In this mode, ssh will act as a SOCKS4/5 proxy and forward connections to destinations requested by the remote SOCKS client. This mode is requested using extended syntax for the -R and RemoteForward options and, because it is implemented solely at the client, does not require the server be updated to be supported. * sshd(8): allow LogLevel directive in sshd_config Match blocks; bz#2717 * ssh-keygen(1): allow inclusion of arbitrary string or flag certificate extensions and critical options. * ssh-keygen(1): allow ssh-keygen to use a key held in ssh-agent as a CA when signing certificates. bz#2377 * ssh(1)/sshd(8): allow IPQoS=none in ssh/sshd to not set an explicit ToS/DSCP value and just use the operating system default. * ssh-add(1): added -q option to make ssh-add quiet on success. * ssh(1): expand the StrictHostKeyChecking option with two new settings. The first "accept-new" will automatically accept hitherto-unseen keys but will refuse connections for changed or invalid hostkeys. This is a safer subset of the current behaviour of StrictHostKeyChecking=no. The second setting "off", is a synonym for the current behaviour of StrictHostKeyChecking=no: accept new host keys, and continue connection for hosts with incorrect hostkeys. A future release will change the meaning of StrictHostKeyChecking=no to the behaviour of "accept-new". bz#2400 * ssh(1): add SyslogFacility option to ssh(1) matching the equivalent option in sshd(8). bz#2705 Bugfixes -------- * ssh(1): use HostKeyAlias if specified instead of hostname for matching host certificate principal names; bz#2728 * sftp(1): implement sorting for globbed ls; bz#2649 * ssh(1): add a user@host prefix to client's "Permission denied" messages, useful in particular when using "stacked" connections (e.g. ssh -J) where it's not clear which host is denying. bz#2720 * ssh(1): accept unknown EXT_INFO extension values that contain \0 characters. These are legal, but would previously cause fatal connection errors if received. * ssh(1)/sshd(8): repair compression statistics printed at connection exit * sftp(1): print '?' instead of incorrect link count (that the protocol doesn't provide) for remote listings. bz#2710 * ssh(1): return failure rather than fatal() for more cases during session multiplexing negotiations. Causes the session to fall back to a non-mux connection if they occur. bz#2707 * ssh(1): mention that the server may send debug messages to explain public key authentication problems under some circumstances; bz#2709 * Translate OpenSSL error codes to better report incorrect passphrase errors when loading private keys; bz#2699 * sshd(8): adjust compatibility patterns for WinSCP to correctly identify versions that implement only the legacy DH group exchange scheme. bz#2748 * ssh(1): print the "Killed by signal 1" message only at LogLevel verbose so that it is not shown at the default level; prevents it from appearing during ssh -J and equivalent ProxyCommand configs. bz#1906, bz#2744 * ssh-keygen(1): when generating all hostkeys (ssh-keygen -A), clobber existing keys if they exist but are zero length. zero-length keys could previously be made if ssh-keygen failed or was interrupted part way through generating them. bz#2561 * ssh(1): fix pledge(2) violation in the escape sequence "~&" used to place the current session in the background. * ssh-keyscan(1): avoid double-close() on file descriptors; bz#2734 * sshd(8): avoid reliance on shared use of pointers shared between monitor and child sshd processes. bz#2704 * sshd_config(8): document available AuthenticationMethods; bz#2453 * ssh(1): avoid truncation in some login prompts; bz#2768 * sshd(8): Fix various compilations failures, inc bz#2767 * ssh(1): make "--" before the hostname terminate argument processing after the hostname too. * ssh-keygen(1): switch from aes256-cbc to aes256-ctr for encrypting new-style private keys. Fixes problems related to private key handling for no-OpenSSL builds. bz#2754 * ssh(1): warn and do not attempt to use keys when the public and private halves do not match. bz#2737 * sftp(1): don't print verbose error message when ssh disconnects from under sftp. bz#2750 * sshd(8): fix keepalive scheduling problem: activity on a forwarded port from preventing the keepalive from being sent; bz#2756 * sshd(8): when started without root privileges, don't require the privilege separation user or path to exist. Makes running the regression tests easier without touching the filesystem. * Make integrity.sh regression tests more robust against timeouts. bz#2658 * ssh(1)/sshd(8): correctness fix for channels implementation: accept channel IDs greater than 0x7FFFFFFF. Portability ----------- * sshd(9): drop two more privileges in the Solaris sandbox: PRIV_DAX_ACCESS and PRIV_SYS_IB_INFO; bz#2723 * sshd(8): expose list of completed authentication methods to PAM via the SSH_AUTH_INFO_0 PAM environment variable. bz#2408 * ssh(1)/sshd(8): fix several problems in the tun/tap forwarding code, mostly to do with host/network byte order confusion. bz#2735 * Add --with-cflags-after and --with-ldflags-after configure flags to allow setting CFLAGS/LDFLAGS after configure has completed. These are useful for setting sanitiser/fuzzing options that may interfere with configure's operation. * sshd(8): avoid Linux seccomp violations on ppc64le over the socketcall syscall. * Fix use of ldns when using ldns-config; bz#2697 * configure: set cache variables when cross-compiling. The cross- compiling fallback message was saying it assumed the test passed, but it wasn't actually set the cache variables and this would cause later tests to fail. * Add clang libFuzzer harnesses for public key parsing and signature verification.
Apply patch (requested by mrg in ticket #1468): Update OpenSSH to 7.5.
Apply patch (requested by mrg in ticket #1468): Update OpenSSH to 7.5.
Apply patch (requested by mrg in ticket #1468): Update OpenSSH to 7.5.
Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
merge conflicts
Sync with HEAD
merge conflicts.
OpenSSH 7.3 has just been released. It will be available from the mirrors listed at http://www.openssh.com/ shortly. OpenSSH is a 100% complete SSH protocol 2.0 implementation and includes sftp client and server support. OpenSSH also includes transitional support for the legacy SSH 1.3 and 1.5 protocols that may be enabled at compile-time. Once again, we would like to thank the OpenSSH community for their continued support of the project, especially those who contributed code or patches, reported bugs, tested snapshots or donated to the project. More information on donations may be found at: http://www.openssh.com/donations.html Future deprecation notice ========================= We plan on retiring more legacy cryptography in a near-future release, specifically: * Refusing all RSA keys smaller than 1024 bits (the current minimum is 768 bits) * Removing server-side support for the SSH v.1 protocol (currently compile-time disabled). * In approximately 1 year, removing all support for the SSH v.1 protocol (currently compile-time disabled). This list reflects our current intentions, but please check the final release notes for future releases. Changes since OpenSSH 7.2 ========================= This is primarily a bugfix release. Security -------- * sshd(8): Mitigate a potential denial-of-service attack against the system's crypt(3) function via sshd(8). An attacker could send very long passwords that would cause excessive CPU use in crypt(3). sshd(8) now refuses to accept password authentication requests of length greater than 1024 characters. Independently reported by Tomas Kuthan (Oracle), Andres Rojas and Javier Nieto. * sshd(8): Mitigate timing differences in password authentication that could be used to discern valid from invalid account names when long passwords were sent and particular password hashing algorithms are in use on the server. CVE-2016-6210, reported by EddieEzra.Harari at verint.com * ssh(1), sshd(8): Fix observable timing weakness in the CBC padding oracle countermeasures. Reported by Jean Paul Degabriele, Kenny Paterson, Torben Hansen and Martin Albrecht. Note that CBC ciphers are disabled by default and only included for legacy compatibility. * ssh(1), sshd(8): Improve operation ordering of MAC verification for Encrypt-then-MAC (EtM) mode transport MAC algorithms to verify the MAC before decrypting any ciphertext. This removes the possibility of timing differences leaking facts about the plaintext, though no such leakage has been observed. Reported by Jean Paul Degabriele, Kenny Paterson, Torben Hansen and Martin Albrecht. * sshd(8): (portable only) Ignore PAM environment vars when UseLogin=yes. If PAM is configured to read user-specified environment variables and UseLogin=yes in sshd_config, then a hostile local user may attack /bin/login via LD_PRELOAD or similar environment variables set via PAM. CVE-2015-8325, found by Shayan Sadigh. New Features ------------ * ssh(1): Add a ProxyJump option and corresponding -J command-line flag to allow simplified indirection through a one or more SSH bastions or "jump hosts". * ssh(1): Add an IdentityAgent option to allow specifying specific agent sockets instead of accepting one from the environment. * ssh(1): Allow ExitOnForwardFailure and ClearAllForwardings to be optionally overridden when using ssh -W. bz#2577 * ssh(1), sshd(8): Implement support for the IUTF8 terminal mode as per draft-sgtatham-secsh-iutf8-00. * ssh(1), sshd(8): Add support for additional fixed Diffie-Hellman 2K, 4K and 8K groups from draft-ietf-curdle-ssh-kex-sha2-03. * ssh-keygen(1), ssh(1), sshd(8): support SHA256 and SHA512 RSA signatures in certificates; * ssh(1): Add an Include directive for ssh_config(5) files. * ssh(1): Permit UTF-8 characters in pre-authentication banners sent from the server. bz#2058 Bugfixes -------- * ssh(1), sshd(8): Reduce the syslog level of some relatively common protocol events from LOG_CRIT. bz#2585 * sshd(8): Refuse AuthenticationMethods="" in configurations and accept AuthenticationMethods=any for the default behaviour of not requiring multiple authentication. bz#2398 * sshd(8): Remove obsolete and misleading "POSSIBLE BREAK-IN ATTEMPT!" message when forward and reverse DNS don't match. bz#2585 * ssh(1): Close ControlPersist background process stderr except in debug mode or when logging to syslog. bz#1988 * misc: Make PROTOCOL description for direct-streamlocal@openssh.com channel open messages match deployed code. bz#2529 * ssh(1): Deduplicate LocalForward and RemoteForward entries to fix failures when both ExitOnForwardFailure and hostname canonicalisation are enabled. bz#2562 * sshd(8): Remove fallback from moduli to obsolete "primes" file that was deprecated in 2001. bz#2559. * sshd_config(5): Correct description of UseDNS: it affects ssh hostname processing for authorized_keys, not known_hosts; bz#2554 * ssh(1): Fix authentication using lone certificate keys in an agent without corresponding private keys on the filesystem. bz#2550 * sshd(8): Send ClientAliveInterval pings when a time-based RekeyLimit is set; previously keepalive packets were not being sent. bz#2252 Portability ----------- * ssh(1), sshd(8): Fix compilation by automatically disabling ciphers not supported by OpenSSL. bz#2466 * misc: Fix compilation failures on some versions of AIX's compiler related to the definition of the VA_COPY macro. bz#2589 * sshd(8): Whitelist more architectures to enable the seccomp-bpf sandbox. bz#2590 * ssh-agent(1), sftp-server(8): Disable process tracing on Solaris using setpflags(__PROC_PROTECT, ...). bz#2584 * sshd(8): On Solaris, don't call Solaris setproject() with UsePAM=yes it's PAM's responsibility. bz#2425 Checksums: ========== - SHA1 (openssh-7.3.tar.gz) = b1641e5265d9ec68a9a19decc3a7edd1203cbd33 - SHA256 (openssh-7.3.tar.gz) = vS0X35qrX9OOPBkyDMYhOje/DBwHBVEV7nv5rkzw4vM= - SHA1 (openssh-7.3p1.tar.gz) = bfade84283fcba885e2084343ab19a08c7d123a5 - SHA256 (openssh-7.3p1.tar.gz) = P/uYmm3KppWUw7VQ1IVaWi4XGMzd5/XjY4e0JCIPvsw= Please note that the SHA256 signatures are base64 encoded and not hexadecimal (which is the default for most checksum tools). The PGP key used to sign the releases is available as RELEASE_KEY.asc from the mirror sites. Reporting Bugs: =============== - Please read http://www.openssh.com/report.html Security bugs should be reported directly to openssh@openssh.com OpenSSH is brought to you by Markus Friedl, Niels Provos, Theo de Raadt, Kevin Steves, Damien Miller, Darren Tucker, Jason McIntyre, Tim Rice and Ben Lindstrom.
Merge conflicts
merge openssh-6.7
resync with head
sync with (a bit old) head
update to 6.1 This is primarily a bugfix release. Features: * sshd(8): This release turns on pre-auth sandboxing sshd by default for new installs, by setting UsePrivilegeSeparation=sandbox in sshd_config. * ssh-keygen(1): Add options to specify starting line number and number of lines to process when screening moduli candidates, allowing processing of different parts of a candidate moduli file in parallel * sshd(8): The Match directive now supports matching on the local (listen) address and port upon which the incoming connection was received via LocalAddress and LocalPort clauses. * sshd(8): Extend sshd_config Match directive to allow setting AcceptEnv and {Allow,Deny}{Users,Groups} * Add support for RFC6594 SSHFP DNS records for ECDSA key types. bz#1978 * ssh-keygen(1): Allow conversion of RSA1 keys to public PEM and PKCS8 * sshd(8): Allow the sshd_config PermitOpen directive to accept "none" as an argument to refuse all port-forwarding requests. * sshd(8): Support "none" as an argument for AuthorizedPrincipalsFile * ssh-keyscan(1): Look for ECDSA keys by default. bz#1971 * sshd(8): Add "VersionAddendum" to sshd_config to allow server operators to append some arbitrary text to the server SSH protocol banner. Bugfixes: * ssh(1)/sshd(8): Don't spin in accept() in situations of file descriptor exhaustion. Instead back off for a while. * ssh(1)/sshd(8): Remove hmac-sha2-256-96 and hmac-sha2-512-96 MACs as they were removed from the specification. bz#2023, * sshd(8): Handle long comments in config files better. bz#2025 * ssh(1): Delay setting tty_flag so RequestTTY options are correctly picked up. bz#1995 * sshd(8): Fix handling of /etc/nologin incorrectly being applied to root on platforms that use login_cap.
From ftp.openbsd.org
- Merge conflicts - WARNS=5
from ftp.openbsd.org
Imported openssh-5.6
Initial revision