Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openssh for openSUSE:Factory checked in at 2021-10-11 16:48:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openssh (Old) and /work/SRC/openSUSE:Factory/.openssh.new.2443 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openssh" Mon Oct 11 16:48:36 2021 rev:154 rq:923951 version:8.8p1 Changes: -------- --- /work/SRC/openSUSE:Factory/openssh/openssh-askpass-gnome.changes 2020-10-18 16:30:20.444729018 +0200 +++ /work/SRC/openSUSE:Factory/.openssh.new.2443/openssh-askpass-gnome.changes 2021-10-11 16:48:39.866172377 +0200 @@ -1,0 +2,7 @@ +Tue Sep 28 19:05:15 UTC 2021 - Hans Petter Jansson <h...@suse.com> + +- Version upgrade to 8.8p1 + * No changes for askpass, see main package changelog for + details + +------------------------------------------------------------------- --- /work/SRC/openSUSE:Factory/openssh/openssh.changes 2021-07-22 22:43:29.231189893 +0200 +++ /work/SRC/openSUSE:Factory/.openssh.new.2443/openssh.changes 2021-10-11 16:48:39.962172529 +0200 @@ -1,0 +2,368 @@ +Tue Sep 28 17:50:57 UTC 2021 - Hans Petter Jansson <h...@suse.com> + +- Version update to 8.8p1: + = Security + * 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. + + Depending on system configuration, inherited groups may allow + AuthorizedKeysCommand/AuthorizedPrincipalsCommand helper programs to + gain unintended privilege. + + Neither AuthorizedKeysCommand nor AuthorizedPrincipalsCommand are + enabled by default in sshd_config(5). + + = Potentially-incompatible changes + * This release disables RSA signatures using the SHA-1 hash algorithm + by default. This change has been made as the SHA-1 hash algorithm is + cryptographically broken, and it is possible to create chosen-prefix + hash collisions for <USD$50K. + + For most users, this change should be invisible and there is + no need to replace ssh-rsa keys. OpenSSH has supported RFC8332 + RSA/SHA-256/512 signatures since release 7.2 and existing ssh-rsa keys + will automatically use the stronger algorithm where possible. + + Incompatibility is more likely when connecting to older SSH + implementations that have not been upgraded or have not closely tracked + improvements in the SSH protocol. For these cases, it may be necessary + to selectively re-enable RSA/SHA1 to allow connection and/or user + authentication via the HostkeyAlgorithms and PubkeyAcceptedAlgorithms + options. + + = New features + * ssh(1): allow the ssh_config(5) CanonicalizePermittedCNAMEs + directive to accept a "none" argument to specify the default + behaviour. + + = Bugfixes + * 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, including + bz#3340, PR139, PR215, PR241, PR257 + +- Additional changes from 8.7p1 release: + = Potentially-incompatible changes + * 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. + + = 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-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. GHPR231 + * 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 GHPR246 + * 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. GHPR247 + * 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 + lim...@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 lim...@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. + +- Additional changes from 8.6p1 release: + = Security + * sshd(8): OpenSSH 8.5 introduced the LogVerbose keyword. When this + option was enabled with a set of patterns that activated logging + in code that runs in the low-privilege sandboxed sshd process, the + log messages were constructed in such a way that printf(3) format + strings could effectively be specified the low-privilege code. + + = New features + * sftp-server(8): add a new lim...@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 lim...@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. + * unit tests: Add a TEST_SSH_ELAPSED_TIMES environment variable to + enable printing of the elapsed time in seconds of each test. + + = Bugfixes + * ssh_config(5), sshd_config(5): sync CASignatureAlgorithms lists in + manual pages with the current default. GHPR174 ++++ 171 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/openssh/openssh.changes ++++ and /work/SRC/openSUSE:Factory/.openssh.new.2443/openssh.changes Old: ---- openssh-8.4p1.tar.gz openssh-8.4p1.tar.gz.asc openssh-fix-ssh-copy-id.patch New: ---- openssh-8.8p1.tar.gz openssh-8.8p1.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openssh-askpass-gnome.spec ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.622175167 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.626175174 +0200 @@ -18,7 +18,7 @@ %define _name openssh Name: openssh-askpass-gnome -Version: 8.4p1 +Version: 8.8p1 Release: 0 Summary: A GNOME-Based Passphrase Dialog for OpenSSH License: BSD-2-Clause ++++++ openssh.spec ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.646175206 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.650175212 +0200 @@ -35,7 +35,7 @@ %define _fillupdir %{_localstatedir}/adm/fillup-templates %endif Name: openssh -Version: 8.4p1 +Version: 8.8p1 Release: 0 Summary: Secure Shell Client and Server (Remote Login Program) License: BSD-2-Clause AND MIT @@ -105,7 +105,6 @@ Patch41: openssh-fips-ensure-approved-moduli.patch Patch42: openssh-link-with-sk.patch Patch43: openssh-reenable-dh-group14-sha1-default.patch -Patch44: openssh-fix-ssh-copy-id.patch Patch45: openssh-8.4p1-ssh_config_d.patch Patch46: openssh-whitelist-syscalls.patch Patch47: openssh-8.4p1-vendordir.patch ++++++ openssh-7.7p1-IPv6_X_forwarding.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.710175308 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.710175308 +0200 @@ -5,15 +5,11 @@ bnc#847710 - https://bugzilla.novell.com/show_bug.cgi?id=847710 -diff --git a/openssh-7.7p1/channels.c b/openssh-7.7p1/channels.c ---- openssh-7.7p1/channels.c -+++ openssh-7.7p1/channels.c -@@ -4590,33 +4590,42 @@ x11_connect_display(struct ssh *ssh) - return -1; - - /* OK, we now have a connection to the display. */ - return sock; - } +Index: openssh-8.8p1/channels.c +=================================================================== +--- openssh-8.8p1.orig/channels.c ++++ openssh-8.8p1/channels.c +@@ -4776,9 +4776,10 @@ x11_connect_display(struct ssh *ssh) /* * Connect to an inet socket. The DISPLAY value is supposedly * hostname:d[.s], where hostname may also be numeric IP address. @@ -25,14 +21,7 @@ if (!cp) { error("Could not find ':' in DISPLAY: %.100s", display); return -1; - } - *cp = 0; - /* - * buf now contains the host name. But first we parse the - * display number. - */ - if (sscanf(cp + 1, "%u", &display_number) != 1) { - error("Could not parse display number from DISPLAY: %.100s", +@@ -4793,6 +4794,14 @@ x11_connect_display(struct ssh *ssh) display); return -1; } @@ -47,8 +36,3 @@ /* Look up the host address */ memset(&hints, 0, sizeof(hints)); - hints.ai_family = ssh->chanctxt->IPv4or6; - hints.ai_socktype = SOCK_STREAM; - snprintf(strport, sizeof strport, "%u", 6000 + display_number); - if ((gaierr = getaddrinfo(buf, strport, &hints, &aitop)) != 0) { - error("%.100s: unknown host. (%s)", buf, ++++++ openssh-7.7p1-X11_trusted_forwarding.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.718175320 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.718175320 +0200 @@ -6,10 +6,10 @@ Enable Trusted X11 forwarding by default, since the security benefits of having it disabled are negligible these days with XI2 being widely used. -Index: openssh-7.8p1/ssh_config +Index: openssh-8.8p1/ssh_config =================================================================== ---- openssh-7.8p1.orig/ssh_config -+++ openssh-7.8p1/ssh_config +--- openssh-8.8p1.orig/ssh_config ++++ openssh-8.8p1/ssh_config @@ -17,9 +17,20 @@ # list of available options, their meanings and defaults, please see the # ssh_config(5) man page. @@ -32,10 +32,10 @@ # PasswordAuthentication yes # HostbasedAuthentication no # GSSAPIAuthentication no -Index: openssh-7.8p1/sshd_config +Index: openssh-8.8p1/sshd_config =================================================================== ---- openssh-7.8p1.orig/sshd_config -+++ openssh-7.8p1/sshd_config +--- openssh-8.8p1.orig/sshd_config ++++ openssh-8.8p1/sshd_config @@ -84,7 +84,7 @@ AuthorizedKeysFile .ssh/authorized_keys #AllowAgentForwarding yes #AllowTcpForwarding yes ++++++ openssh-7.7p1-X_forward_with_disabled_ipv6.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.726175333 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.730175339 +0200 @@ -3,13 +3,13 @@ Do not throw away already open sockets for X11 forwarding if another socket family is not available for bind() -diff --git a/channels.c b/channels.c -index f51b7e3..95af47e 100644 ---- a/channels.c -+++ b/channels.c -@@ -4637,6 +4637,13 @@ x11_create_display_inet(struct ssh *ssh, int x11_display_offset, - debug2("%s: bind port %d: %.100s", __func__, - port, strerror(errno)); +Index: openssh-8.8p1/channels.c +=================================================================== +--- openssh-8.8p1.orig/channels.c ++++ openssh-8.8p1/channels.c +@@ -4607,6 +4607,13 @@ x11_create_display_inet(struct ssh *ssh, + debug2_f("bind port %d: %.100s", port, + strerror(errno)); close(sock); + /* do not remove successfully opened sockets if + * the request failed because the protocol ++++++ openssh-7.7p1-cavstest-ctr.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.738175352 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.738175352 +0200 @@ -2,11 +2,11 @@ # Parent cc1022edba2c5eeb0facba08468f65afc2466b63 CAVS test for OpenSSH's own CTR encryption mode implementation -Index: openssh-8.4p1/Makefile.in +Index: openssh-8.8p1/Makefile.in =================================================================== ---- openssh-8.4p1.orig/Makefile.in -+++ openssh-8.4p1/Makefile.in -@@ -25,6 +25,7 @@ SFTP_SERVER=$(libexecdir)/sftp-server +--- openssh-8.8p1.orig/Makefile.in ++++ openssh-8.8p1/Makefile.in +@@ -26,6 +26,7 @@ SFTP_SERVER=$(libexecdir)/sftp-server SSH_KEYSIGN=$(libexecdir)/ssh-keysign SSH_PKCS11_HELPER=$(libexecdir)/ssh-pkcs11-helper SSH_SK_HELPER=$(libexecdir)/ssh-sk-helper @@ -14,7 +14,7 @@ PRIVSEP_PATH=@PRIVSEP_PATH@ SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@ STRIP_OPT=@STRIP_OPT@ -@@ -68,6 +69,8 @@ MKDIR_P=@MKDIR_P@ +@@ -69,6 +70,8 @@ MKDIR_P=@MKDIR_P@ TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-sk-helper$(EXEEXT) @@ -23,7 +23,7 @@ XMSS_OBJS=\ ssh-xmss.o \ sshkey-xmss.o \ -@@ -242,6 +245,10 @@ sftp-server$(EXEEXT): $(LIBCOMPAT) libss +@@ -245,6 +248,10 @@ sftp-server$(EXEEXT): $(LIBCOMPAT) libss sftp$(EXEEXT): $(LIBCOMPAT) libssh.a $(SFTP_OBJS) $(LD) -o $@ $(SFTP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(LIBEDIT) @@ -34,7 +34,7 @@ # test driver for the loginrec code - not built by default logintest: logintest.o $(LIBCOMPAT) libssh.a loginrec.o $(LD) -o $@ logintest.o $(LDFLAGS) loginrec.o -lopenbsd-compat -lssh $(LIBS) -@@ -400,6 +407,7 @@ install-files: +@@ -407,6 +414,7 @@ install-files: $(INSTALL) -m 0755 $(STRIP_OPT) ssh-sk-helper$(EXEEXT) $(DESTDIR)$(SSH_SK_HELPER)$(EXEEXT) $(INSTALL) -m 0755 $(STRIP_OPT) sftp$(EXEEXT) $(DESTDIR)$(bindir)/sftp$(EXEEXT) $(INSTALL) -m 0755 $(STRIP_OPT) sftp-server$(EXEEXT) $(DESTDIR)$(SFTP_SERVER)$(EXEEXT) @@ -42,10 +42,10 @@ $(INSTALL) -m 644 ssh.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1 $(INSTALL) -m 644 scp.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/scp.1 $(INSTALL) -m 644 ssh-add.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-add.1 -Index: openssh-8.4p1/cavstest-ctr.c +Index: openssh-8.8p1/cavstest-ctr.c =================================================================== --- /dev/null -+++ openssh-8.4p1/cavstest-ctr.c ++++ openssh-8.8p1/cavstest-ctr.c @@ -0,0 +1,214 @@ +/* + * @@ -261,10 +261,10 @@ + printf("\n"); + return 0; +} -Index: openssh-8.4p1/cipher.c +Index: openssh-8.8p1/cipher.c =================================================================== ---- openssh-8.4p1.orig/cipher.c -+++ openssh-8.4p1/cipher.c +--- openssh-8.8p1.orig/cipher.c ++++ openssh-8.8p1/cipher.c @@ -58,15 +58,6 @@ #define EVP_CIPHER_CTX void #endif @@ -281,10 +281,10 @@ struct sshcipher { char *name; u_int block_size; -Index: openssh-8.4p1/cipher.h +Index: openssh-8.8p1/cipher.h =================================================================== ---- openssh-8.4p1.orig/cipher.h -+++ openssh-8.4p1/cipher.h +--- openssh-8.8p1.orig/cipher.h ++++ openssh-8.8p1/cipher.h @@ -48,7 +48,15 @@ #define CIPHER_DECRYPT 0 ++++++ openssh-7.7p1-cavstest-kdf.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.746175365 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.746175365 +0200 @@ -2,11 +2,11 @@ # Parent 1e1d5a2ab8bddfc800f570755f9ea1addcc878c1 CAVS test for KDF implementation in OpenSSH -Index: openssh-8.4p1/Makefile.in +Index: openssh-8.8p1/Makefile.in =================================================================== ---- openssh-8.4p1.orig/Makefile.in -+++ openssh-8.4p1/Makefile.in -@@ -26,6 +26,7 @@ SSH_KEYSIGN=$(libexecdir)/ssh-keysign +--- openssh-8.8p1.orig/Makefile.in ++++ openssh-8.8p1/Makefile.in +@@ -27,6 +27,7 @@ SSH_KEYSIGN=$(libexecdir)/ssh-keysign SSH_PKCS11_HELPER=$(libexecdir)/ssh-pkcs11-helper SSH_SK_HELPER=$(libexecdir)/ssh-sk-helper CAVSTEST_CTR=$(libexecdir)/cavstest-ctr @@ -14,7 +14,7 @@ PRIVSEP_PATH=@PRIVSEP_PATH@ SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@ STRIP_OPT=@STRIP_OPT@ -@@ -69,7 +70,7 @@ MKDIR_P=@MKDIR_P@ +@@ -70,7 +71,7 @@ MKDIR_P=@MKDIR_P@ TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-sk-helper$(EXEEXT) @@ -23,7 +23,7 @@ XMSS_OBJS=\ ssh-xmss.o \ -@@ -249,6 +250,9 @@ sftp$(EXEEXT): $(LIBCOMPAT) libssh.a $(S +@@ -252,6 +253,9 @@ sftp$(EXEEXT): $(LIBCOMPAT) libssh.a $(S cavstest-ctr$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-sk.o sk-usbhid.o cavstest-ctr.o $(LD) -o $@ cavstest-ctr.o ssh-sk.o sk-usbhid.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) $(LIBFIDO2) @@ -33,7 +33,7 @@ # test driver for the loginrec code - not built by default logintest: logintest.o $(LIBCOMPAT) libssh.a loginrec.o $(LD) -o $@ logintest.o $(LDFLAGS) loginrec.o -lopenbsd-compat -lssh $(LIBS) -@@ -408,6 +412,7 @@ install-files: +@@ -415,6 +419,7 @@ install-files: $(INSTALL) -m 0755 $(STRIP_OPT) sftp$(EXEEXT) $(DESTDIR)$(bindir)/sftp$(EXEEXT) $(INSTALL) -m 0755 $(STRIP_OPT) sftp-server$(EXEEXT) $(DESTDIR)$(SFTP_SERVER)$(EXEEXT) $(INSTALL) -m 0755 $(STRIP_OPT) cavstest-ctr$(EXEEXT) $(DESTDIR)$(libexecdir)/cavstest-ctr$(EXEEXT) @@ -41,10 +41,10 @@ $(INSTALL) -m 644 ssh.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1 $(INSTALL) -m 644 scp.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/scp.1 $(INSTALL) -m 644 ssh-add.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-add.1 -Index: openssh-8.4p1/cavstest-kdf.c +Index: openssh-8.8p1/cavstest-kdf.c =================================================================== --- /dev/null -+++ openssh-8.4p1/cavstest-kdf.c ++++ openssh-8.8p1/cavstest-kdf.c @@ -0,0 +1,402 @@ +/* + * Copyright (C) 2015, Stephan Mueller <smuel...@chronox.de> @@ -249,8 +249,8 @@ + goto out; + } + -+ kex.session_id = test->session_id; -+ kex.session_id_len = test->session_id_len; ++ kex.session_id = sshbuf_new(); ++ sshbuf_put(kex.session_id, test->session_id, test->session_id_len); + + /* setup kex */ + ++++++ openssh-7.7p1-disable_openssl_abi_check.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.754175377 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.758175384 +0200 @@ -4,11 +4,11 @@ reliable indicator of ABI changes and doesn't make much sense in a distribution package -diff --git a/configure.ac b/configure.ac -index 42ffd95..20a1884 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -4878,6 +4878,19 @@ AC_ARG_WITH([bsd-auth], +Index: openssh-8.8p1/configure.ac +=================================================================== +--- openssh-8.8p1.orig/configure.ac ++++ openssh-8.8p1/configure.ac +@@ -5236,6 +5236,19 @@ AC_ARG_WITH([bsd-auth], ] ) @@ -28,11 +28,11 @@ # Where to place sshd.pid piddir=/var/run # make sure the directory exists -diff --git a/entropy.c b/entropy.c -index f8b9f42..4957b23 100644 ---- a/entropy.c -+++ b/entropy.c -@@ -223,11 +223,13 @@ seed_rng(void) +Index: openssh-8.8p1/entropy.c +=================================================================== +--- openssh-8.8p1.orig/entropy.c ++++ openssh-8.8p1/entropy.c +@@ -100,11 +100,13 @@ seed_rng(void) /* Initialise libcrypto */ ssh_libcrypto_init(); ++++++ openssh-7.7p1-eal3.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.766175396 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.766175396 +0200 @@ -2,15 +2,11 @@ # Parent 8fd4e445c3a5c823568661a4f71b064cbcb217a9 fix paths and references in sshd man pages -diff --git a/openssh-7.7p1/Makefile.in b/openssh-7.7p1/Makefile.in ---- openssh-7.7p1/Makefile.in -+++ openssh-7.7p1/Makefile.in -@@ -127,17 +127,18 @@ MANTYPE = @MANTYPE@ - CONFIGFILES=sshd_config.out ssh_config.out moduli.out - CONFIGFILES_IN=sshd_config ssh_config moduli - - PATHSUBS = \ - -e 's|/etc/ssh/ssh_config|$(sysconfdir)/ssh_config|g' \ +Index: openssh-8.8p1/Makefile.in +=================================================================== +--- openssh-8.8p1.orig/Makefile.in ++++ openssh-8.8p1/Makefile.in +@@ -165,7 +165,8 @@ PATHSUBS = \ -e 's|/etc/ssh/ssh_known_hosts|$(sysconfdir)/ssh_known_hosts|g' \ -e 's|/etc/ssh/sshd_config|$(sysconfdir)/sshd_config|g' \ -e 's|/usr/libexec|$(libexecdir)|g' \ @@ -20,8 +16,3 @@ -e 's|/etc/ssh/ssh_host_key|$(sysconfdir)/ssh_host_key|g' \ -e 's|/etc/ssh/ssh_host_ecdsa_key|$(sysconfdir)/ssh_host_ecdsa_key|g' \ -e 's|/etc/ssh/ssh_host_dsa_key|$(sysconfdir)/ssh_host_dsa_key|g' \ - -e 's|/etc/ssh/ssh_host_rsa_key|$(sysconfdir)/ssh_host_rsa_key|g' \ - -e 's|/etc/ssh/ssh_host_ed25519_key|$(sysconfdir)/ssh_host_ed25519_key|g' \ - -e 's|/var/run/sshd.pid|$(piddir)/sshd.pid|g' \ - -e 's|/etc/moduli|$(sysconfdir)/moduli|g' \ - -e 's|/etc/ssh/moduli|$(sysconfdir)/moduli|g' \ ++++++ openssh-7.7p1-enable_PAM_by_default.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.774175409 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.774175409 +0200 @@ -4,25 +4,16 @@ # bnc#46749 # --used to be called '-pam-fix2' -diff --git a/openssh-7.7p1/sshd_config b/openssh-7.7p1/sshd_config ---- openssh-7.7p1/sshd_config -+++ openssh-7.7p1/sshd_config -@@ -74,17 +74,17 @@ AuthorizedKeysFile .ssh/authorized_keys - # and session processing. If this is enabled, PAM authentication will - # be allowed through the ChallengeResponseAuthentication and - # PasswordAuthentication. Depending on your PAM configuration, - # PAM authentication via ChallengeResponseAuthentication may bypass - # the setting of "PermitRootLogin without-password". +Index: openssh-8.8p1/sshd_config +=================================================================== +--- openssh-8.8p1.orig/sshd_config ++++ openssh-8.8p1/sshd_config +@@ -79,7 +79,7 @@ AuthorizedKeysFile .ssh/authorized_keys # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication - # and ChallengeResponseAuthentication to 'no'. + # and KbdInteractiveAuthentication to 'no'. -#UsePAM no +UsePAM yes #AllowAgentForwarding yes #AllowTcpForwarding yes - #GatewayPorts no - X11Forwarding yes - #X11DisplayOffset 10 - #X11UseLocalhost yes - #PermitTTY yes ++++++ openssh-7.7p1-fips.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.782175422 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.786175428 +0200 @@ -3,11 +3,11 @@ FIPS 140-2 compliance. Perform selftests on start and use only FIPS approved algorithms. -Index: openssh-8.4p1/Makefile.in +Index: openssh-8.8p1/Makefile.in =================================================================== ---- openssh-8.4p1.orig/Makefile.in -+++ openssh-8.4p1/Makefile.in -@@ -112,6 +112,8 @@ LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ +--- openssh-8.8p1.orig/Makefile.in ++++ openssh-8.8p1/Makefile.in +@@ -113,6 +113,8 @@ LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ SKOBJS= ssh-sk-client.o @@ -16,10 +16,10 @@ SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \ sshconnect.o sshconnect2.o mux.o $(SKOBJS) -Index: openssh-8.4p1/cipher-ctr.c +Index: openssh-8.8p1/cipher-ctr.c =================================================================== ---- openssh-8.4p1.orig/cipher-ctr.c -+++ openssh-8.4p1/cipher-ctr.c +--- openssh-8.8p1.orig/cipher-ctr.c ++++ openssh-8.8p1/cipher-ctr.c @@ -27,6 +27,8 @@ #include "xmalloc.h" #include "log.h" @@ -38,10 +38,10 @@ #endif return (&aes_ctr); } -Index: openssh-8.4p1/cipher.c +Index: openssh-8.8p1/cipher.c =================================================================== ---- openssh-8.4p1.orig/cipher.c -+++ openssh-8.4p1/cipher.c +--- openssh-8.8p1.orig/cipher.c ++++ openssh-8.8p1/cipher.c @@ -51,6 +51,9 @@ #include "openbsd-compat/openssl-compat.h" @@ -61,7 +61,7 @@ #ifdef WITH_OPENSSL #ifndef OPENSSL_NO_DES { "3des-cbc", 8, 24, 0, 0, CFLAG_CBC, EVP_des_ede3_cbc }, -@@ -114,8 +117,52 @@ static const struct sshcipher ciphers[] +@@ -112,8 +115,52 @@ static const struct sshcipher ciphers[] { NULL, 0, 0, 0, 0, 0, NULL } }; @@ -114,7 +114,7 @@ /* Returns a comma-separated list of supported ciphers. */ char * cipher_alg_list(char sep, int auth_only) -@@ -124,7 +171,7 @@ cipher_alg_list(char sep, int auth_only) +@@ -122,7 +169,7 @@ cipher_alg_list(char sep, int auth_only) size_t nlen, rlen = 0; const struct sshcipher *c; @@ -123,7 +123,7 @@ if ((c->flags & CFLAG_INTERNAL) != 0) continue; if (auth_only && c->auth_len == 0) -@@ -207,7 +254,7 @@ const struct sshcipher * +@@ -205,7 +252,7 @@ const struct sshcipher * cipher_by_name(const char *name) { const struct sshcipher *c; @@ -132,10 +132,10 @@ if (strcmp(c->name, name) == 0) return c; return NULL; -Index: openssh-8.4p1/fips.c +Index: openssh-8.8p1/fips.c =================================================================== --- /dev/null -+++ openssh-8.4p1/fips.c ++++ openssh-8.8p1/fips.c @@ -0,0 +1,212 @@ +/* + * Copyright (c) 2012 Petr Cerny. All rights reserved. @@ -349,10 +349,10 @@ + return dgst; +} + -Index: openssh-8.4p1/fips.h +Index: openssh-8.8p1/fips.h =================================================================== --- /dev/null -+++ openssh-8.4p1/fips.h ++++ openssh-8.8p1/fips.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2012 Petr Cerny. All rights reserved. @@ -398,10 +398,10 @@ + +#endif + -Index: openssh-8.4p1/hmac.c +Index: openssh-8.8p1/hmac.c =================================================================== ---- openssh-8.4p1.orig/hmac.c -+++ openssh-8.4p1/hmac.c +--- openssh-8.8p1.orig/hmac.c ++++ openssh-8.8p1/hmac.c @@ -145,7 +145,7 @@ hmac_test(void *key, size_t klen, void * size_t i; u_char digest[16]; @@ -411,10 +411,10 @@ printf("ssh_hmac_start failed"); if (ssh_hmac_init(ctx, key, klen) < 0 || ssh_hmac_update(ctx, m, mlen) < 0 || -Index: openssh-8.4p1/kex.c +Index: openssh-8.8p1/kex.c =================================================================== ---- openssh-8.4p1.orig/kex.c -+++ openssh-8.4p1/kex.c +--- openssh-8.8p1.orig/kex.c ++++ openssh-8.8p1/kex.c @@ -62,6 +62,8 @@ #include "sshbuf.h" #include "digest.h" @@ -433,7 +433,7 @@ #ifdef WITH_OPENSSL { KEX_DH1, KEX_DH_GRP1_SHA1, 0, SSH_DIGEST_SHA1 }, { KEX_DH14_SHA1, KEX_DH_GRP14_SHA1, 0, SSH_DIGEST_SHA1 }, -@@ -116,6 +118,47 @@ static const struct kexalg kexalgs[] = { +@@ -118,6 +120,47 @@ static const struct kexalg kexalgs[] = { { NULL, 0, -1, -1}, }; @@ -481,7 +481,7 @@ char * kex_alg_list(char sep) { -@@ -123,7 +166,7 @@ kex_alg_list(char sep) +@@ -125,7 +168,7 @@ kex_alg_list(char sep) size_t nlen, rlen = 0; const struct kexalg *k; @@ -490,7 +490,7 @@ if (ret != NULL) ret[rlen++] = sep; nlen = strlen(k->name); -@@ -143,7 +186,7 @@ kex_alg_by_name(const char *name) +@@ -145,7 +188,7 @@ kex_alg_by_name(const char *name) { const struct kexalg *k; @@ -499,7 +499,7 @@ if (strcmp(k->name, name) == 0) return k; } -@@ -163,7 +206,10 @@ kex_names_valid(const char *names) +@@ -165,7 +208,10 @@ kex_names_valid(const char *names) for ((p = strsep(&cp, ",")); p && *p != '\0'; (p = strsep(&cp, ","))) { if (kex_alg_by_name(p) == NULL) { @@ -510,10 +510,10 @@ free(s); return 0; } -Index: openssh-8.4p1/mac.c +Index: openssh-8.8p1/mac.c =================================================================== ---- openssh-8.4p1.orig/mac.c -+++ openssh-8.4p1/mac.c +--- openssh-8.8p1.orig/mac.c ++++ openssh-8.8p1/mac.c @@ -41,6 +41,9 @@ #include "openbsd-compat/openssl-compat.h" @@ -593,10 +593,10 @@ if (strcmp(name, m->name) != 0) continue; if (mac != NULL) -Index: openssh-8.4p1/readconf.c +Index: openssh-8.8p1/readconf.c =================================================================== ---- openssh-8.4p1.orig/readconf.c -+++ openssh-8.4p1/readconf.c +--- openssh-8.8p1.orig/readconf.c ++++ openssh-8.8p1/readconf.c @@ -68,6 +68,8 @@ #include "myproposal.h" #include "digest.h" @@ -606,8 +606,8 @@ /* Format of the configuration file: # Configuration data is parsed as follows: -@@ -1949,6 +1951,23 @@ option_clear_or_none(const char *o) - return o == NULL || strcasecmp(o, "none") == 0; +@@ -2307,6 +2309,23 @@ config_has_permitted_cnames(Options *opt + return options->num_permitted_cnames > 0; } +/* remove algorithms not approved for use in FIPS mode, when running in FIPS @@ -630,7 +630,7 @@ /* * Initializes options to special values that indicate that they have not yet * been set. Read_config_file will only set options with this value. Options -@@ -2240,6 +2259,9 @@ fill_default_options(Options * options) +@@ -2618,6 +2637,9 @@ fill_default_options(Options * options) options->canonicalize_hostname = SSH_CANONICALISE_NO; if (options->fingerprint_hash == -1) options->fingerprint_hash = SSH_FP_HASH_DEFAULT; @@ -640,28 +640,20 @@ #ifdef ENABLE_SK_INTERNAL if (options->sk_provider == NULL) options->sk_provider = xstrdup("internal"); -@@ -2273,6 +2295,7 @@ fill_default_options(Options * options) - ASSEMBLE(pubkey_key_types, def_key, all_key); +@@ -2654,6 +2676,8 @@ fill_default_options(Options * options) ASSEMBLE(ca_sign_algorithms, def_sig, all_sig); #undef ASSEMBLE -+ - free(all_cipher); - free(all_mac); - free(all_kex); -@@ -2284,6 +2307,8 @@ fill_default_options(Options * options) - kex_default_pk_alg_filtered = def_key; /* save for later use */ - free(def_sig); + filter_fips_algorithms(options); + #define CLEAR_ON_NONE(v) \ do { \ if (option_clear_or_none(v)) { \ -Index: openssh-8.4p1/readconf.h +Index: openssh-8.8p1/readconf.h =================================================================== ---- openssh-8.4p1.orig/readconf.h -+++ openssh-8.4p1/readconf.h -@@ -200,6 +200,7 @@ typedef struct { +--- openssh-8.8p1.orig/readconf.h ++++ openssh-8.8p1/readconf.h +@@ -212,6 +212,7 @@ typedef struct { #define SSH_STRICT_HOSTKEY_YES 2 #define SSH_STRICT_HOSTKEY_ASK 3 @@ -669,10 +661,10 @@ const char *kex_default_pk_alg(void); char *ssh_connection_hash(const char *thishost, const char *host, const char *portstr, const char *user); -Index: openssh-8.4p1/servconf.c +Index: openssh-8.8p1/servconf.c =================================================================== ---- openssh-8.4p1.orig/servconf.c -+++ openssh-8.4p1/servconf.c +--- openssh-8.8p1.orig/servconf.c ++++ openssh-8.8p1/servconf.c @@ -70,6 +70,7 @@ #include "auth.h" #include "myproposal.h" @@ -681,7 +673,7 @@ static void add_listen_addr(ServerOptions *, const char *, const char *, int); -@@ -201,6 +202,23 @@ option_clear_or_none(const char *o) +@@ -205,6 +206,23 @@ option_clear_or_none(const char *o) return o == NULL || strcasecmp(o, "none") == 0; } @@ -705,7 +697,7 @@ static void assemble_algorithms(ServerOptions *o) { -@@ -242,6 +260,8 @@ assemble_algorithms(ServerOptions *o) +@@ -246,6 +264,8 @@ assemble_algorithms(ServerOptions *o) free(def_kex); free(def_key); free(def_sig); @@ -713,8 +705,8 @@ + filter_fips_algorithms_s(o); } - static void -@@ -454,6 +474,8 @@ fill_default_server_options(ServerOption + void +@@ -438,6 +458,8 @@ fill_default_server_options(ServerOption options->fwd_opts.streamlocal_bind_unlink = 0; if (options->fingerprint_hash == -1) options->fingerprint_hash = SSH_FP_HASH_DEFAULT; @@ -723,20 +715,20 @@ if (options->disable_forwarding == -1) options->disable_forwarding = 0; if (options->expose_userauth_info == -1) -Index: openssh-8.4p1/ssh-keygen.c +Index: openssh-8.8p1/ssh-keygen.c =================================================================== ---- openssh-8.4p1.orig/ssh-keygen.c -+++ openssh-8.4p1/ssh-keygen.c -@@ -66,6 +66,8 @@ - #include "ssh-sk.h" +--- openssh-8.8p1.orig/ssh-keygen.c ++++ openssh-8.8p1/ssh-keygen.c +@@ -67,6 +67,8 @@ #include "sk-api.h" /* XXX for SSH_SK_USER_PRESENCE_REQD; remove */ + #include "cipher.h" +#include "fips.h" + #ifdef WITH_OPENSSL # define DEFAULT_KEY_TYPE_NAME "rsa" #else -@@ -1036,11 +1038,13 @@ do_fingerprint(struct passwd *pw) +@@ -1037,11 +1039,13 @@ do_fingerprint(struct passwd *pw) static void do_gen_all_hostkeys(struct passwd *pw) { @@ -752,7 +744,7 @@ #ifdef WITH_OPENSSL { "rsa", "RSA" ,_PATH_HOST_RSA_KEY_FILE }, { "dsa", "DSA", _PATH_HOST_DSA_KEY_FILE }, -@@ -1055,6 +1059,17 @@ do_gen_all_hostkeys(struct passwd *pw) +@@ -1056,6 +1060,17 @@ do_gen_all_hostkeys(struct passwd *pw) { NULL, NULL, NULL } }; @@ -770,7 +762,7 @@ u_int32_t bits = 0; int first = 0; struct stat st; -@@ -1062,6 +1077,12 @@ do_gen_all_hostkeys(struct passwd *pw) +@@ -1063,6 +1078,12 @@ do_gen_all_hostkeys(struct passwd *pw) char comment[1024], *prv_tmp, *pub_tmp, *prv_file, *pub_file; int i, type, fd, r; @@ -783,7 +775,7 @@ for (i = 0; key_types[i].key_type; i++) { public = private = NULL; prv_tmp = pub_tmp = prv_file = pub_file = NULL; -@@ -3586,6 +3607,15 @@ main(int argc, char **argv) +@@ -3620,6 +3641,15 @@ main(int argc, char **argv) key_type_name = DEFAULT_KEY_TYPE_NAME; type = sshkey_type_from_name(key_type_name); @@ -799,37 +791,37 @@ type_bits_valid(type, key_type_name, &bits); if (!quiet) -Index: openssh-8.4p1/ssh_config.5 +Index: openssh-8.8p1/ssh_config.5 =================================================================== ---- openssh-8.4p1.orig/ssh_config.5 -+++ openssh-8.4p1/ssh_config.5 -@@ -682,6 +682,8 @@ Valid options are: - and - .Cm sha256 +--- openssh-8.8p1.orig/ssh_config.5 ++++ openssh-8.8p1/ssh_config.5 +@@ -736,6 +736,8 @@ The argument to this keyword must be + option) or + .Cm no (the default). +.Pp +In the FIPS mode the minimum of SHA-1 is enforced (which means sha256). .It Cm ForwardAgent Specifies whether the connection to the authentication agent (if any) will be forwarded to the remote machine. -Index: openssh-8.4p1/sshd.c +Index: openssh-8.8p1/sshd.c =================================================================== ---- openssh-8.4p1.orig/sshd.c -+++ openssh-8.4p1/sshd.c -@@ -124,6 +124,8 @@ - #include "ssherr.h" - #include "sk-api.h" +--- openssh-8.8p1.orig/sshd.c ++++ openssh-8.8p1/sshd.c +@@ -126,6 +126,8 @@ + #include "srclimit.h" + #include "dh.h" +#include "fips.h" + /* Re-exec fds */ #define REEXEC_DEVCRYPTO_RESERVED_FD (STDERR_FILENO + 1) #define REEXEC_STARTUP_PIPE_FD (STDERR_FILENO + 2) -Index: openssh-8.4p1/sshd_config.5 +Index: openssh-8.8p1/sshd_config.5 =================================================================== ---- openssh-8.4p1.orig/sshd_config.5 -+++ openssh-8.4p1/sshd_config.5 -@@ -594,6 +594,8 @@ and +--- openssh-8.8p1.orig/sshd_config.5 ++++ openssh-8.8p1/sshd_config.5 +@@ -600,6 +600,8 @@ and .Cm sha256 . The default is .Cm sha256 . ++++++ openssh-7.7p1-fips_checks.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.794175441 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.794175441 +0200 @@ -14,10 +14,10 @@ # file is not found (or the hash matches), proceed in non-FIPS mode and abort # otherwise. -Index: openssh-8.4p1/fips-check.c +Index: openssh-8.8p1/fips-check.c =================================================================== --- /dev/null -+++ openssh-8.4p1/fips-check.c ++++ openssh-8.8p1/fips-check.c @@ -0,0 +1,34 @@ +#include "includes.h" +#include <fcntl.h> @@ -53,10 +53,10 @@ + fips_ssh_init(); + return 0; +} -Index: openssh-8.4p1/fips.c +Index: openssh-8.8p1/fips.c =================================================================== ---- openssh-8.4p1.orig/fips.c -+++ openssh-8.4p1/fips.c +--- openssh-8.8p1.orig/fips.c ++++ openssh-8.8p1/fips.c @@ -35,30 +35,293 @@ #include "log.h" #include "xmalloc.h" @@ -362,10 +362,10 @@ int fips_mode(void) { -Index: openssh-8.4p1/fips.h +Index: openssh-8.8p1/fips.h =================================================================== ---- openssh-8.4p1.orig/fips.h -+++ openssh-8.4p1/fips.h +--- openssh-8.8p1.orig/fips.h ++++ openssh-8.8p1/fips.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012 Petr Cerny. All rights reserved. @@ -407,20 +407,20 @@ #endif - -Index: openssh-8.4p1/sftp-server.c +Index: openssh-8.8p1/sftp-server.c =================================================================== ---- openssh-8.4p1.orig/sftp-server.c -+++ openssh-8.4p1/sftp-server.c -@@ -53,6 +53,8 @@ - - char *sftp_realpath(const char *, char *); /* sftp-realpath.c */ +--- openssh-8.8p1.orig/sftp-server.c ++++ openssh-8.8p1/sftp-server.c +@@ -57,6 +57,8 @@ char *sftp_realpath(const char *, char * + /* Maximum data read that we are willing to accept */ + #define SFTP_MAX_READ_LENGTH (SFTP_MAX_MSG_LENGTH - 1024) +#include "fips.h" + /* Our verbosity */ static LogLevel log_level = SYSLOG_LEVEL_ERROR; -@@ -1577,6 +1579,9 @@ sftp_server_main(int argc, char **argv, +@@ -1717,6 +1719,9 @@ sftp_server_main(int argc, char **argv, extern char *optarg; extern char *__progname; @@ -430,10 +430,10 @@ __progname = ssh_get_progname(argv[0]); log_init(__progname, log_level, log_facility, log_stderr); -Index: openssh-8.4p1/ssh.c +Index: openssh-8.8p1/ssh.c =================================================================== ---- openssh-8.4p1.orig/ssh.c -+++ openssh-8.4p1/ssh.c +--- openssh-8.8p1.orig/ssh.c ++++ openssh-8.8p1/ssh.c @@ -113,6 +113,8 @@ #include "ssh-pkcs11.h" #endif @@ -443,9 +443,9 @@ extern char *__progname; /* Saves a copy of argv for setproctitle emulation */ -@@ -658,6 +660,10 @@ main(int ac, char **av) - size_t n, len; +@@ -632,6 +634,10 @@ main(int ac, char **av) u_int j; + struct ssh_conn_info *cinfo = NULL; + /* initialize fips - can go before ssh_malloc_init(), since that is a + * OpenBSD-only thing (as of OpenSSH 7.6p1) */ @@ -454,11 +454,11 @@ /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); -Index: openssh-8.4p1/sshd.c +Index: openssh-8.8p1/sshd.c =================================================================== ---- openssh-8.4p1.orig/sshd.c -+++ openssh-8.4p1/sshd.c -@@ -1545,6 +1545,10 @@ main(int ac, char **av) +--- openssh-8.8p1.orig/sshd.c ++++ openssh-8.8p1/sshd.c +@@ -1547,6 +1547,10 @@ main(int ac, char **av) Authctxt *authctxt; struct connection_info *connection_info = NULL; ++++++ openssh-7.7p1-host_ident.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.802175453 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.802175453 +0200 @@ -2,15 +2,11 @@ # Parent 0f731d0b541b8a919d24ac91098f560a49712822 Suggest command line for removal of offending keys from known_hosts file -diff --git a/openssh-7.7p1/sshconnect.c b/openssh-7.7p1/sshconnect.c ---- openssh-7.7p1/sshconnect.c -+++ openssh-7.7p1/sshconnect.c -@@ -1147,16 +1147,21 @@ check_host_key(char *hostname, struct so - } - /* The host key has changed. */ - warn_changed_key(host_key); - error("Add correct host key in %.100s to get rid of this message.", - user_hostfiles[0]); +Index: openssh-8.8p1/sshconnect.c +=================================================================== +--- openssh-8.8p1.orig/sshconnect.c ++++ openssh-8.8p1/sshconnect.c +@@ -1270,6 +1270,11 @@ check_host_key(char *hostname, const str error("Offending %s key in %s:%lu", sshkey_type(host_found->key), host_found->file, host_found->line); @@ -22,8 +18,3 @@ /* * If strict host key checking is in use, the user will have - * to edit the key manually and we can only abort. - */ - if (options.strict_host_key_checking != - SSH_STRICT_HOSTKEY_OFF) { - error("%s host key for %.200s has changed and you have " ++++++ openssh-7.7p1-hostname_changes_when_forwarding_X.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.810175466 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.810175466 +0200 @@ -3,11 +3,11 @@ # -- uset do be called '-xauthlocalhostname' handle hostname changes when forwarding X -Index: openssh-8.4p1/session.c +Index: openssh-8.8p1/session.c =================================================================== ---- openssh-8.4p1.orig/session.c -+++ openssh-8.4p1/session.c -@@ -985,7 +985,7 @@ copy_environment(char **source, char *** +--- openssh-8.8p1.orig/session.c ++++ openssh-8.8p1/session.c +@@ -981,7 +981,7 @@ copy_environment(char **source, char *** #endif static char ** @@ -16,7 +16,7 @@ { char buf[256]; size_t n; -@@ -1195,6 +1195,8 @@ do_setup_env(struct ssh *ssh, Session *s +@@ -1191,6 +1191,8 @@ do_setup_env(struct ssh *ssh, Session *s for (i = 0; env[i]; i++) fprintf(stderr, " %.200s\n", env[i]); } @@ -25,7 +25,7 @@ return env; } -@@ -1203,7 +1205,7 @@ do_setup_env(struct ssh *ssh, Session *s +@@ -1199,7 +1201,7 @@ do_setup_env(struct ssh *ssh, Session *s * first in this order). */ static void @@ -34,8 +34,8 @@ { FILE *f = NULL; char *cmd = NULL, *user_rc = NULL; -@@ -1260,12 +1262,20 @@ do_rc_files(struct ssh *ssh, Session *s, - fatal("%s: xasprintf: %s", __func__, strerror(errno)); +@@ -1256,12 +1258,20 @@ do_rc_files(struct ssh *ssh, Session *s, + fatal_f("xasprintf: %s", strerror(errno)); f = popen(cmd, "w"); if (f) { + char hostname[MAXHOSTNAMELEN]; @@ -55,7 +55,7 @@ } else { fprintf(stderr, "Could not run %s\n", cmd); -@@ -1526,6 +1536,7 @@ do_child(struct ssh *ssh, Session *s, co +@@ -1518,6 +1528,7 @@ do_child(struct ssh *ssh, Session *s, co char **env, *argv[ARGV_MAX], remote_id[512]; const char *shell, *shell0; struct passwd *pw = s->pw; @@ -63,7 +63,7 @@ int r = 0; sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id)); -@@ -1582,7 +1593,7 @@ do_child(struct ssh *ssh, Session *s, co +@@ -1574,7 +1585,7 @@ do_child(struct ssh *ssh, Session *s, co * Make sure $SHELL points to the shell from the password file, * even if shell is overridden from login.conf */ @@ -72,7 +72,7 @@ #ifdef HAVE_LOGIN_CAP shell = login_getcapstr(lc, "shell", (char *)shell, (char *)shell); -@@ -1646,7 +1657,7 @@ do_child(struct ssh *ssh, Session *s, co +@@ -1638,7 +1649,7 @@ do_child(struct ssh *ssh, Session *s, co closefrom(STDERR_FILENO + 1); ++++++ openssh-7.7p1-ldap.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.822175486 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.822175486 +0200 @@ -10,11 +10,10 @@ # internal versions. ssh-keyconverter consequently fails to link as it lacks # the proper flags, and libopenbsd-compat doesn't contain the b64_* functions) -diff --git a/HOWTO.ldap-keys b/HOWTO.ldap-keys -new file mode 100644 -index 0000000..831d399 +Index: openssh-8.8p1/HOWTO.ldap-keys +=================================================================== --- /dev/null -+++ b/HOWTO.ldap-keys ++++ openssh-8.8p1/HOWTO.ldap-keys @@ -0,0 +1,108 @@ + +HOW TO START @@ -124,11 +123,11 @@ + - frederic peters. + - Finlay dobbie. + - Stefan Fisher. -diff --git a/Makefile.in b/Makefile.in -index 6010d1c..f54348b 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -25,6 +25,8 @@ SFTP_SERVER=$(libexecdir)/sftp-server +Index: openssh-8.8p1/Makefile.in +=================================================================== +--- openssh-8.8p1.orig/Makefile.in ++++ openssh-8.8p1/Makefile.in +@@ -26,6 +26,8 @@ SFTP_SERVER=$(libexecdir)/sftp-server SSH_KEYSIGN=$(libexecdir)/ssh-keysign SSH_PKCS11_HELPER=$(libexecdir)/ssh-pkcs11-helper SSH_SK_HELPER=$(libexecdir)/ssh-sk-helper @@ -137,7 +136,7 @@ CAVSTEST_CTR=$(libexecdir)/cavstest-ctr CAVSTEST_KDF=$(libexecdir)/cavstest-kdf PRIVSEP_PATH=@PRIVSEP_PATH@ -@@ -74,6 +76,9 @@ TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keys +@@ -73,6 +75,9 @@ TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-a TARGETS += cavstest-ctr$(EXEEXT) cavstest-kdf$(EXEEXT) @@ -147,9 +146,9 @@ XMSS_OBJS=\ ssh-xmss.o \ sshkey-xmss.o \ -@@ -158,8 +163,8 @@ SFTPSERVER_OBJS=sftp-common.o sftp-server.o sftp-server-main.o +@@ -160,8 +165,8 @@ SFTPSERVER_OBJS=sftp-common.o sftp-serve - SFTP_OBJS= sftp.o sftp-client.o sftp-common.o sftp-glob.o progressmeter.o + SFTP_OBJS= sftp.o progressmeter.o $(SFTP_CLIENT_OBJS) -MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-keysign.8.out ssh-pkcs11-helper.8.out ssh-sk-helper.8.out sshd_config.5.out ssh_config.5.out -MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-keysign.8 ssh-pkcs11-helper.8 ssh-sk-helper.8 sshd_config.5 ssh_config.5 @@ -158,7 +157,7 @@ MANTYPE = @MANTYPE@ CONFIGFILES=sshd_config.out ssh_config.out moduli.out -@@ -242,6 +247,9 @@ ssh-sk-helper$(EXEEXT): $(LIBCOMPAT) libssh.a $(SKHELPER_OBJS) +@@ -244,6 +249,9 @@ ssh-sk-helper$(EXEEXT): $(LIBCOMPAT) lib ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHKEYSCAN_OBJS) $(LD) -o $@ $(SSHKEYSCAN_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) @@ -166,9 +165,9 @@ + $(LD) -o $@ ldapconf.o ldapbody.o ldapmisc.o ldap-helper.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) + sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a $(SFTPSERVER_OBJS) - $(LD) -o $@ $(SFTPSERVER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) + $(LD) -o $@ $(SFTPSERVER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) -@@ -406,6 +414,10 @@ install-files: +@@ -416,6 +424,10 @@ install-files: $(INSTALL) -m 0755 $(STRIP_OPT) sshd$(EXEEXT) $(DESTDIR)$(sbindir)/sshd$(EXEEXT) $(INSTALL) -m 4711 $(STRIP_OPT) ssh-keysign$(EXEEXT) $(DESTDIR)$(SSH_KEYSIGN)$(EXEEXT) $(INSTALL) -m 0755 $(STRIP_OPT) ssh-pkcs11-helper$(EXEEXT) $(DESTDIR)$(SSH_PKCS11_HELPER)$(EXEEXT) @@ -179,7 +178,7 @@ $(INSTALL) -m 0755 $(STRIP_OPT) ssh-sk-helper$(EXEEXT) $(DESTDIR)$(SSH_SK_HELPER)$(EXEEXT) $(INSTALL) -m 0755 $(STRIP_OPT) sftp$(EXEEXT) $(DESTDIR)$(bindir)/sftp$(EXEEXT) $(INSTALL) -m 0755 $(STRIP_OPT) sftp-server$(EXEEXT) $(DESTDIR)$(SFTP_SERVER)$(EXEEXT) -@@ -425,6 +437,10 @@ install-files: +@@ -435,6 +447,10 @@ install-files: $(INSTALL) -m 644 sftp-server.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/sftp-server.8 $(INSTALL) -m 644 ssh-keysign.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-keysign.8 $(INSTALL) -m 644 ssh-pkcs11-helper.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-pkcs11-helper.8 @@ -190,7 +189,7 @@ $(INSTALL) -m 644 ssh-sk-helper.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-sk-helper.8 install-sysconf: -@@ -449,6 +465,13 @@ install-sysconf: +@@ -459,6 +475,13 @@ install-sysconf: else \ echo "$(DESTDIR)$(sysconfdir)/moduli already exists, install will not overwrite"; \ fi @@ -204,7 +203,7 @@ host-key: ssh-keygen$(EXEEXT) @if [ -z "$(DESTDIR)" ] ; then \ -@@ -487,6 +510,8 @@ uninstall: +@@ -497,6 +520,8 @@ uninstall: -rm -f $(DESTDIR)$(SSH_KEYSIGN)$(EXEEXT) -rm -f $(DESTDIR)$(SSH_PKCS11_HELPER)$(EXEEXT) -rm -f $(DESTDIR)$(SSH_SK_HELPER)$(EXEEXT) @@ -213,7 +212,7 @@ -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/scp.1 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-add.1 -@@ -499,6 +524,7 @@ uninstall: +@@ -509,6 +534,7 @@ uninstall: -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-keysign.8 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-pkcs11-helper.8 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-sk-helper.8 @@ -221,11 +220,11 @@ regress-prep: $(MKDIR_P) `pwd`/regress/unittests/test_helper -diff --git a/configure.ac b/configure.ac -index 4ddf539..1fd0b17 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1688,6 +1688,106 @@ AC_ARG_WITH([audit], +Index: openssh-8.8p1/configure.ac +=================================================================== +--- openssh-8.8p1.orig/configure.ac ++++ openssh-8.8p1/configure.ac +@@ -1758,6 +1758,106 @@ AC_ARG_WITH([audit], esac ] ) @@ -332,11 +331,10 @@ AC_ARG_WITH([pie], [ --with-pie Build Position Independent Executables if possible], [ if test "x$withval" = "xno"; then -diff --git a/ldap-helper.c b/ldap-helper.c -new file mode 100644 -index 0000000..0efff1f +Index: openssh-8.8p1/ldap-helper.c +=================================================================== --- /dev/null -+++ b/ldap-helper.c ++++ openssh-8.8p1/ldap-helper.c @@ -0,0 +1,155 @@ +/* $OpenBSD: ssh-pka-ldap.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ +/* @@ -493,11 +491,10 @@ +void *buffer_get_string(struct sshbuf *b, u_int *l) { return NULL; } +void buffer_put_string(struct sshbuf *b, const void *f, u_int l) {} + -diff --git a/ldap-helper.h b/ldap-helper.h -new file mode 100644 -index 0000000..14cb29a +Index: openssh-8.8p1/ldap-helper.h +=================================================================== --- /dev/null -+++ b/ldap-helper.h ++++ openssh-8.8p1/ldap-helper.h @@ -0,0 +1,32 @@ +/* $OpenBSD: ldap-helper.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ +/* @@ -531,11 +528,10 @@ +extern int config_warning_config_file; + +#endif /* LDAP_HELPER_H */ -diff --git a/ldap.conf b/ldap.conf -new file mode 100644 -index 0000000..42e38d3 +Index: openssh-8.8p1/ldap.conf +=================================================================== --- /dev/null -+++ b/ldap.conf ++++ openssh-8.8p1/ldap.conf @@ -0,0 +1,88 @@ +# $Id: openssh-5.5p1-ldap.patch,v 1.3 2010/07/07 13:48:36 jfch2222 Exp $ +# @@ -625,12 +621,11 @@ +#tls_cert +#tls_key + -diff --git a/ldapbody.c b/ldapbody.c -new file mode 100644 -index 0000000..032cc89 +Index: openssh-8.8p1/ldapbody.c +=================================================================== --- /dev/null -+++ b/ldapbody.c -@@ -0,0 +1,494 @@ ++++ openssh-8.8p1/ldapbody.c +@@ -0,0 +1,503 @@ +/* $OpenBSD: ldapbody.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ +/* + * Copyright (c) 2009 Jan F. Chadima. All rights reserved. @@ -663,8 +658,17 @@ +#include "ldapmisc.h" +#include "ldapbody.h" +#include <stdio.h> ++#include <stdlib.h> +#include <unistd.h> + ++#ifndef FALSE ++# define FALSE 0 ++#endif ++ ++#ifndef TRUE ++# define TRUE 1 ++#endif ++ +#define LDAPSEARCH_FORMAT "(&(objectclass=posixAccount)(objectclass=ldapPublicKey)(uid=%s)%s)" +#define PUBKEYATTR "sshPublicKey" +#define LDAP_LOGFILE "%s/ldap.%d" @@ -1125,11 +1129,10 @@ + return; +} + -diff --git a/ldapbody.h b/ldapbody.h -new file mode 100644 -index 0000000..665dca2 +Index: openssh-8.8p1/ldapbody.h +=================================================================== --- /dev/null -+++ b/ldapbody.h ++++ openssh-8.8p1/ldapbody.h @@ -0,0 +1,37 @@ +/* $OpenBSD: ldapbody.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ +/* @@ -1168,11 +1171,10 @@ + +#endif /* LDAPBODY_H */ + -diff --git a/ldapconf.c b/ldapconf.c -new file mode 100644 -index 0000000..2e22438 +Index: openssh-8.8p1/ldapconf.c +=================================================================== --- /dev/null -+++ b/ldapconf.c ++++ openssh-8.8p1/ldapconf.c @@ -0,0 +1,711 @@ +/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ +/* @@ -1885,11 +1887,10 @@ + dump_cfg_string(lSSH_Filter, options.ssh_filter); +} + -diff --git a/ldapconf.h b/ldapconf.h -new file mode 100644 -index 0000000..c2aa704 +Index: openssh-8.8p1/ldapconf.h +=================================================================== --- /dev/null -+++ b/ldapconf.h ++++ openssh-8.8p1/ldapconf.h @@ -0,0 +1,71 @@ +/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ +/* @@ -1962,11 +1963,10 @@ +void dump_config(void); + +#endif /* LDAPCONF_H */ -diff --git a/ldapincludes.h b/ldapincludes.h -new file mode 100644 -index 0000000..8539bdc +Index: openssh-8.8p1/ldapincludes.h +=================================================================== --- /dev/null -+++ b/ldapincludes.h ++++ openssh-8.8p1/ldapincludes.h @@ -0,0 +1,41 @@ +/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ +/* @@ -2009,11 +2009,10 @@ +#endif + +#endif /* LDAPINCLUDES_H */ -diff --git a/ldapmisc.c b/ldapmisc.c -new file mode 100644 -index 0000000..de23c0c +Index: openssh-8.8p1/ldapmisc.c +=================================================================== --- /dev/null -+++ b/ldapmisc.c ++++ openssh-8.8p1/ldapmisc.c @@ -0,0 +1,79 @@ + +#include "ldapincludes.h" @@ -2094,11 +2093,10 @@ +} +#endif + -diff --git a/ldapmisc.h b/ldapmisc.h -new file mode 100644 -index 0000000..4c271df +Index: openssh-8.8p1/ldapmisc.h +=================================================================== --- /dev/null -+++ b/ldapmisc.h ++++ openssh-8.8p1/ldapmisc.h @@ -0,0 +1,35 @@ +/* $OpenBSD: ldapbody.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ +/* @@ -2135,10 +2133,10 @@ + +#endif /* LDAPMISC_H */ + -diff --git a/openbsd-compat/base64.c b/openbsd-compat/base64.c -index 9e74667..14824be 100644 ---- a/openbsd-compat/base64.c -+++ b/openbsd-compat/base64.c +Index: openssh-8.8p1/openbsd-compat/base64.c +=================================================================== +--- openssh-8.8p1.orig/openbsd-compat/base64.c ++++ openssh-8.8p1/openbsd-compat/base64.c @@ -46,7 +46,7 @@ #include "includes.h" @@ -2157,7 +2155,7 @@ int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize) { -@@ -185,7 +185,7 @@ b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize) +@@ -185,7 +185,7 @@ b64_ntop(u_char const *src, size_t srcle } #endif /* !defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP) */ @@ -2166,10 +2164,10 @@ /* skips all whitespace anywhere. converts characters, four at a time, starting at (or after) -diff --git a/openbsd-compat/base64.h b/openbsd-compat/base64.h -index bd77293..e27df9a 100644 ---- a/openbsd-compat/base64.h -+++ b/openbsd-compat/base64.h +Index: openssh-8.8p1/openbsd-compat/base64.h +=================================================================== +--- openssh-8.8p1.orig/openbsd-compat/base64.h ++++ openssh-8.8p1/openbsd-compat/base64.h @@ -45,16 +45,16 @@ #include "includes.h" @@ -2191,11 +2189,10 @@ int b64_pton(char const *src, u_char *target, size_t targsize); # endif /* !HAVE_B64_PTON */ # define __b64_pton(a,b,c) b64_pton(a,b,c) -diff --git a/openssh-lpk-openldap.schema b/openssh-lpk-openldap.schema -new file mode 100644 -index 0000000..c84f90f +Index: openssh-8.8p1/openssh-lpk-openldap.schema +=================================================================== --- /dev/null -+++ b/openssh-lpk-openldap.schema ++++ openssh-8.8p1/openssh-lpk-openldap.schema @@ -0,0 +1,21 @@ +# +# LDAP Public Key Patch schema for use with openssh-ldappubkey @@ -2218,11 +2215,10 @@ + DESC 'MANDATORY: OpenSSH LPK objectclass' + MUST ( sshPublicKey $ uid ) + ) -diff --git a/openssh-lpk-sun.schema b/openssh-lpk-sun.schema -new file mode 100644 -index 0000000..3136673 +Index: openssh-8.8p1/openssh-lpk-sun.schema +=================================================================== --- /dev/null -+++ b/openssh-lpk-sun.schema ++++ openssh-8.8p1/openssh-lpk-sun.schema @@ -0,0 +1,23 @@ +# +# LDAP Public Key Patch schema for use with openssh-ldappubkey @@ -2247,11 +2243,10 @@ + DESC 'MANDATORY: OpenSSH LPK objectclass' + MUST ( sshPublicKey $ uid ) + ) -diff --git a/ssh-ldap-helper.8 b/ssh-ldap-helper.8 -new file mode 100644 -index 0000000..f8440e4 +Index: openssh-8.8p1/ssh-ldap-helper.8 +=================================================================== --- /dev/null -+++ b/ssh-ldap-helper.8 ++++ openssh-8.8p1/ssh-ldap-helper.8 @@ -0,0 +1,79 @@ +.\" $OpenBSD: ssh-ldap-helper.8,v 1.1 2010/02/10 23:20:38 markus Exp $ +.\" @@ -2332,21 +2327,19 @@ +OpenSSH 5.5 + PKA-LDAP . +.Sh AUTHORS +.An Jan F. Chadima Aq jchad...@redhat.com -diff --git a/ssh-ldap-wrapper b/ssh-ldap-wrapper -new file mode 100644 -index 0000000..9fdfc37 +Index: openssh-8.8p1/ssh-ldap-wrapper +=================================================================== --- /dev/null -+++ b/ssh-ldap-wrapper ++++ openssh-8.8p1/ssh-ldap-wrapper @@ -0,0 +1,4 @@ +#!/bin/sh + +exec @LIBEXECDIR@/ssh-ldap-helper -s "$1" + -diff --git a/ssh-ldap.conf.5 b/ssh-ldap.conf.5 -new file mode 100644 -index 0000000..15eb03d +Index: openssh-8.8p1/ssh-ldap.conf.5 +=================================================================== --- /dev/null -+++ b/ssh-ldap.conf.5 ++++ openssh-8.8p1/ssh-ldap.conf.5 @@ -0,0 +1,376 @@ +.\" $OpenBSD: ssh-ldap.conf.5,v 1.1 2010/02/10 23:20:38 markus Exp $ +.\" ++++++ openssh-7.7p1-no_fork-no_pid_file.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.830175498 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.830175498 +0200 @@ -2,11 +2,11 @@ # Parent bad0c8b3b8d72abb6960ed85b57ee42352371738 Do not write a PID file when not daemonizing (e.g. when running from systemd) -diff --git a/sshd.c b/sshd.c -index f3ccc3a..eadc1b3 100644 ---- a/sshd.c -+++ b/sshd.c -@@ -2076,7 +2076,7 @@ main(int ac, char **av) +Index: openssh-8.8p1/sshd.c +=================================================================== +--- openssh-8.8p1.orig/sshd.c ++++ openssh-8.8p1/sshd.c +@@ -2129,7 +2129,7 @@ main(int ac, char **av) * Write out the pid file after the sigterm handler * is setup and the listen sockets are bound */ ++++++ openssh-7.7p1-pam_check_locks.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.838175511 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.842175518 +0200 @@ -5,10 +5,10 @@ bnc#708678, FATE#312033 -Index: openssh-8.4p1/auth.c +Index: openssh-8.8p1/auth.c =================================================================== ---- openssh-8.4p1.orig/auth.c -+++ openssh-8.4p1/auth.c +--- openssh-8.8p1.orig/auth.c ++++ openssh-8.8p1/auth.c @@ -113,7 +113,7 @@ allowed_user(struct ssh *ssh, struct pas return 0; @@ -27,10 +27,10 @@ int locked = 0; #ifdef LOCKED_PASSWD_STRING -Index: openssh-8.4p1/servconf.c +Index: openssh-8.8p1/servconf.c =================================================================== ---- openssh-8.4p1.orig/servconf.c -+++ openssh-8.4p1/servconf.c +--- openssh-8.8p1.orig/servconf.c ++++ openssh-8.8p1/servconf.c @@ -92,6 +92,7 @@ initialize_server_options(ServerOptions /* Portable-specific options */ @@ -39,7 +39,7 @@ /* Standard Options */ options->num_ports = 0; -@@ -300,6 +301,8 @@ fill_default_server_options(ServerOption +@@ -278,6 +279,8 @@ fill_default_server_options(ServerOption /* Portable-specific options */ if (options->use_pam == -1) options->use_pam = 0; @@ -48,7 +48,7 @@ /* Standard Options */ if (options->num_host_key_files == 0) { -@@ -501,7 +504,7 @@ fill_default_server_options(ServerOption +@@ -485,7 +488,7 @@ fill_default_server_options(ServerOption typedef enum { sBadOption, /* == unknown option */ /* Portable-specific options */ @@ -56,8 +56,8 @@ + sUsePAM, sUsePAMChecklocks, /* Standard Options */ sPort, sHostKeyFile, sLoginGraceTime, - sPermitRootLogin, sLogFacility, sLogLevel, -@@ -553,8 +556,10 @@ static struct { + sPermitRootLogin, sLogFacility, sLogLevel, sLogVerbose, +@@ -535,8 +538,10 @@ static struct { /* Portable-specific options */ #ifdef USE_PAM { "usepam", sUsePAM, SSHCFG_GLOBAL }, @@ -68,7 +68,7 @@ #endif { "pamauthenticationviakbdint", sDeprecated, SSHCFG_GLOBAL }, /* Standard Options */ -@@ -1318,6 +1323,9 @@ process_server_config_line_depth(ServerO +@@ -1331,6 +1336,9 @@ process_server_config_line_depth(ServerO case sUsePAM: intptr = &options->use_pam; goto parse_flag; @@ -78,11 +78,11 @@ /* Standard Options */ case sBadOption: -Index: openssh-8.4p1/servconf.h +Index: openssh-8.8p1/servconf.h =================================================================== ---- openssh-8.4p1.orig/servconf.h -+++ openssh-8.4p1/servconf.h -@@ -195,6 +195,7 @@ typedef struct { +--- openssh-8.8p1.orig/servconf.h ++++ openssh-8.8p1/servconf.h +@@ -200,6 +200,7 @@ typedef struct { char *adm_forced_command; int use_pam; /* Enable auth via PAM */ @@ -90,11 +90,11 @@ int permit_tun; -Index: openssh-8.4p1/sshd_config.0 +Index: openssh-8.8p1/sshd_config.0 =================================================================== ---- openssh-8.4p1.orig/sshd_config.0 -+++ openssh-8.4p1/sshd_config.0 -@@ -1032,6 +1032,14 @@ DESCRIPTION +--- openssh-8.8p1.orig/sshd_config.0 ++++ openssh-8.8p1/sshd_config.0 +@@ -1074,6 +1074,14 @@ DESCRIPTION If UsePAM is enabled, you will not be able to run sshd(8) as a non-root user. The default is no. @@ -109,11 +109,11 @@ VersionAddendum Optionally specifies additional text to append to the SSH protocol banner sent by the server upon connection. The default -Index: openssh-8.4p1/sshd_config.5 +Index: openssh-8.8p1/sshd_config.5 =================================================================== ---- openssh-8.4p1.orig/sshd_config.5 -+++ openssh-8.4p1/sshd_config.5 -@@ -1718,6 +1718,18 @@ is enabled, you will not be able to run +--- openssh-8.8p1.orig/sshd_config.5 ++++ openssh-8.8p1/sshd_config.5 +@@ -1775,6 +1775,18 @@ is enabled, you will not be able to run as a non-root user. The default is .Cm no . ++++++ openssh-7.7p1-pts_names_formatting.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.850175530 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.850175530 +0200 @@ -4,15 +4,11 @@ # formats in ?tmp? files) # --used to be called '-pts' -diff --git a/openssh-7.7p1/loginrec.c b/openssh-7.7p1/loginrec.c ---- openssh-7.7p1/loginrec.c -+++ openssh-7.7p1/loginrec.c -@@ -541,17 +541,17 @@ getlast_entry(struct logininfo *li) - /* - * 'line' string utility functions - * - * These functions process the 'line' string into one of three forms: - * +Index: openssh-8.8p1/loginrec.c +=================================================================== +--- openssh-8.8p1.orig/loginrec.c ++++ openssh-8.8p1/loginrec.c +@@ -549,7 +549,7 @@ getlast_entry(struct logininfo *li) * 1. The full filename (including '/dev') * 2. The stripped name (excluding '/dev') * 3. The abbreviated name (e.g. /dev/ttyp00 -> yp00 @@ -21,17 +17,7 @@ * * Form 3 is used on some systems to identify a .tmp.? entry when * attempting to remove it. Typically both addition and removal is - * performed by one application - say, sshd - so as long as the choice - * uniquely identifies a terminal it's ok. - */ - - -@@ -602,16 +602,20 @@ line_abbrevname(char *dst, const char *s - /* Always skip prefix if present */ - if (strncmp(src, "/dev/", 5) == 0) - src += 5; - - #ifdef WITH_ABBREV_NO_TTY +@@ -610,6 +610,10 @@ line_abbrevname(char *dst, const char *s if (strncmp(src, "tty", 3) == 0) src += 3; #endif @@ -42,8 +28,3 @@ len = strlen(src); - if (len > 0) { - if (((int)len - dstsize) > 0) - src += ((int)len - dstsize); - - /* note: _don't_ change this to strlcpy */ ++++++ openssh-7.7p1-remove_xauth_cookies_on_exit.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.858175543 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.858175543 +0200 @@ -5,15 +5,11 @@ bnc#98815 -diff --git a/openssh-7.7p1/session.c b/openssh-7.7p1/session.c ---- openssh-7.7p1/session.c -+++ openssh-7.7p1/session.c -@@ -2302,16 +2302,44 @@ session_close(struct ssh *ssh, Session * - u_int i; - - verbose("Close session: user %s from %.200s port %d id %d", - s->pw->pw_name, - ssh_remote_ipaddr(ssh), +Index: openssh-8.8p1/session.c +=================================================================== +--- openssh-8.8p1.orig/session.c ++++ openssh-8.8p1/session.c +@@ -2441,6 +2441,34 @@ session_close(struct ssh *ssh, Session * ssh_remote_port(ssh), s->self); @@ -48,8 +44,3 @@ if (s->ttyfd != -1) session_pty_cleanup(s); free(s->term); - free(s->display); - free(s->x11_chanids); - free(s->auth_display); - free(s->auth_data); - free(s->auth_proto); ++++++ openssh-7.7p1-seccomp_ipc_flock.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.866175556 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.866175556 +0200 @@ -15,11 +15,11 @@ Signed-off-by: Eduardo Barretto <ebarre...@linux.vnet.ibm.com> -Index: openssh-7.9p1/sandbox-seccomp-filter.c +Index: openssh-8.8p1/sandbox-seccomp-filter.c =================================================================== ---- openssh-7.9p1.orig/sandbox-seccomp-filter.c -+++ openssh-7.9p1/sandbox-seccomp-filter.c -@@ -175,6 +175,9 @@ static const struct sock_filter preauth_ +--- openssh-8.8p1.orig/sandbox-seccomp-filter.c ++++ openssh-8.8p1/sandbox-seccomp-filter.c +@@ -219,6 +219,9 @@ static const struct sock_filter preauth_ #ifdef __NR_geteuid32 SC_ALLOW(__NR_geteuid32), #endif @@ -29,7 +29,7 @@ #ifdef __NR_getpgid SC_ALLOW(__NR_getpgid), #endif -@@ -193,6 +196,9 @@ static const struct sock_filter preauth_ +@@ -237,6 +240,9 @@ static const struct sock_filter preauth_ #ifdef __NR_getuid32 SC_ALLOW(__NR_getuid32), #endif ++++++ openssh-7.7p1-seccomp_stat.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.874175568 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.874175568 +0200 @@ -5,15 +5,11 @@ bnc#912436 -diff --git a/openssh-7.7p1/sandbox-seccomp-filter.c b/openssh-7.7p1/sandbox-seccomp-filter.c ---- openssh-7.7p1/sandbox-seccomp-filter.c -+++ openssh-7.7p1/sandbox-seccomp-filter.c -@@ -224,16 +224,19 @@ static const struct sock_filter preauth_ - SC_ALLOW(__NR_select), - #endif - #ifdef __NR_shutdown - SC_ALLOW(__NR_shutdown), - #endif +Index: openssh-8.8p1/sandbox-seccomp-filter.c +=================================================================== +--- openssh-8.8p1.orig/sandbox-seccomp-filter.c ++++ openssh-8.8p1/sandbox-seccomp-filter.c +@@ -294,6 +294,9 @@ static const struct sock_filter preauth_ #ifdef __NR_sigprocmask SC_ALLOW(__NR_sigprocmask), #endif @@ -23,8 +19,3 @@ #ifdef __NR_time SC_ALLOW(__NR_time), #endif - #ifdef __NR_write - SC_ALLOW(__NR_write), - #endif - #ifdef __NR_socketcall - SC_ALLOW_ARG(__NR_socketcall, 0, SYS_SHUTDOWN), ++++++ openssh-7.7p1-send_locale.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.882175581 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.886175587 +0200 @@ -3,15 +3,11 @@ send locales in default configuration bnc#65747 -diff --git a/openssh-7.7p1/ssh_config b/openssh-7.7p1/ssh_config ---- openssh-7.7p1/ssh_config -+++ openssh-7.7p1/ssh_config -@@ -26,16 +26,21 @@ Host * - # security reasons: Someone stealing the authentification data on the - # remote side (the "spoofed" X-server by the remote sshd) can read your - # keystrokes as you type, just like any other X11 client could do. - # Set this to "no" here for global effect or in your own ~/.ssh/config - # file if you want to have the remote X11 authentification data to +Index: openssh-8.8p1/ssh_config +=================================================================== +--- openssh-8.8p1.orig/ssh_config ++++ openssh-8.8p1/ssh_config +@@ -31,6 +31,11 @@ Host * # expire after twenty minutes after remote login. ForwardX11Trusted yes @@ -23,20 +19,11 @@ # PasswordAuthentication yes # HostbasedAuthentication no # GSSAPIAuthentication no - # GSSAPIDelegateCredentials no - # BatchMode no - # CheckHostIP yes - # AddressFamily any - # ConnectTimeout 0 -diff --git a/openssh-7.7p1/sshd_config b/openssh-7.7p1/sshd_config ---- openssh-7.7p1/sshd_config -+++ openssh-7.7p1/sshd_config -@@ -104,14 +104,19 @@ X11Forwarding yes - #VersionAddendum none - - # no default banner path - #Banner none - +Index: openssh-8.8p1/sshd_config +=================================================================== +--- openssh-8.8p1.orig/sshd_config ++++ openssh-8.8p1/sshd_config +@@ -108,6 +108,11 @@ X11Forwarding yes # override default of no subsystems Subsystem sftp /usr/libexec/sftp-server @@ -48,6 +35,3 @@ # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no - # AllowTcpForwarding no - # PermitTTY no - # ForceCommand cvs server ++++++ openssh-7.7p1-sftp_force_permissions.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.894175600 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.894175600 +0200 @@ -1,7 +1,7 @@ -Index: openssh-8.4p1/sftp-server.8 +Index: openssh-8.8p1/sftp-server.8 =================================================================== ---- openssh-8.4p1.orig/sftp-server.8 -+++ openssh-8.4p1/sftp-server.8 +--- openssh-8.8p1.orig/sftp-server.8 ++++ openssh-8.8p1/sftp-server.8 @@ -38,6 +38,7 @@ .Op Fl P Ar denied_requests .Op Fl p Ar allowed_requests @@ -21,11 +21,11 @@ .El .Pp On some systems, -Index: openssh-8.4p1/sftp-server.c +Index: openssh-8.8p1/sftp-server.c =================================================================== ---- openssh-8.4p1.orig/sftp-server.c -+++ openssh-8.4p1/sftp-server.c -@@ -69,6 +69,10 @@ struct sshbuf *oqueue; +--- openssh-8.8p1.orig/sftp-server.c ++++ openssh-8.8p1/sftp-server.c +@@ -73,6 +73,10 @@ struct sshbuf *oqueue; /* Version of client */ static u_int version; @@ -36,7 +36,7 @@ /* SSH2_FXP_INIT received */ static int init_done; -@@ -687,6 +691,7 @@ process_open(u_int32_t id) +@@ -724,6 +728,7 @@ process_open(u_int32_t id) Attrib a; char *name; int r, handle, fd, flags, mode, status = SSH2_FX_FAILURE; @@ -44,7 +44,7 @@ if ((r = sshbuf_get_cstring(iqueue, &name, NULL)) != 0 || (r = sshbuf_get_u32(iqueue, &pflags)) != 0 || /* portable flags */ -@@ -696,6 +701,10 @@ process_open(u_int32_t id) +@@ -733,6 +738,10 @@ process_open(u_int32_t id) debug3("request %u: open flags %d", id, pflags); flags = flags_from_portable(pflags); mode = (a.flags & SSH2_FILEXFER_ATTR_PERMISSIONS) ? a.perm : 0666; @@ -55,7 +55,7 @@ logit("open \"%s\" flags %s mode 0%o", name, string_from_portable(pflags), mode); if (readonly && -@@ -717,6 +726,8 @@ process_open(u_int32_t id) +@@ -754,6 +763,8 @@ process_open(u_int32_t id) } } } @@ -64,7 +64,7 @@ if (status != SSH2_FX_OK) send_status(id, status); free(name); -@@ -1131,6 +1142,7 @@ process_mkdir(u_int32_t id) +@@ -1183,6 +1194,7 @@ process_mkdir(u_int32_t id) Attrib a; char *name; int r, mode, status = SSH2_FX_FAILURE; @@ -72,7 +72,7 @@ if ((r = sshbuf_get_cstring(iqueue, &name, NULL)) != 0 || (r = decode_attrib(iqueue, &a)) != 0) -@@ -1138,9 +1150,16 @@ process_mkdir(u_int32_t id) +@@ -1190,9 +1202,16 @@ process_mkdir(u_int32_t id) mode = (a.flags & SSH2_FILEXFER_ATTR_PERMISSIONS) ? a.perm & 07777 : 0777; @@ -89,7 +89,7 @@ status = (r == -1) ? errno_to_portable(errno) : SSH2_FX_OK; send_status(id, status); free(name); -@@ -1560,7 +1579,7 @@ sftp_server_usage(void) +@@ -1700,7 +1719,7 @@ sftp_server_usage(void) fprintf(stderr, "usage: %s [-ehR] [-d start_directory] [-f log_facility] " "[-l log_level]\n\t[-P denied_requests] " @@ -98,7 +98,7 @@ " %s -Q protocol_feature\n", __progname, __progname); exit(1); -@@ -1588,7 +1607,7 @@ sftp_server_main(int argc, char **argv, +@@ -1728,7 +1747,7 @@ sftp_server_main(int argc, char **argv, pw = pwcopy(user_pw); while (!skipargs && (ch = getopt(argc, argv, @@ -107,7 +107,7 @@ switch (ch) { case 'Q': if (strcasecmp(optarg, "requests") != 0) { -@@ -1650,6 +1669,15 @@ sftp_server_main(int argc, char **argv, +@@ -1790,6 +1809,15 @@ sftp_server_main(int argc, char **argv, fatal("Invalid umask \"%s\"", optarg); (void)umask((mode_t)mask); break; ++++++ openssh-7.7p1-sftp_print_diagnostic_messages.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.902175613 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.902175613 +0200 @@ -2,10 +2,10 @@ # Parent 60bdbe6dd8d6bc011883472363d56e1d97f68835 Put back sftp client diagnostic messages in batch mode -Index: openssh-8.4p1/sftp.1 +Index: openssh-8.8p1/sftp.1 =================================================================== ---- openssh-8.4p1.orig/sftp.1 -+++ openssh-8.4p1/sftp.1 +--- openssh-8.8p1.orig/sftp.1 ++++ openssh-8.8p1/sftp.1 @@ -287,6 +287,9 @@ Specifies the port to connect to on the .It Fl p Preserves modification times, access times, and modes from the @@ -16,12 +16,12 @@ .It Fl q Quiet mode: disables the progress meter as well as warning and diagnostic messages from -Index: openssh-8.4p1/sftp.c +Index: openssh-8.8p1/sftp.c =================================================================== ---- openssh-8.4p1.orig/sftp.c -+++ openssh-8.4p1/sftp.c -@@ -85,6 +85,9 @@ static volatile pid_t sshpid = -1; - /* Suppress diagnositic messages */ +--- openssh-8.8p1.orig/sftp.c ++++ openssh-8.8p1/sftp.c +@@ -82,6 +82,9 @@ static volatile pid_t sshpid = -1; + /* Suppress diagnostic messages */ int quiet = 0; +/* Force diagnositic messages in batch mode */ @@ -30,7 +30,7 @@ /* This is set to 0 if the progressmeter is not desired. */ int showprogress = 1; -@@ -2408,7 +2411,7 @@ main(int argc, char **argv) +@@ -2381,7 +2384,7 @@ main(int argc, char **argv) infile = stdin; while ((ch = getopt(argc, argv, @@ -39,7 +39,7 @@ switch (ch) { /* Passed through to ssh(1) */ case 'A': -@@ -2426,6 +2429,9 @@ main(int argc, char **argv) +@@ -2399,6 +2402,9 @@ main(int argc, char **argv) addargs(&args, "-%c", ch); addargs(&args, "%s", optarg); break; @@ -49,7 +49,7 @@ case 'q': ll = SYSLOG_LEVEL_ERROR; quiet = 1; -@@ -2510,6 +2516,8 @@ main(int argc, char **argv) +@@ -2483,6 +2489,8 @@ main(int argc, char **argv) usage(); } } ++++++ openssh-7.7p1-systemd-notify.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.910175625 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.914175632 +0200 @@ -3,11 +3,11 @@ Send signals to systemd to prevent various race conditions bsc#1048367 -Index: openssh-7.8p1/configure.ac +Index: openssh-8.8p1/configure.ac =================================================================== ---- openssh-7.8p1.orig/configure.ac -+++ openssh-7.8p1/configure.ac -@@ -4378,6 +4378,30 @@ AC_ARG_WITH([kerberos5], +--- openssh-8.8p1.orig/configure.ac ++++ openssh-8.8p1/configure.ac +@@ -4751,6 +4751,30 @@ AC_ARG_WITH([kerberos5], AC_SUBST([GSSLIBS]) AC_SUBST([K5LIBS]) @@ -38,7 +38,7 @@ # Looking for programs, paths and files PRIVSEP_PATH=/var/empty -@@ -5183,6 +5207,7 @@ echo " libldns support +@@ -5564,6 +5588,7 @@ echo " libldns support echo " Solaris process contract support: $SPC_MSG" echo " Solaris project support: $SP_MSG" echo " Solaris privilege support: $SPP_MSG" @@ -46,11 +46,11 @@ echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG" echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG" echo " BSD Auth support: $BSD_AUTH_MSG" -Index: openssh-7.8p1/sshd.c +Index: openssh-8.8p1/sshd.c =================================================================== ---- openssh-7.8p1.orig/sshd.c -+++ openssh-7.8p1/sshd.c -@@ -87,6 +87,10 @@ +--- openssh-8.8p1.orig/sshd.c ++++ openssh-8.8p1/sshd.c +@@ -85,6 +85,10 @@ #include <prot.h> #endif @@ -72,7 +72,7 @@ logit("Received SIGHUP; restarting."); if (options.pid_file != NULL) unlink(options.pid_file); -@@ -1995,6 +2003,11 @@ main(int ac, char **av) +@@ -2076,6 +2084,11 @@ main(int ac, char **av) } } ++++++ openssh-7.9p1-keygen-preserve-perms.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.918175638 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.922175644 +0200 @@ -8,11 +8,11 @@ just going with what mkstemp() gives us. This is useful in corner cases where known_hosts is shared between users. -diff --git a/ssh-keygen.c b/ssh-keygen.c -index 03a7fe5..ca8a309 100644 ---- a/ssh-keygen.c -+++ b/ssh-keygen.c -@@ -1338,6 +1338,11 @@ do_known_hosts(struct passwd *pw, const char *name) +Index: openssh-8.8p1/ssh-keygen.c +=================================================================== +--- openssh-8.8p1.orig/ssh-keygen.c ++++ openssh-8.8p1/ssh-keygen.c +@@ -1384,6 +1384,11 @@ do_known_hosts(struct passwd *pw, const if (inplace) unlink(tmp); } else if (inplace) { @@ -24,7 +24,7 @@ /* Backup existing file */ if (unlink(old) == -1 && errno != ENOENT) fatal("unlink %.100s: %s", old, strerror(errno)); -@@ -1352,6 +1357,12 @@ do_known_hosts(struct passwd *pw, const char *name) +@@ -1398,6 +1403,12 @@ do_known_hosts(struct passwd *pw, const unlink(old); exit(1); } ++++++ openssh-7.9p1-revert-new-qos-defaults.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.930175657 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.930175657 +0200 @@ -6,11 +6,11 @@ Reverts OpenBSD-Commit-ID: d11d2a4484f461524ef0c20870523dfcdeb52181 -diff --git a/readconf.c b/readconf.c -index 24f2cb1..bbdea0d 100644 ---- a/readconf.c -+++ b/readconf.c -@@ -2183,9 +2183,9 @@ fill_default_options(Options * options) +Index: openssh-8.8p1/readconf.c +=================================================================== +--- openssh-8.8p1.orig/readconf.c ++++ openssh-8.8p1/readconf.c +@@ -2679,9 +2679,9 @@ fill_default_options(Options * options) if (options->visual_host_key == -1) options->visual_host_key = 0; if (options->ip_qos_interactive == -1) @@ -21,12 +21,12 @@ + options->ip_qos_bulk = IPTOS_THROUGHPUT; if (options->request_tty == -1) options->request_tty = REQUEST_TTY_AUTO; - if (options->proxy_use_fdpass == -1) -diff --git a/servconf.c b/servconf.c -index 13cf154..766ac6b 100644 ---- a/servconf.c -+++ b/servconf.c -@@ -445,9 +445,9 @@ fill_default_server_options(ServerOptions *options) + if (options->session_type == -1) +Index: openssh-8.8p1/servconf.c +=================================================================== +--- openssh-8.8p1.orig/servconf.c ++++ openssh-8.8p1/servconf.c +@@ -459,9 +459,9 @@ fill_default_server_options(ServerOption if (options->permit_tun == -1) options->permit_tun = SSH_TUNMODE_NO; if (options->ip_qos_interactive == -1) @@ -38,11 +38,11 @@ if (options->version_addendum == NULL) options->version_addendum = xstrdup(""); if (options->fwd_opts.streamlocal_bind_mask == (mode_t)-1) -diff --git a/ssh_config.5 b/ssh_config.5 -index 3bf0502..10246f8 100644 ---- a/ssh_config.5 -+++ b/ssh_config.5 -@@ -1088,11 +1088,9 @@ If one argument is specified, it is used as the packet class unconditionally. +Index: openssh-8.8p1/ssh_config.5 +=================================================================== +--- openssh-8.8p1.orig/ssh_config.5 ++++ openssh-8.8p1/ssh_config.5 +@@ -1182,11 +1182,9 @@ If one argument is specified, it is used If two values are specified, the first is automatically selected for interactive sessions and the second for non-interactive sessions. The default is @@ -56,11 +56,11 @@ for non-interactive sessions. .It Cm KbdInteractiveAuthentication Specifies whether to use keyboard-interactive authentication. -diff --git a/sshd_config.5 b/sshd_config.5 -index 50a4917..a276fcb 100644 ---- a/sshd_config.5 -+++ b/sshd_config.5 -@@ -868,11 +868,9 @@ If one argument is specified, it is used as the packet class unconditionally. +Index: openssh-8.8p1/sshd_config.5 +=================================================================== +--- openssh-8.8p1.orig/sshd_config.5 ++++ openssh-8.8p1/sshd_config.5 +@@ -903,11 +903,9 @@ If one argument is specified, it is used If two values are specified, the first is automatically selected for interactive sessions and the second for non-interactive sessions. The default is ++++++ openssh-8.0p1-gssapi-keyex.patch ++++++ ++++ 1565 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/openssh/openssh-8.0p1-gssapi-keyex.patch ++++ and /work/SRC/openSUSE:Factory/.openssh.new.2443/openssh-8.0p1-gssapi-keyex.patch ++++++ openssh-8.1p1-audit.patch ++++++ ++++ 1049 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/openssh/openssh-8.1p1-audit.patch ++++ and /work/SRC/openSUSE:Factory/.openssh.new.2443/openssh-8.1p1-audit.patch ++++++ openssh-8.1p1-seccomp-clock_gettime64.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.962175708 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.962175708 +0200 @@ -9,11 +9,11 @@ sandbox-seccomp-filter.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c -index 3ef30c9d5..999c46c9f 100644 ---- a/sandbox-seccomp-filter.c -+++ b/sandbox-seccomp-filter.c -@@ -248,6 +248,9 @@ static const struct sock_filter preauth_insns[] = { +Index: openssh-8.8p1/sandbox-seccomp-filter.c +=================================================================== +--- openssh-8.8p1.orig/sandbox-seccomp-filter.c ++++ openssh-8.8p1/sandbox-seccomp-filter.c +@@ -279,6 +279,9 @@ static const struct sock_filter preauth_ #ifdef __NR_clock_nanosleep_time64 SC_ALLOW(__NR_clock_nanosleep_time64), #endif ++++++ openssh-8.1p1-seccomp-clock_nanosleep.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.970175721 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.970175721 +0200 @@ -1,8 +1,8 @@ -diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c -index c1e689e..74f69bc 100644 ---- a/sandbox-seccomp-filter.c -+++ b/sandbox-seccomp-filter.c -@@ -264,6 +264,9 @@ static const struct sock_filter preauth_insns[] = { +Index: openssh-8.8p1/sandbox-seccomp-filter.c +=================================================================== +--- openssh-8.8p1.orig/sandbox-seccomp-filter.c ++++ openssh-8.8p1/sandbox-seccomp-filter.c +@@ -273,6 +273,9 @@ static const struct sock_filter preauth_ #ifdef __NR_clock_gettime64 SC_ALLOW(__NR_clock_gettime64), #endif ++++++ openssh-8.1p1-seccomp-clock_nanosleep_time64.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.978175734 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.978175734 +0200 @@ -8,11 +8,11 @@ sandbox-seccomp-filter.c | 3 +++ 1 file changed, 3 insertions(+) -Index: openssh-8.1p1/sandbox-seccomp-filter.c +Index: openssh-8.8p1/sandbox-seccomp-filter.c =================================================================== ---- openssh-8.1p1.orig/sandbox-seccomp-filter.c -+++ openssh-8.1p1/sandbox-seccomp-filter.c -@@ -251,6 +251,9 @@ static const struct sock_filter preauth_ +--- openssh-8.8p1.orig/sandbox-seccomp-filter.c ++++ openssh-8.8p1/sandbox-seccomp-filter.c +@@ -276,6 +276,9 @@ static const struct sock_filter preauth_ #ifdef __NR_clock_nanosleep SC_ALLOW(__NR_clock_nanosleep), #endif ++++++ openssh-8.1p1-use-openssl-kdf.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.986175746 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:41.986175746 +0200 @@ -1,8 +1,8 @@ -diff --git a/kex.c b/kex.c -index 96e44a5..7cd37d6 100644 ---- a/kex.c -+++ b/kex.c -@@ -38,6 +38,7 @@ +Index: openssh-8.8p1/kex.c +=================================================================== +--- openssh-8.8p1.orig/kex.c ++++ openssh-8.8p1/kex.c +@@ -40,6 +40,7 @@ #ifdef WITH_OPENSSL #include <openssl/crypto.h> #include <openssl/dh.h> @@ -10,7 +10,7 @@ #endif #include "ssh.h" -@@ -1109,8 +1110,92 @@ kex_choose_conf(struct ssh *ssh) +@@ -1115,8 +1116,93 @@ kex_choose_conf(struct ssh *ssh) return r; } @@ -69,7 +69,8 @@ + || EVP_KDF_ctrl (hashctx, EVP_KDF_CTRL_SET_SSHKDF_XCGHASH, + hash, (size_t) hashlen) != 1 + || EVP_KDF_ctrl (hashctx, EVP_KDF_CTRL_SET_SSHKDF_SESSION_ID, -+ kex->session_id, (size_t) kex->session_id_len) != 1) ++ sshbuf_ptr(kex->session_id), ++ (size_t) sshbuf_len(kex->session_id)) != 1) + goto out; + + digest = calloc (1, need); @@ -104,7 +105,7 @@ const struct sshbuf *shared_secret, u_char **keyp) { struct kex *kex = ssh->kex; -@@ -1174,6 +1259,50 @@ derive_key(struct ssh *ssh, int id, u_int need, u_char *hash, u_int hashlen, +@@ -1179,6 +1265,50 @@ derive_key(struct ssh *ssh, int id, u_in return r; } ++++++ openssh-8.4p1-vendordir.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:41.998175765 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:42.002175772 +0200 @@ -1,52 +1,31 @@ Gemeinsame Unterverzeichnisse: openssh-8.4p1/contrib und openssh-8.4p1-vendor/contrib. -diff -u openssh-8.4p1/dh.c openssh-8.4p1-vendor/dh.c ---- openssh-8.4p1/dh.c 2020-09-27 09:25:01.000000000 +0200 -+++ openssh-8.4p1-vendor/dh.c 2021-01-29 11:49:40.968418136 +0100 -@@ -151,10 +151,18 @@ - size_t linesize = 0; - int best, bestcount, which, linenum; - struct dhgroup dhg; -+ char *dh_moduli_path; -+ struct stat st; +Index: openssh-8.8p1/dh.c +=================================================================== +--- openssh-8.8p1.orig/dh.c ++++ openssh-8.8p1/dh.c +@@ -54,7 +54,17 @@ void dh_set_moduli_file(const char *file -- if ((f = fopen(_PATH_DH_MODULI, "r")) == NULL) { + static const char * get_moduli_filename(void) + { +- return moduli_filename ? moduli_filename : _PATH_DH_MODULI; ++ struct stat st; ++ ++ if (moduli_filename) ++ return moduli_filename; ++ + if (stat(_PATH_VENDOR_DH_MODULI, &st) == 0 && + stat(_PATH_DH_MODULI, &st) == -1) { -+ dh_moduli_path = _PATH_VENDOR_DH_MODULI; -+ } else { -+ dh_moduli_path = _PATH_DH_MODULI; ++ return _PATH_VENDOR_DH_MODULI; + } -+ if ((f = fopen(dh_moduli_path, "r")) == NULL) { - logit("WARNING: could not open %s (%s), using fixed modulus", -- _PATH_DH_MODULI, strerror(errno)); -+ dh_moduli_path, strerror(errno)); - return (dh_new_group_fallback(max)); - } - -@@ -185,7 +193,7 @@ - - if (bestcount == 0) { - fclose(f); -- logit("WARNING: no suitable primes in %s", _PATH_DH_MODULI); -+ logit("WARNING: no suitable primes in %s", dh_moduli_path); - return (dh_new_group_fallback(max)); - } - which = arc4random_uniform(bestcount); -@@ -210,7 +218,7 @@ - fclose(f); - if (bestcount != which + 1) { - logit("WARNING: selected prime disappeared in %s, giving up", -- _PATH_DH_MODULI); -+ dh_moduli_path); - return (dh_new_group_fallback(max)); - } ++ ++ return _PATH_DH_MODULI; + } -Gemeinsame Unterverzeichnisse: openssh-8.4p1/.github und openssh-8.4p1-vendor/.github. -Gemeinsame Unterverzeichnisse: openssh-8.4p1/m4 und openssh-8.4p1-vendor/m4. -Gemeinsame Unterverzeichnisse: openssh-8.4p1/openbsd-compat und openssh-8.4p1-vendor/openbsd-compat. -diff -u openssh-8.4p1/pathnames.h openssh-8.4p1-vendor/pathnames.h ---- openssh-8.4p1/pathnames.h 2020-09-27 09:25:01.000000000 +0200 -+++ openssh-8.4p1-vendor/pathnames.h 2021-01-29 11:35:41.655599046 +0100 + static int +Index: openssh-8.8p1/pathnames.h +=================================================================== +--- openssh-8.8p1.orig/pathnames.h ++++ openssh-8.8p1/pathnames.h @@ -18,6 +18,8 @@ #define SSHDIR ETCDIR "/ssh" #endif @@ -74,11 +53,11 @@ #ifndef _PATH_SSH_PROGRAM #define _PATH_SSH_PROGRAM "/usr/bin/ssh" -Gemeinsame Unterverzeichnisse: openssh-8.4p1/regress und openssh-8.4p1-vendor/regress. -diff -u openssh-8.4p1/ssh.c openssh-8.4p1-vendor/ssh.c ---- openssh-8.4p1/ssh.c 2020-09-27 09:25:01.000000000 +0200 -+++ openssh-8.4p1-vendor/ssh.c 2021-01-27 18:22:52.322271681 +0100 -@@ -593,6 +593,7 @@ +Index: openssh-8.8p1/ssh.c +=================================================================== +--- openssh-8.8p1.orig/ssh.c ++++ openssh-8.8p1/ssh.c +@@ -549,6 +549,7 @@ static void process_config_files(const char *host_name, struct passwd *pw, int final_pass, int *want_final_pass) { @@ -86,7 +65,7 @@ char buf[PATH_MAX]; int r; -@@ -611,10 +612,23 @@ +@@ -567,10 +568,23 @@ process_config_files(const char *host_na &options, SSHCONF_CHECKPERM | SSHCONF_USERCONF | (final_pass ? SSHCONF_FINAL : 0), want_final_pass); @@ -114,11 +93,11 @@ } } -Nur in openssh-8.4p1-vendor: #ssh_config.5#. -diff -u openssh-8.4p1/ssh_config.5 openssh-8.4p1-vendor/ssh_config.5 ---- openssh-8.4p1/ssh_config.5 2020-09-27 09:25:01.000000000 +0200 -+++ openssh-8.4p1-vendor/ssh_config.5 2021-02-24 12:02:53.935729753 +0100 -@@ -54,6 +54,9 @@ +Index: openssh-8.8p1/ssh_config.5 +=================================================================== +--- openssh-8.8p1.orig/ssh_config.5 ++++ openssh-8.8p1/ssh_config.5 +@@ -54,6 +54,9 @@ user's configuration file .It system-wide configuration file .Pq Pa /etc/ssh/ssh_config @@ -128,7 +107,7 @@ .El .Pp For each parameter, the first obtained value -@@ -1942,6 +1945,11 @@ +@@ -2212,6 +2215,11 @@ This file provides defaults for those values that are not specified in the user's configuration file, and for those users who do not have a configuration file. This file must be world-readable. @@ -140,11 +119,11 @@ .El .Sh SEE ALSO .Xr ssh 1 -Nur in openssh-8.4p1-vendor: ssh_config.5~. -diff -u openssh-8.4p1/sshd.c openssh-8.4p1-vendor/sshd.c ---- openssh-8.4p1/sshd.c 2020-09-27 09:25:01.000000000 +0200 -+++ openssh-8.4p1-vendor/sshd.c 2021-01-27 18:25:38.370273280 +0100 -@@ -136,7 +136,7 @@ +Index: openssh-8.8p1/sshd.c +=================================================================== +--- openssh-8.8p1.orig/sshd.c ++++ openssh-8.8p1/sshd.c +@@ -145,7 +145,7 @@ extern char *__progname; ServerOptions options; /* Name of the server configuration file. */ @@ -153,7 +132,7 @@ /* * Debug mode flag. This can be set on the command line. If debug -@@ -1526,6 +1526,7 @@ +@@ -1594,6 +1594,7 @@ prepare_proctitle(int ac, char **av) int main(int ac, char **av) { @@ -161,7 +140,7 @@ struct ssh *ssh = NULL; extern char *optarg; extern int optind; -@@ -1737,7 +1738,21 @@ +@@ -1809,7 +1810,21 @@ main(int ac, char **av) */ (void)atomicio(vwrite, startup_pipe, "\0", 1); } @@ -183,9 +162,10 @@ load_server_config(config_file_name, cfg); parse_server_config(&options, rexeced_flag ? "rexec" : config_file_name, -diff -u openssh-8.4p1/sshd_config.5 openssh-8.4p1-vendor/sshd_config.5 ---- openssh-8.4p1/sshd_config.5 2020-09-27 09:25:01.000000000 +0200 -+++ openssh-8.4p1-vendor/sshd_config.5 2021-02-24 14:14:27.912038335 +0100 +Index: openssh-8.8p1/sshd_config.5 +=================================================================== +--- openssh-8.8p1.orig/sshd_config.5 ++++ openssh-8.8p1/sshd_config.5 @@ -44,7 +44,9 @@ .Xr sshd 8 reads configuration data from @@ -197,11 +177,11 @@ .Fl f on the command line). The file contains keyword-argument pairs, one per line. -Nur in openssh-8.4p1-vendor: sshd_config.5~. -diff -u openssh-8.4p1/ssh-keysign.c openssh-8.4p1-vendor/ssh-keysign.c ---- openssh-8.4p1/ssh-keysign.c 2020-09-27 09:25:01.000000000 +0200 -+++ openssh-8.4p1-vendor/ssh-keysign.c 2021-02-24 11:34:17.684570215 +0100 -@@ -172,6 +172,7 @@ +Index: openssh-8.8p1/ssh-keysign.c +=================================================================== +--- openssh-8.8p1.orig/ssh-keysign.c ++++ openssh-8.8p1/ssh-keysign.c +@@ -172,6 +172,7 @@ main(int argc, char **argv) u_char *signature, *data, rver; char *host, *fp; size_t slen, dlen; @@ -209,19 +189,20 @@ if (pledge("stdio rpath getpw dns id", NULL) != 0) fatal("%s: pledge: %s", __progname, strerror(errno)); -@@ -205,8 +206,12 @@ +@@ -205,8 +206,14 @@ main(int argc, char **argv) /* verify that ssh-keysign is enabled by the admin */ initialize_options(&options); - (void)read_config_file(_PATH_HOST_CONFIG_FILE, pw, "", "", - &options, 0, NULL); ++ + if (stat(_PATH_HOST_CONFIG_FILE, &st) == 0) + (void)read_config_file(_PATH_HOST_CONFIG_FILE, pw, "", "", + &options, 0, NULL); + else -+ (void)read_config_file(_PATH_HOST_VENDOR_CONFIG_FILE, pw, -+ "", "", &options, 0, NULL); - fill_default_options(&options); ++ (void)read_config_file(_PATH_HOST_VENDOR_CONFIG_FILE, pw, "", "", ++ &options, 0, NULL); ++ + (void)fill_default_options(&options); if (options.enable_ssh_keysign != 1) fatal("ssh-keysign not enabled in %s", -Nur in openssh-8.4p1-vendor: ssh-keysign.c~. ++++++ openssh-8.4p1.tar.gz -> openssh-8.8p1.tar.gz ++++++ ++++ 63416 lines of diff (skipped) ++++++ openssh-fips-ensure-approved-moduli.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:42.386176382 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:42.386176382 +0200 @@ -4,11 +4,11 @@ Ensure DHGs are approved in FIPS mode using OpenSSL's DH_check_params() -diff --git a/dh.c b/dh.c -index 7cb135d..3fe7f75 100644 ---- a/dh.c -+++ b/dh.c -@@ -143,6 +143,28 @@ parse_prime(int linenum, char *line, struct dhgroup *dhg) +Index: openssh-8.8p1/dh.c +=================================================================== +--- openssh-8.8p1.orig/dh.c ++++ openssh-8.8p1/dh.c +@@ -155,6 +155,28 @@ parse_prime(int linenum, char *line, str return 0; } @@ -37,7 +37,7 @@ DH * choose_dh(int min, int wantbits, int max) { -@@ -161,12 +183,20 @@ choose_dh(int min, int wantbits, int max) +@@ -173,12 +195,20 @@ choose_dh(int min, int wantbits, int max linenum = 0; best = bestcount = 0; while (getline(&line, &linesize, f) != -1) { @@ -58,7 +58,7 @@ if (dhg.size > max || dhg.size < min) continue; -@@ -193,10 +223,16 @@ choose_dh(int min, int wantbits, int max) +@@ -206,10 +236,16 @@ choose_dh(int min, int wantbits, int max linenum = 0; bestcount = 0; while (getline(&line, &linesize, f) != -1) { ++++++ openssh-link-with-sk.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:42.394176394 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:42.394176394 +0200 @@ -1,15 +1,15 @@ -diff --git a/Makefile.in b/Makefile.in -index 6dec09c..25e74ac 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -251,8 +251,8 @@ ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHKEYSCAN_OBJS) +Index: openssh-8.8p1/Makefile.in +=================================================================== +--- openssh-8.8p1.orig/Makefile.in ++++ openssh-8.8p1/Makefile.in +@@ -252,8 +252,8 @@ ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libss ssh-ldap-helper$(EXEEXT): $(LIBCOMPAT) libssh.a ldapconf.o ldapbody.o ldapmisc.o ldap-helper.o $(LD) -o $@ ldapconf.o ldapbody.o ldapmisc.o ldap-helper.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) -sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a $(SFTPSERVER_OBJS) -- $(LD) -o $@ $(SFTPSERVER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) +- $(LD) -o $@ $(SFTPSERVER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) +sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-sk.o sk-usbhid.o $(SFTPSERVER_OBJS) -+ $(LD) -o $@ $(SFTPSERVER_OBJS) ssh-sk.o sk-usbhid.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(LIBFIDO2) ++ $(LD) -o $@ $(SFTPSERVER_OBJS) ssh-sk.o sk-usbhid.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) $(LIBFIDO2) sftp$(EXEEXT): $(LIBCOMPAT) libssh.a $(SFTP_OBJS) $(LD) -o $@ $(SFTP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(LIBEDIT) ++++++ openssh-reenable-dh-group14-sha1-default.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:42.402176407 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:42.406176413 +0200 @@ -1,7 +1,7 @@ -diff --git a/myproposal.h b/myproposal.h -index 5312e60..83fd62d 100644 ---- a/myproposal.h -+++ b/myproposal.h +Index: openssh-8.8p1/myproposal.h +=================================================================== +--- openssh-8.8p1.orig/myproposal.h ++++ openssh-8.8p1/myproposal.h @@ -33,7 +33,8 @@ "diffie-hellman-group-exchange-sha256," \ "diffie-hellman-group16-sha512," \ @@ -12,11 +12,11 @@ #define KEX_CLIENT_KEX KEX_SERVER_KEX -diff --git a/ssh_config.5 b/ssh_config.5 -index d5888f2..100563e 100644 ---- a/ssh_config.5 -+++ b/ssh_config.5 -@@ -1170,7 +1170,8 @@ ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, +Index: openssh-8.8p1/ssh_config.5 +=================================================================== +--- openssh-8.8p1.orig/ssh_config.5 ++++ openssh-8.8p1/ssh_config.5 +@@ -1227,7 +1227,8 @@ ecdh-sha2-nistp256,ecdh-sha2-nistp384,ec diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, @@ -26,11 +26,11 @@ .Ed .Pp The list of available key exchange algorithms may also be obtained using -diff --git a/sshd_config.5 b/sshd_config.5 -index 0f5fe53..97364f5 100644 ---- a/sshd_config.5 -+++ b/sshd_config.5 -@@ -986,7 +986,7 @@ curve25519-sha256,curve25519-sha...@libssh.org, +Index: openssh-8.8p1/sshd_config.5 +=================================================================== +--- openssh-8.8p1.orig/sshd_config.5 ++++ openssh-8.8p1/sshd_config.5 +@@ -997,7 +997,7 @@ curve25519-sha256,curve25519-sha256@libs ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512,diffie-hellman-group18-sha512, ++++++ openssh-whitelist-syscalls.patch ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:42.414176426 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:42.414176426 +0200 @@ -1,6 +1,8 @@ ---- a/sandbox-seccomp-filter.c -+++ b/sandbox-seccomp-filter.c -@@ -195,6 +195,9 @@ +Index: openssh-8.8p1/sandbox-seccomp-filter.c +=================================================================== +--- openssh-8.8p1.orig/sandbox-seccomp-filter.c ++++ openssh-8.8p1/sandbox-seccomp-filter.c +@@ -201,6 +201,9 @@ static const struct sock_filter preauth_ #ifdef __NR_close SC_ALLOW(__NR_close), #endif @@ -10,9 +12,9 @@ #ifdef __NR_exit SC_ALLOW(__NR_exit), #endif -@@ -204,6 +207,9 @@ - #ifdef __NR_futex - SC_ALLOW(__NR_futex), +@@ -213,6 +216,9 @@ static const struct sock_filter preauth_ + #ifdef __NR_futex_time64 + SC_ALLOW(__NR_futex_time64), #endif +#ifdef __NR_futex_time64 + SC_ALLOW(__NR_futex_time64), @@ -20,13 +22,13 @@ #ifdef __NR_geteuid SC_ALLOW(__NR_geteuid), #endif -@@ -282,6 +288,9 @@ - #ifdef __NR_pselect6 - SC_ALLOW(__NR_pselect6), +@@ -293,6 +299,9 @@ static const struct sock_filter preauth_ #endif + #ifdef __NR_pselect6_time64 + SC_ALLOW(__NR_pselect6_time64), ++#endif +#ifdef __NR_pselect6_time64 + SC_ALLOW(__NR_pselect6_time64), -+#endif + #endif #ifdef __NR_read SC_ALLOW(__NR_read), - #endif ++++++ openssh.keyring ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:42.426176445 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:42.426176445 +0200 @@ -1,5 +1,4 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2.0.22 (OpenBSD) mQGiBDqa5pwRBADJSEyXXsgXiyytN93prDPTPmrueRP9lQQfgaQvCvqK0bN0AF1Z Vxxk9wlSXQp3+Qw5+qqsN5ovzsn39r9pqGslfCqQn9ACTmsn42+VCyW4hdwUGSBS @@ -27,185 +26,328 @@ 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 -Eyg= -=3za3 +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 +ePJgyS4h2BL0NgQRIRVW +=OOF9 -----END PGP PUBLIC KEY BLOCK----- ++++++ sshd-gen-keys-start ++++++ --- /var/tmp/diff_new_pack.oEgcgE/_old 2021-10-11 16:48:42.454176490 +0200 +++ /var/tmp/diff_new_pack.oEgcgE/_new 2021-10-11 16:48:42.454176490 +0200 @@ -1,8 +1,9 @@ #!/bin/sh -. /etc/sysconfig/ssh +test -f /etc/sysconfig/ssh && . /etc/sysconfig/ssh if [ "x$SSHD_AUTO_KEYGEN" != "xno" ]; then echo "Checking for missing server keys in /etc/ssh" + test -d /etc/ssh || mkdir -p /etc/ssh ssh-keygen -A fi