From d1667913ba37d7f61712e06dd6dd4919fe36a053 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 10:20:57 +0200 Subject: Merging upstream version 1:9.7p1. Signed-off-by: Daniel Baumann --- .github/configs | 21 +- .github/setup_ci.sh | 26 + .github/workflows/c-cpp.yml | 20 +- .github/workflows/selfhosted.yml | 1 + .gitignore | 2 + .skipped-commit-ids | 2 + ChangeLog | 11979 +++++++++++------------- PROTOCOL | 26 +- PROTOCOL.agent | 4 +- PROTOCOL.mux | 4 +- README | 2 +- README.platform | 9 +- channels.c | 79 +- clientloop.c | 4 +- config.h.in | 3 + configure | 1024 +- configure.ac | 50 +- contrib/redhat/openssh.spec | 2 +- contrib/suse/openssh.spec | 2 +- gss-genr.c | 8 +- kex.c | 31 +- kex.h | 10 +- m4/openssh.m4 | 12 +- misc.c | 15 +- misc.h | 3 +- moduli.0 | 2 +- nchan.c | 4 +- openbsd-compat/getopt.h | 12 +- openbsd-compat/openbsd-compat.h | 10 +- readconf.c | 165 +- readconf.h | 8 +- regress/Makefile | 77 +- regress/channel-timeout.sh | 74 +- regress/dynamic-forward.sh | 9 +- regress/misc/fuzz-harness/Makefile | 8 +- regress/misc/fuzz-harness/agent_fuzz_helper.c | 7 + regress/multiplex.sh | 3 +- regress/putty-ciphers.sh | 51 +- regress/putty-kex.sh | 40 +- regress/putty-transfer.sh | 13 +- regress/test-exec.sh | 28 +- regress/unittests/Makefile.inc | 7 +- regress/unittests/hostkeys/test_iterate.c | 11 +- regress/unittests/kex/test_kex.c | 4 +- regress/unittests/sshkey/test_file.c | 4 +- regress/unittests/sshkey/test_fuzz.c | 8 +- regress/unittests/sshkey/test_sshkey.c | 23 +- regress/unittests/sshsig/tests.c | 4 +- scp.0 | 2 +- servconf.c | 168 +- session.c | 4 +- sftp-server.0 | 2 +- sftp.0 | 2 +- sftp.c | 44 +- ssh-add.0 | 12 +- ssh-add.1 | 14 +- ssh-add.c | 10 +- ssh-agent.0 | 2 +- ssh-agent.c | 48 +- ssh-dss.c | 7 +- ssh-keygen.0 | 2 +- ssh-keygen.c | 26 +- ssh-keyscan.0 | 2 +- ssh-keyscan.c | 8 +- ssh-keysign.0 | 2 +- ssh-keysign.c | 7 +- ssh-pkcs11-client.c | 2 + ssh-pkcs11-helper.0 | 2 +- ssh-sk-helper.0 | 2 +- ssh.0 | 2 +- ssh.c | 6 +- ssh_api.c | 14 +- ssh_config.0 | 29 +- ssh_config.5 | 24 +- sshbuf-getput-crypto.c | 4 +- sshconnect.c | 4 +- sshconnect2.c | 21 +- sshd.0 | 2 +- sshd.c | 4 +- sshd_config.0 | 52 +- sshd_config.5 | 57 +- sshkey.c | 12 +- sshsig.c | 4 +- version.h | 4 +- xmss_hash.c | 4 +- 85 files changed, 7151 insertions(+), 7371 deletions(-) diff --git a/.github/configs b/.github/configs index df82faf..370fe29 100755 --- a/.github/configs +++ b/.github/configs @@ -164,6 +164,11 @@ case "$config" in libressl-*) LIBCRYPTOFLAGS="--with-ssl-dir=/opt/libressl --with-rpath=-Wl,-rpath," ;; + putty-*) + CONFIGFLAGS="--with-plink=/usr/local/bin/plink --with-puttygen=/usr/local/bin/puttygen" + # We don't need to rerun the regular tests, just the interop ones. + TEST_TARGET=interop-tests + ;; openssl-*) LIBCRYPTOFLAGS="--with-ssl-dir=/opt/openssl --with-rpath=-Wl,-rpath," # OpenSSL 1.1.1 specifically has a bug in its RNG that breaks reexec @@ -269,20 +274,22 @@ case "${TARGET_HOST}" in ;; minix3) CONFIGFLAGS="${CONFIGFLAGS} --disable-security-key" + # Unix domain sockets don't work quite like we expect, so also + # disable FD passing (and thus multiplexing). + CONFIGFLAGS="${CONFIGFLAGS} --disable-fd-passing" LIBCRYPTOFLAGS="--without-openssl" + # Minix does not have a loopback interface so we have to skip any # test that relies on one. # Also, Minix seems to be very limited in the number of select() # calls that can be operating concurrently, so prune additional tests for that. T="addrmatch agent-restrict brokenkeys cfgmatch cfgmatchlisten cfgparse - connect connect-uri exit-status forwarding hostkey-agent - key-options keyscan knownhosts-command login-timeout + connect connect-uri dynamic-forward exit-status forwarding + forward-control + hostkey-agent key-options keyscan knownhosts-command login-timeout reconfigure reexec rekey scp scp-uri scp3 sftp sftp-badcmds sftp-batch sftp-cmds sftp-glob sftp-perm sftp-uri stderr-data transfer" - # Unix domain sockets don't work quite like we expect, so also skip any tests - # that use multiplexing. - T="$T connection-timeout dynamic-forward forward-control multiplex" SKIP_LTESTS="$(echo $T)" TEST_TARGET=t-exec SUDO="" @@ -320,6 +327,10 @@ case "$host" in # modern versions don't ship with libcrypto. LIBCRYPTOFLAGS="--without-openssl" TEST_TARGET=t-exec + + # On some OS X runners we can't write to /var/empty. + CONFIGFLAGS="${CONFIGFLAGS} --with-privsep-path=/usr/local/empty" + case "$host" in *-darwin22.*) # sudo -S nobody doesn't work on macos 13 for some reason. diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh index d0ba7b4..f0f2761 100755 --- a/.github/setup_ci.sh +++ b/.github/setup_ci.sh @@ -142,6 +142,10 @@ for TARGET in $TARGETS; do INSTALL_BORINGSSL=1 PACKAGES="${PACKAGES} cmake ninja-build" ;; + putty-*) + INSTALL_PUTTY=$(echo "${TARGET}" | cut -f2 -d-) + PACKAGES="${PACKAGES} cmake" + ;; valgrind*) PACKAGES="$PACKAGES valgrind" ;; @@ -241,3 +245,25 @@ if [ ! -z "${INSTALL_ZLIB}" ]; then cd ${HOME}/zlib && ./configure && make && sudo make install prefix=/opt/zlib) fi + +if [ ! -z "${INSTALL_PUTTY}" ]; then + ver="${INSTALL_PUTTY}" + case "${INSTALL_PUTTY}" in + snapshot) + tarball=putty.tar.gz + (cd /tmp && wget https://tartarus.org/~simon/putty-snapshots/${tarball}) + ;; + *) + tarball=putty-${ver}.tar.gz + (cd /tmp && wget https://the.earth.li/~sgtatham/putty/${ver}/${tarball}) + ;; + esac + (cd ${HOME} && tar xfz /tmp/${tarball} && cd putty-* + if [ -f CMakeLists.txt ]; then + cmake . && cmake --build . && sudo cmake --build . --target install + else + ./configure && make && sudo make install + fi + ) + /usr/local/bin/plink -V +fi diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 8f624d2..edb88f2 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -62,20 +62,32 @@ jobs: - { target: ubuntu-latest, config: libressl-3.5.3 } - { target: ubuntu-latest, config: libressl-3.6.1 } - { target: ubuntu-latest, config: libressl-3.7.2 } - - { target: ubuntu-latest, config: libressl-3.8.2 } + - { target: ubuntu-latest, config: libressl-3.8.3 } + - { target: ubuntu-latest, config: libressl-3.9.0 } - { target: ubuntu-latest, config: openssl-master } - { target: ubuntu-latest, config: openssl-noec } - { target: ubuntu-latest, config: openssl-1.1.1 } - { target: ubuntu-latest, config: openssl-1.1.1t } - { target: ubuntu-latest, config: openssl-1.1.1w } - { target: ubuntu-latest, config: openssl-3.0.0 } - - { target: ubuntu-latest, config: openssl-3.0.12 } + - { target: ubuntu-latest, config: openssl-3.0.13 } - { target: ubuntu-latest, config: openssl-3.1.0 } - - { target: ubuntu-latest, config: openssl-3.1.4 } - - { target: ubuntu-latest, config: openssl-3.2.0 } + - { target: ubuntu-latest, config: openssl-3.1.5 } + - { target: ubuntu-latest, config: openssl-3.2.1 } - { target: ubuntu-latest, config: openssl-1.1.1_stable } - { target: ubuntu-latest, config: openssl-3.0 } # stable branch - { target: ubuntu-latest, config: openssl-3.2 } # stable branch + - { target: ubuntu-latest, config: putty-0.71 } + - { target: ubuntu-latest, config: putty-0.72 } + - { target: ubuntu-latest, config: putty-0.73 } + - { target: ubuntu-latest, config: putty-0.74 } + - { target: ubuntu-latest, config: putty-0.75 } + - { target: ubuntu-latest, config: putty-0.76 } + - { target: ubuntu-latest, config: putty-0.77 } + - { target: ubuntu-latest, config: putty-0.78 } + - { target: ubuntu-latest, config: putty-0.79 } + - { target: ubuntu-latest, config: putty-0.80 } + - { target: ubuntu-latest, config: putty-snapshot } - { target: ubuntu-latest, config: zlib-develop } - { target: ubuntu-22.04, config: pam } - { target: ubuntu-22.04, config: krb5 } diff --git a/.github/workflows/selfhosted.yml b/.github/workflows/selfhosted.yml index be0b4ff..4f1c587 100644 --- a/.github/workflows/selfhosted.yml +++ b/.github/workflows/selfhosted.yml @@ -73,6 +73,7 @@ jobs: - { target: fbsd14, config: pam, host: libvirt } - { target: nbsd8, config: pam, host: libvirt } - { target: nbsd9, config: pam, host: libvirt } + - { target: nbsd10, config: pam, host: libvirt } # VMs with persistent disks that have their own runner. - { target: win10, config: default, host: win10 } - { target: win10, config: cygwin-release, host: win10 } diff --git a/.gitignore b/.gitignore index 5e4ae5a..7fccc6f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,8 @@ survey.sh **/*.so **/*.out **/*.a +**/*.un~ +**/.*.swp autom4te.cache/ scp sftp diff --git a/.skipped-commit-ids b/.skipped-commit-ids index 59e8051..0630395 100644 --- a/.skipped-commit-ids +++ b/.skipped-commit-ids @@ -1,3 +1,4 @@ +509bb19bb9762a4b3b589af98bac2e730541b6d4 clean sshd random relinking kit 5317f294d63a876bfc861e19773b1575f96f027d remove libssh from makefiles a337e886a49f96701ccbc4832bed086a68abfa85 Makefile changes f2c9feb26963615c4fece921906cf72e248b61ee more Makefile @@ -27,6 +28,7 @@ cc12a9029833d222043aecd252d654965c351a69 moduli-gen Makefile f9a0726d957cf10692a231996a1f34e7f9cdfeb0 moduli update 1e0a2692b7e20b126dda60bf04999d1d30d959d8 sshd relinking makefile changes e1dc11143f83082e3154d6094f9136d0dc2637ad more relinking makefile tweaks +5a636f6ca7f25bfe775df4952f7aac90a7fcbbee moduli update Old upstream tree: diff --git a/ChangeLog b/ChangeLog index 981b7ec..3bbccf5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9505 +1,8300 @@ -commit 8241b9c0529228b4b86d88b1a6076fb9f97e4a99 +commit 86bdd3853f4d32c85e295e6216a2fe0953ad93f0 Author: Damien Miller -Date: Tue Dec 19 01:59:50 2023 +1100 +Date: Mon Mar 11 16:20:49 2024 +1100 - crank versions + version number in README -commit 2f2c65cb5f1518a9c556d3e8efa27ea0ca305c6b +commit 282721418e6465bc39ccfd39bb0133e670ee4423 Author: Damien Miller -Date: Tue Dec 19 01:59:06 2023 +1100 +Date: Mon Mar 11 16:20:08 2024 +1100 - depend + crank RPM spec versions -commit e48cdee8e19059203b1aeeabec2350b8375fa61f +commit 3876a3bbd2ca84d23ba20f8b69ba83270c04ce3a Author: djm@openbsd.org -Date: Mon Dec 18 14:50:08 2023 +0000 +Date: Mon Mar 11 04:59:47 2024 +0000 - upstream: regress test for agent PKCS#11-backed certificates + upstream: openssh-9.7 - OpenBSD-Regress-ID: 38f681777cb944a8cc3bf9d0ad62959a16764df9 + OpenBSD-Commit-ID: 618ececf58b8cdae016b149787af06240f7b0cbc -commit 2f512f862df1d5f456f82a0334c9e8cc7208a2a1 -Author: djm@openbsd.org -Date: Mon Dec 18 14:49:39 2023 +0000 +commit 8fc109cc614954a8eb2738c48c0db36a62af9a06 +Author: Darren Tucker +Date: Mon Mar 11 12:59:26 2024 +1100 - upstream: regress test for constrained PKCS#11 keys + Test against current OpenSSL and LibreSSL releases. - OpenBSD-Regress-ID: b2f26ae95d609d12257b43aef7cd7714c82618ff + Add LibreSSL 3.9.0, bump older branches to their respective current + releases. -commit cdddd66412ca5920ed4d3ebbfa6ace12dbd9b82f -Author: djm@openbsd.org -Date: Mon Dec 18 14:48:44 2023 +0000 +commit 26b09b45fec7b88ba09042c09be4157e58e231e2 +Author: Damien Miller +Date: Sun Mar 10 16:24:57 2024 +1100 - upstream: openssh-9.6 + quote regexes used to test for algorithm support - OpenBSD-Commit-ID: 21759837cf0e0092d9a2079f8fb562071c11016b + Fixes test failures on Solaris 8 reported by Tom G. Christensen -commit 6d51feab157cedf1e7ef5b3f8781ca8ff9c4ab1b +commit a6a740a4948d10a622b505135bb485c10f21db5e Author: djm@openbsd.org -Date: Mon Dec 18 14:48:08 2023 +0000 +Date: Sat Mar 9 05:12:13 2024 +0000 - upstream: ssh-agent: record failed session-bind attempts - - Record failed attempts to session-bind a connection and refuse signing - operations on that connection henceforth. - - Prevents a future situation where we add a new hostkey type that is not - recognised by an older ssh-agent, that consequently causes session-bind - to fail (this situation is only likely to arise when people mix ssh(1) - and ssh-agent(1) of different versions on the same host). Previously, - after such a failure the agent socket would be considered unbound and - not subject to restriction. + upstream: avoid logging in signal handler by converting mainloop to - Spotted by Jann Horn + ppoll() bz3670, reported by Ben Hamilton; ok dtucker@ - OpenBSD-Commit-ID: b0fdd023e920aa4831413f640de4c5307b53552e + OpenBSD-Commit-ID: e58f18042b86425405ca09e6e9d7dfa1df9f5f7f -commit 7ef3787c84b6b524501211b11a26c742f829af1a +commit cd82f7526e0481720567ae41db7849ab1c27e27b Author: djm@openbsd.org -Date: Mon Dec 18 14:47:44 2023 +0000 +Date: Fri Mar 8 22:16:32 2024 +0000 - upstream: ban user/hostnames with most shell metacharacters + upstream: skip more whitespace, fixes find-principals on - This makes ssh(1) refuse user or host names provided on the - commandline that contain most shell metacharacters. - - Some programs that invoke ssh(1) using untrusted data do not filter - metacharacters in arguments they supply. This could create - interactions with user-specified ProxyCommand and other directives - that allow shell injection attacks to occur. + allowed_signers files with blank lines; reported by Wiktor Kwapisiewicz - It's a mistake to invoke ssh(1) with arbitrary untrusted arguments, - but getting this stuff right can be tricky, so this should prevent - most obvious ways of creating risky situations. It however is not - and cannot be perfect: ssh(1) has no practical way of interpreting - what shell quoting rules are in use and how they interact with the - user's specified ProxyCommand. + OpenBSD-Commit-ID: b3a22a2afd753d70766f34bc7f309c03706b5298 + +commit 2f9d2af5cb19905d87f37d1e11c9f035ac5daf3b +Author: dtucker@openbsd.org +Date: Fri Mar 8 11:34:10 2024 +0000 + + upstream: Invoke ProxyCommand that uses stderr redirection via - To allow configurations that use strange user or hostnames to - continue to work, this strictness is applied only to names coming - from the commandline. Names specified using User or Hostname - directives in ssh_config(5) are not affected. + $TEST_SHELL. Fixes test when run by a user whose login shell is tcsh. + Found by vinschen at redhat.com. - feedback/ok millert@ markus@ dtucker@ deraadt@ + OpenBSD-Regress-ID: f68d79e7f00caa8d216ebe00ee5f0adbb944062a + +commit 9b3f0beb4007a7e01dfedabb429097fb593deae6 +Author: Darren Tucker +Date: Thu Mar 7 17:18:14 2024 +1100 + + Prefer openssl binary from --with-ssl-dir directory. - OpenBSD-Commit-ID: 3b487348b5964f3e77b6b4d3da4c3b439e94b2d9 + Use openssl in the directory specified by --with-ssl-dir as long + as it's functional. Reported by The Doctor. -commit 0cb50eefdd29f0fec31d0e71cc4b004a5f704e67 +commit c47e1c9c7911f38b2fc2fb01b1f6ae3a3121a838 Author: djm@openbsd.org -Date: Mon Dec 18 14:47:20 2023 +0000 +Date: Wed Mar 6 02:59:59 2024 +0000 - upstream: stricter handling of channel window limits - - This makes ssh/sshd more strict in handling non-compliant peers that - send more data than the advertised channel window allows. Previously - the additional data would be silently discarded. This change will - cause ssh/sshd to terminate the connection if the channel window is - exceeded by more than a small grace allowance. + upstream: fix memory leak in mux proxy mode when requesting forwarding. - ok markus@ + found by RASU JSC, reported by Maks Mishin in GHPR#467 - OpenBSD-Commit-ID: 811e21b41831eba3dd7f67b3d409a438f20d3037 + OpenBSD-Commit-ID: 97d96a166b1ad4b8d229864a553e3e56d3116860 -commit 4448a2938abc76e6bd33ba09b2ec17a216dfb491 +commit 242742827fea4508e68097c128e802edc79addb5 Author: djm@openbsd.org -Date: Mon Dec 18 14:46:56 2023 +0000 +Date: Wed Mar 6 00:31:04 2024 +0000 - upstream: Make it possible to load certs from PKCS#11 tokens - - Adds a protocol extension to allow grafting certificates supplied by - ssh-add to keys loaded from PKCS#11 tokens in the agent. - - feedback/ok markus@ + upstream: wrap a few PKCS#11-specific bits in ENABLE_PKCS11 - OpenBSD-Commit-ID: bb5433cd28ede2bc910996eb3c0b53e20f86037f + OpenBSD-Commit-ID: 463e4a69eef3426a43a2b922c4e7b2011885d923 -commit 881d9c6af9da4257c69c327c4e2f1508b2fa754b -Author: djm@openbsd.org -Date: Mon Dec 18 14:46:12 2023 +0000 +commit d52b6509210e2043f33e5a1de58dd4a0d5d48c2a +Author: Damien Miller +Date: Wed Mar 6 11:31:36 2024 +1100 - upstream: apply destination constraints to all p11 keys + disable RSA tests when algorithm is not supported - Previously applied only to the first key returned from each token. + Unbreaks "make test" when compiled --without-openssl. - ok markus@ + Similar treatment to how we do DSA and ECDSA. + +commit 668d270a6c77e8b5a1da26ecad2e6de9f62c8fe4 +Author: Damien Miller +Date: Wed Mar 6 10:33:20 2024 +1100 + + add a --without-retpoline configure option - OpenBSD-Commit-ID: 36df3afb8eb94eec6b2541f063d0d164ef8b488d + discussed with deraadt and dtucker a while ago -commit a7ed931caeb68947d30af8a795f4108b6efad761 +commit 3deb501f86fc47e175ef6a3eaba9b9846a80d444 Author: djm@openbsd.org -Date: Mon Dec 18 14:45:49 2023 +0000 +Date: Mon Mar 4 04:13:18 2024 +0000 - upstream: add "ext-info-in-auth@openssh.com" extension - - This adds another transport protocol extension to allow a sshd to send - SSH2_MSG_EXT_INFO during user authentication, after the server has - learned the username that is being logged in to. - - This lets sshd to update the acceptable signature algoritms for public - key authentication, and allows these to be varied via sshd_config(5) - "Match" directives, which are evaluated after the server learns the - username being authenticated. + upstream: fix leak of CanonicalizePermittedCNAMEs on error path; - Full details in the PROTOCOL file + spotted by Coverity (CID 438039) - OpenBSD-Commit-ID: 1de7da7f2b6c32a46043d75fcd49b0cbb7db7779 + OpenBSD-Commit-ID: 208839699939721f452a4418afc028a9f9d3d8af -commit 1edb00c58f8a6875fad6a497aa2bacf37f9e6cd5 +commit 65a44a8a4f7d902a64d4e60eda84384b2e2a24a2 Author: djm@openbsd.org -Date: Mon Dec 18 14:45:17 2023 +0000 +Date: Mon Mar 4 02:16:11 2024 +0000 - upstream: implement "strict key exchange" in ssh and sshd + upstream: Separate parsing of string array options from applying them - This adds a protocol extension to improve the integrity of the SSH - transport protocol, particular in and around the initial key exchange - (KEX) phase. + to the active configuration. This fixes the config parser from erroneously + rejecting cases like: - Full details of the extension are in the PROTOCOL file. + AuthenticationMethods password + Match User ivy + AuthenticationMethods any - with markus@ + bz3657 ok markus@ - OpenBSD-Commit-ID: 2a66ac962f0a630d7945fee54004ed9e9c439f14 + OpenBSD-Commit-ID: 7f196cba634c2a3dba115f3fac3c4635a2199491 -commit 59d691b886c79e70b1d1c4ab744e81fd176222fd +commit 6886e1b1f55c90942e4e6deed930f8ac32e0f938 +Author: Darren Tucker +Date: Thu Feb 22 17:59:35 2024 +1100 + + Add nbsd10 test target. + +commit d86bf8a3f6ea4fa7887406c2aa9959db71fa41be Author: Damien Miller -Date: Mon Dec 18 14:49:11 2023 +1100 +Date: Thu Feb 22 12:06:10 2024 +1100 - better detection of broken -fzero-call-used-regs + more descriptive configure test name + +commit 9ee335aacc9f5bdc4cc2c19fafb45e27be7d234e +Author: djm@openbsd.org +Date: Wed Feb 21 06:17:29 2024 +0000 + + upstream: explain arguments of internal-sftp GHPR#454 from Niklas - Use OSSH_CHECK_CFLAG_LINK() for detection of these flags and extend - test program to exercise varargs, which seems to catch more stuff. + Hambüchen + MIME-Version: 1.0 + Content-Type: text/plain; charset=UTF-8 + Content-Transfer-Encoding: 8bit - ok dtucker@ + OpenBSD-Commit-ID: 0335d641ae6b5b6201b9ffd5dd06345ebbd0a3f3 -commit aa7b21708511a6d4aed3839fc9f6e82e849dd4a1 +commit d1164cb1001dd208fee88aaa9b43d5e6fd917274 Author: djm@openbsd.org -Date: Wed Dec 13 03:28:19 2023 +0000 +Date: Wed Feb 21 06:06:43 2024 +0000 - upstream: when invoking KnownHostsCommand to determine the order of - - host key algorithms to request, ensure that the hostname passed to the - command is decorated with the port number for ports other than 22. + upstream: clarify permissions requirements for ChrootDirectory Part - This matches the behaviour of KnownHostsCommand when invoked to look - up the actual host key. + of GHPR#454 from Niklas Hambüchen + MIME-Version: 1.0 + Content-Type: text/plain; charset=UTF-8 + Content-Transfer-Encoding: 8bit - bz3643, ok dtucker@ + OpenBSD-Commit-ID: d37bc8786317a11649c62ff5e2936441186ef7a0 + +commit d410e17d186552d0717f18217d0d049486754365 +Author: djm@openbsd.org +Date: Wed Feb 21 06:05:06 2024 +0000 + + upstream: .Cm for a keyword. Part of GHPR#454 from Niklas Hambüchen - OpenBSD-Commit-ID: 5cfabc0b7c6c7ab473666df314f377b1f15420b1 + OpenBSD-Commit-ID: d59c52559f926fa82859035d79749fbb4a3ce18a -commit 4086bd6652c0badccc020218a62190a7798fb72c -Author: markus@openbsd.org -Date: Fri Dec 8 09:18:39 2023 +0000 +commit ab73f9678ebf06b32d6361b88b50b42775e0565b +Author: djm@openbsd.org +Date: Wed Feb 21 06:01:13 2024 +0000 - upstream: prevent leak in sshsig_match_principals; ok djm@ + upstream: fix typo in match directive predicate (s/tagged/tag) GHPR#462 - OpenBSD-Commit-ID: 594f61ad4819ff5c72dfe99ba666a17f0e1030ae + from Tobias Manske + + OpenBSD-Commit-ID: 05b23b772677d48aa82eefd7ebebd369ae758908 -commit 19d3ee2f3adf7d9a606ff015c1e153744702c4c9 +commit 9844aa2521ccfb1a2d73745680327b79e0574445 Author: djm@openbsd.org -Date: Wed Dec 6 21:06:48 2023 +0000 +Date: Wed Feb 21 05:57:34 2024 +0000 - upstream: short circuit debug log processing early if we're not going + upstream: fix proxy multiplexing mode, broken when keystroke timing - to log anything. From Kobe Housen + obfuscation was added. GHPR#463 from montag451 - OpenBSD-Commit-ID: 2bcddd695872a1bef137cfff7823044dcded90ea + OpenBSD-Commit-ID: 4e412d59b3f557d431f1d81c715a3bc0491cc677 -commit 947affad4831df015c498c00c6351ea6f13895d5 -Author: Darren Tucker -Date: Mon Nov 27 09:37:28 2023 +1100 +commit ee6d932acb532f80b11bb7cf161668c70ec8a117 +Author: djm@openbsd.org +Date: Tue Feb 20 04:10:03 2024 +0000 - Add tests for OpenSSL 3.2.0 and 3.2 stable branch. + upstream: don't append a gratuitous space to the end of subsystem + + arguments; bz3667 + + OpenBSD-Commit-ID: e11023aeb3f30b77a674e37b8292c862926d5dc6 -commit 747dce36206675ca6b885010a835733df469351b -Author: Darren Tucker -Date: Sat Nov 25 09:03:38 2023 +1100 +commit e27f032aa8fcbae9b2e7c451baaf4b8ac6fa3d45 +Author: dtucker@openbsd.org +Date: Mon Feb 19 09:25:52 2024 +0000 - Use non-zero arg in compiler test program. + upstream: Always define puttysetup function. - Now that we're running the test program, passing zero to the test function - can cause divide-by-zero exceptions which might show up in logs. + OpenBSD-Regress-ID: b4c0ccfa4006a1bc5dfd99ccf21c854d3ce2aee0 -commit 3d44a5c56585d1c351dbc006240a591b6da502b1 +commit 84046f9991abef5f46b040b10cf3d494f933a17b Author: dtucker@openbsd.org -Date: Fri Nov 24 00:31:30 2023 +0000 +Date: Fri Feb 9 08:56:59 2024 +0000 - upstream: Plug mem leak of msg when processing a quit message. + upstream: Exapnd PuTTY test coverage. - Coverity CID#427852, ok djm@ + Expand the set of ciphers, MACs and KEX methods in the PuTTY interop + tests. - OpenBSD-Commit-ID: bf85362addbe2134c3d8c4b80f16601fbff823b7 + OpenBSD-Regress-ID: dd28d97d48efe7329a396d0d505ee2907bf7fc57 -commit 1d7f9b6e297877bd00973e6dc5c0642dbefc3b5f +commit bbf541ee2afe07b08a8b56fa0dc6f38fcfceef2a Author: dtucker@openbsd.org -Date: Thu Nov 23 03:37:05 2023 +0000 +Date: Fri Feb 9 08:47:42 2024 +0000 - upstream: Include existing mux path in debug message. + upstream: Factor out PuTTY setup. - OpenBSD-Commit-ID: 1c3641be10c2f4fbad2a1b088a441d072e18bf16 + Factor out PuTTY and call only when needed. + + This allows us to avoid PuTTY key setup when it's not needed, which + speeds up the overall test run by a couple of percent. + + OpenBSD-Regress-ID: c25eaccc3c91bc874400f7c85ce40e9032358c1c -commit f29934066bd0e561a2e516b7e584fb92d2eedee0 -Author: Darren Tucker -Date: Thu Nov 23 19:41:27 2023 +1100 +commit d31c21c57fb4245271680a1e5043cf6470a96766 +Author: naddy@openbsd.org +Date: Sat Feb 10 11:28:52 2024 +0000 - Add an Ubuntu 22.04 test VM. + upstream: clean sshd random relinking kit; ok miod@ - This is the same version as Github's runners so most of the testing on - it is over there, but having a local VM makes debugging much easier. + OpenBSD-Commit-ID: 509bb19bb9762a4b3b589af98bac2e730541b6d4 -commit a93284a780cd3972afe5f89086b75d564ba157f3 -Author: Darren Tucker -Date: Thu Nov 23 19:36:22 2023 +1100 +commit 4dbc5a363ff53a2fcecf6bc3bcc038badc12f118 +Author: djm@openbsd.org +Date: Fri Feb 2 00:13:34 2024 +0000 - Add gcc-12 -Werror test on Ubuntu 22.04. + upstream: whitespace - Explictly specify gcc-11 on Ubuntu 22.04 (it's the system compiler). + OpenBSD-Commit-ID: b24680bc755b621ea801ff8edf6f0f02b68edae1 -commit 670f5a647e98b6fd95ad64f789f87ee3274b481b +commit efde85dda2130272af24cc346f6c3cd326182ff1 Author: Darren Tucker -Date: Thu Nov 23 19:34:57 2023 +1100 +Date: Mon Feb 19 17:29:31 2024 +1100 - Check return value from write to prevent warning. + Improve error message for OpenSSL header check. - ... and since we're testing for flags with -Werror, this caused - configure to mis-detect compiler flags. + bz#3668, ok djm@ -commit cea007d691cfedfa07a5b8599f97ce0511f53fc9 +commit cbbdf868bce431a59e2fa36ca244d5739429408d Author: Darren Tucker -Date: Wed Nov 22 21:18:55 2023 +1100 +Date: Wed Feb 7 13:45:02 2024 +1100 - Run compiler test program when compiling natively. - - ok djm@ + Interop test against PuTTY snapshot and releases. -commit ee0d305828f13536c0a416bbf9c3e81039d9ea55 +commit 91898bf786b0f149f962c4c96c08a46f29888c10 Author: Darren Tucker -Date: Wed Nov 22 21:18:07 2023 +1100 +Date: Tue Feb 6 16:21:05 2024 +1100 - Factor out compiler test program into a macro. + Put privsep dir on OS X on /usr/local. - ok djm@ + On some runners we can't create /var/empty, so put it some place we can + write. Should fix test breakage on Max OS X 11. -commit de304c76316b029df460673725a9104224b9959b +commit be5ed8ebed8388c5056bfde4688308cc873c18b9 Author: Darren Tucker -Date: Wed Nov 22 08:55:36 2023 +1100 +Date: Tue Feb 6 11:19:42 2024 +1100 - Add fbsd14 VM to test pool. + Add --disable-fd-passing option. + + .. and enable for the minix3 test VM. This will cause it to more reliably + skip tests that need FD passing and should fix the current test breakage. -commit 99a2df5e1994cdcb44ba2187b5f34d0e9190be91 +commit 0f6a8a0d0a518fd78c4cbebfdac990a57a1c4e41 Author: Darren Tucker -Date: Tue Nov 21 16:19:29 2023 +1100 +Date: Tue Feb 6 11:18:44 2024 +1100 - Expand -fzero-call-used-regs test to cover gcc 11. - - It turns out that gcc also has some problems with -fzero-call-used-regs, - at least v11 on mips. Previously the test in OSSH_CHECK_CFLAG_COMPILE - was sufficient to catch it with "=all", but not sufficient for "=used". - Expand the testcase and include it in the other tests for good measure. - See bz#3629. ok djm@. + Use "skip" function instead doing it ourselves. -commit ff220d4010717f7bfbbc02a2400666fb9d24f250 -Author: Darren Tucker -Date: Tue Nov 21 14:04:34 2023 +1100 +commit 3ad669f81aabbd2ba9fbd472903f680f598e1e99 +Author: Damien Miller +Date: Thu Feb 1 14:01:18 2024 +1100 - Stop using -fzero-call-used-regs=all + ignore some vim droppings + +commit c283f29d23611a06bbee06bcf458f2fffad721d9 +Author: djm@openbsd.org +Date: Thu Feb 1 02:37:33 2024 +0000 + + upstream: whitespace - ... since it seems to be problematic with several different versions of - clang. Only use -fzero-call-used-regs=used which is less - problematic, except with Apple's clang where we don't use it at all. - bz#3629, ok djm@ + OpenBSD-Commit-ID: bf9e4a1049562ee4322684fbdce07142f04fdbb7 -commit 2a19e02f36b16f0f6cc915f7d1e60ead5e36303b -Author: Darren Tucker -Date: Tue Nov 21 14:02:18 2023 +1100 +commit 0d96b1506b2f4757fefa5d1f884d49e96a6fd4c3 +Author: Damien Miller +Date: Tue Jan 16 14:40:18 2024 +1100 - Allow for vendor prefix on clang version numbers. + skip tests that use multiplexing on Windows - Correctly detects the version of OpenBSD's native clang, as well as - Apple's. Spotted tb@, ok djm@. + Some tests here use multiplexing, skip these if DISABLE_FD_PASSING + is set. Should unbreak tests on Windows. -commit c52db0114826d73eff6cdbf205e9c1fa4f7ca6c6 +commit 50080fa42f5f744b798ee29400c0710f1b59f50e Author: djm@openbsd.org -Date: Mon Nov 20 02:50:00 2023 +0000 +Date: Thu Jan 11 04:50:28 2024 +0000 - upstream: set errno=EAFNOSUPPORT when filtering addresses that don't + upstream: don't disable RSA test when DSA is disabled; bug introduced - match AddressFamily; yields slightly better error message if no address - matches. bz#3526 + in last commit - OpenBSD-Commit-ID: 29cea900ddd8b04a4d1968da5c4a893be2ebd9e6 + OpenBSD-Regress-ID: 8780a7250bf742b33010e9336359a1c516f2d7b5 -commit 26f3f3bbc69196d908cad6558c8c7dc5beb8d74a +commit 415c94ce17288e0cdcb9e58cc91fba78d33c8457 Author: djm@openbsd.org -Date: Wed Nov 15 23:03:38 2023 +0000 +Date: Thu Jan 11 01:45:58 2024 +0000 - upstream: when connecting via socket (the default case), filter + upstream: make DSA testing optional, defaulting to on - addresses by AddressFamily if one was specified. Fixes the case where, if - CanonicalizeHostname is enabled, ssh may ignore AddressFamily. bz5326; ok - dtucker + ok markus - OpenBSD-Commit-ID: 6c7d7751f6cd055126b2b268a7b64dcafa447439 + OpenBSD-Regress-ID: dfc27b5574e3f19dc4043395594cea5f90b8572a -commit 050c335c8da43741ed0df2570ebfbd5d1dfd0a31 +commit f9311e8921d92c5efca767227a497ab63280ac39 Author: djm@openbsd.org -Date: Wed Nov 15 22:51:49 2023 +0000 +Date: Thu Jan 11 01:51:16 2024 +0000 - upstream: when deciding whether to enable keystroke timing - - obfuscation, only consider enabling it when a channel with a tty is open. + upstream: ensure key_fd is filled when DSA is disabled; spotted by - Avoids turning on the obfucation when X11 forwarding only is in use, - which slows it right down. Reported by Roger Marsh + tb@ - OpenBSD-Commit-ID: c292f738db410f729190f92de100c39ec931a4f1 + OpenBSD-Commit-ID: 9dd417b6eec3cf67e870f147464a8d93f076dce7 -commit 676377ce67807a24e08a54cd60ec832946cc6cae -Author: tobhe@openbsd.org -Date: Mon Nov 13 09:18:19 2023 +0000 +commit 4e838120a759d187b036036610402cbda33f3203 +Author: djm@openbsd.org +Date: Thu Jan 11 01:45:36 2024 +0000 - upstream: Make sure sftp_get_limits() only returns 0 if 'limits' + upstream: make DSA key support compile-time optional, defaulting to - was initialized. This fixes a potential uninitialized use of 'limits' in - sftp_init() if sftp_get_limits() returned early because of an unexpected - message type. + on - ok djm@ + ok markus@ - OpenBSD-Commit-ID: 1c177d7c3becc1d71bc8763eecf61873a1d3884c + OpenBSD-Commit-ID: 4f8e98fc1fd6de399d0921d5b31b3127a03f581d -commit 64e0600f23c6dec36c3875392ac95b8a9100c2d6 -Author: Darren Tucker -Date: Mon Nov 13 20:03:31 2023 +1100 +commit afcc9028bfc411bc26d20bba803b83f90cb84e26 +Author: jmc@openbsd.org +Date: Wed Jan 10 06:33:13 2024 +0000 - Test current releases of LibreSSL and OpenSSL. + upstream: fix incorrect capitalisation; - Retire some of the older releases. + OpenBSD-Commit-ID: cb07eb06e15fa2334660ac73e98f29b6a1931984 -commit c8ed7cc545879ac15f6ce428be4b29c35598bb2a -Author: dtucker@openbsd.org -Date: Wed Nov 1 02:08:38 2023 +0000 +commit 9707c8170c0c1baeb1e06e5a53f604498193885f +Author: djm@openbsd.org +Date: Tue Jan 9 22:19:36 2024 +0000 - upstream: Specify ssh binary to use + upstream: extend ChannelTimeout regression test to exercise multiplexed - ... instead of relying on installed one. Fixes test failures in -portable - when running tests prior to installation. + connections and the new "global" timeout type. ok dtucker@ - OpenBSD-Regress-ID: b6d6ba71c23209c616efc805a60d9a445d53a685 + OpenBSD-Regress-ID: f10d19f697024e9941acad7c2057f73d6eacb8a2 -commit e9fc2c48121cada1b4dcc5dadea5d447fe0093c3 -Author: Darren Tucker -Date: Wed Nov 1 13:11:31 2023 +1100 +commit b31b12d28de96e1d43581d32f34da8db27e11c03 +Author: djm@openbsd.org +Date: Tue Jan 9 22:19:00 2024 +0000 - Put long-running test targets on hipri runners. + upstream: add a "global" ChannelTimeout type to ssh(1) and sshd(8) - Some of the selfhosted test targets take a long time to run for various - reasons, so label them for "libvirt-hipri" runners so that they can - start immediately. This should reduce the time to complete all tests. + that watches all open channels and will close all open channels if there is + no traffic on any of them for the specified interval. This is in addition to + the existing per-channel timeouts added a few releases ago. + + This supports use-cases like having a session + x11 forwarding channel + open where one may be idle for an extended period but the other is + actively used. The global timeout would allow closing both channels when + both have been idle for too long. + + ok dtucker@ + + OpenBSD-Commit-ID: 0054157d24d2eaa5dc1a9a9859afefc13d1d7eb3 -commit 7ddf27668f0e21233f08c0ab2fe9ee3fdd6ab1e2 +commit 602f4beeeda5bb0eca181f8753d923a2997d0a51 Author: djm@openbsd.org -Date: Wed Nov 1 00:29:46 2023 +0000 +Date: Tue Jan 9 21:39:14 2024 +0000 - upstream: add some tests of forced commands overriding Subsystem + upstream: adapt ssh_api.c code for kex-strict - directives + from markus@ ok me - OpenBSD-Regress-ID: eb48610282f6371672bdf2a8b5d2aa33cfbd322b + OpenBSD-Commit-ID: 4d9f256852af2a5b882b12cae9447f8f00f933ac -commit fb06f9b5a065dfbbef5916fc4accc03c0bf026dd -Author: dtucker@openbsd.org -Date: Tue Oct 31 04:15:40 2023 +0000 +commit 42ba34aba8708cf96583ff52975d95a8b47d990d +Author: Damien Miller +Date: Mon Jan 8 16:26:37 2024 +1100 - upstream: Don't try to use sudo inside sshd log wrapper. - - We still need to check if we're using sudo since we don't want to chown - unecessarily, as on some platforms this causes an error which pollutes - stderr. We also don't want to unnecessarily invoke sudo, since it's - running in the context of the proxycommand, on *other* platforms it - may not be able to authenticate, and if we're using SUDO then it should - already be privileged. - - OpenBSD-Regress-ID: 70d58df7503db699de579a9479300e5f3735f4ee + nite that recent OSX tun/tap is unsupported -commit fc3cc33e88c242c704781c6c48087838f1dcfa2a -Author: dtucker@openbsd.org -Date: Tue Oct 31 02:58:45 2023 +0000 +commit 690bc125f9a3b20e47745fa8f5b5e1fd5820247f +Author: Sevan Janiyan +Date: Wed Dec 27 04:57:49 2023 +0000 - upstream: Only try to chmod logfile if we have sudo. If we don't have - - sudo then we won't need to chmod. + README.platform: update tuntap url + +commit 6b8be2ccd7dd091808f86af52066b0c2ec30483a +Author: Rose <83477269+AtariDreams@users.noreply.github.com> +Date: Tue Dec 19 11:48:20 2023 -0500 + + Fix compilation error in ssh-pcks11-client.c - OpenBSD-Regress-ID: dbad2f5ece839658ef8af3376cb1fb1cabe2e324 + Compilation fails becaus of an undefined reference to helper_by_ec, + because we forgot the preprocessor conditional that excludes that function + from being called in unsupported configurations. -commit 3a506598fddd3f18f9095af3fe917f24cbdd32e0 +commit 219c8134157744886ee6ac5b8c1650abcd981f4c Author: djm@openbsd.org -Date: Mon Oct 30 23:00:25 2023 +0000 +Date: Mon Jan 8 05:11:18 2024 +0000 - upstream: move PKCS#11 setup code to test-exec.sh so it can be reused + upstream: Remove outdated note from PROTOCOL.mux - elsewhere + Port forward close by control master is already implemented + by `mux_master_process_close_fwd` in `mux.c` - OpenBSD-Regress-ID: 1d29e6be40f994419795d9e660a8d07f538f0acb + GHPR442 from bigb4ng + + OpenBSD-Commit-ID: ad0734fe5916d2dc7dd02b588906cea4df0482fb -commit f82fa227a52661c37404a6d33bbabf14fed05db0 +commit 4c3cf362631ccc4ffd422e572f075d5d594feace Author: djm@openbsd.org -Date: Mon Oct 30 17:32:00 2023 +0000 +Date: Mon Jan 8 05:05:15 2024 +0000 - upstream: tidy and refactor PKCS#11 setup code - - Replace the use of a perl script to delete the controlling TTY with a - SSH_ASKPASS script to directly load the PIN. + upstream: fix missing field in users-groups-by-id@openssh.com reply - Move PKCS#11 setup code to functions in anticipation of it being used - elsewhere in additional tests. + documentation - Reduce stdout spam + GHPR441 from TJ Saunders - OpenBSD-Regress-ID: 07705c31de30bab9601a95daf1ee6bef821dd262 - -commit 3cf698c6d4ffa9be1da55672a3519e2135a6366a -Author: Darren Tucker -Date: Mon Oct 30 21:35:03 2023 +1100 - - Add obsd74 test VM and retire obsd69 and obsd70. + OpenBSD-Commit-ID: ff5733ff6ef4cd24e0758ebeed557aa91184c674 -commit 3e21d58a09894acb38dc69ed615d101131f473d0 -Author: Darren Tucker -Date: Mon Oct 30 18:34:12 2023 +1100 +commit f64cede2a3c298b50a2659a8b53eb3ab2c0b8d23 +Author: djm@openbsd.org +Date: Mon Jan 8 04:10:03 2024 +0000 - Add OpenSSL 3.3.0 as a known dev version. + upstream: make kex-strict section more explicit about its intent: + + banning all messages not strictly required in KEX + + OpenBSD-Commit-ID: fc33a2d7f3b7013a7fb7500bdbaa8254ebc88116 -commit 917ba181c2cbdb250a443589ec732aa36fd51ffa -Author: Darren Tucker -Date: Mon Oct 30 13:32:03 2023 +1100 +commit 698fe6fd61cbcb8e3e0e874a561d4335a49fbde5 +Author: Damien Miller +Date: Mon Jan 8 14:46:19 2024 +1100 - Restore nopasswd sudo rule on Mac OS X. - - This seems to be missing from some (but not all) github runners, so - restore it if it seems to be missing. + update fuzzer example makefile to clang16 -commit c5698abad6d4ec98ca20bcaaabaeacd5e1ec3f4f -Author: Darren Tucker -Date: Mon Oct 30 13:26:52 2023 +1100 +commit fc332cb2d602c60983a8ec9f89412754ace06425 +Author: Damien Miller +Date: Mon Jan 8 14:45:49 2024 +1100 - Don't exit early when setting up on Mac OS X. + unbreak fuzzers - missing pkcs11_make_cert() - We probably need some of the other bits in there (specifically, setting - the perms on the home directory) so make it less of a special snowflake. + provide stub for use in fuzzer harness -commit 1d6a878ceba60b9dc14037dddc8f036070c0065f -Author: dtucker@openbsd.org -Date: Sun Oct 29 06:22:07 2023 +0000 +commit 9ea0a4524ae3276546248a926b6641b2fbc8421b +Author: Damien Miller +Date: Mon Jan 8 14:45:14 2024 +1100 - upstream: Only try to chown logfiles that exist to prevent spurious - - errors. + unbreak fuzzers for clang16 - OpenBSD-Regress-ID: f1b20a476734e885078c481f1324c9ea03af991e + getopt() needs a throw() attribute to compile, so supply one when compiling + things with C++ -commit e612376427a66f835e284f6b426d16d7c85301bc -Author: anton@openbsd.org -Date: Thu Oct 26 18:52:45 2023 +0000 +commit a72833d00788ef91100c643536ac08ada46440e1 +Author: djm@openbsd.org +Date: Mon Jan 8 00:34:33 2024 +0000 - upstream: make use of bsd.regress.mk in extra and interop targets; ok + upstream: remove ext-info-* in the kex.c code, not in callers; - dtucker@ + with/ok markus@ - OpenBSD-Regress-ID: 7ea21b5f6fc4506165093b2123d88d20ff13a4f0 + OpenBSD-Commit-ID: c06fe2d3a0605c517ff7d65e38ec7b2d1b0b2799 -commit ea0039173957d0edcd6469b9614dcedb44dcb4f9 -Author: dtucker@openbsd.org -Date: Thu Oct 26 12:44:07 2023 +0000 +commit 86f9e96d9bcfd1f5cd4bf8fb57a9b4c242df67df +Author: djm@openbsd.org +Date: Mon Jan 8 00:30:39 2024 +0000 - upstream: Skip conch interop tests when not enabled instead of fatal. + upstream: fix typo; spotted by Albert Chin - OpenBSD-Regress-ID: b0abf81c24ac6c21f367233663228ba16fa96a46 + OpenBSD-Commit-ID: 77140b520a43375b886e535eb8bd842a268f9368 -commit d220b9ed5494252b26b95f05be118472bc3ab5c0 +commit f0cbd26ec91bd49719fb3eea7ca44d2380318b9a Author: dtucker@openbsd.org -Date: Wed Oct 25 05:38:08 2023 +0000 +Date: Thu Jan 4 09:51:49 2024 +0000 upstream: Import regenerated moduli. - OpenBSD-Commit-ID: 95f5dd6107e8902b87dc5b005ef2b53f1ff378b8 + OpenBSD-Commit-ID: 5a636f6ca7f25bfe775df4952f7aac90a7fcbbee -commit a611e4db4009447a0151f31a44e235ca32ed4429 -Author: anton@openbsd.org -Date: Wed Oct 25 08:01:59 2023 +0000 +commit 64ddf776531ca4933832beecc8b7ebe1b937e081 +Author: jsg@openbsd.org +Date: Wed Dec 20 00:06:25 2023 +0000 - upstream: ssh conch interop tests requires a controlling terminal; - - ok dtucker@ + upstream: spelling; ok markus@ - OpenBSD-Regress-ID: cbf2701bc347c2f19d907f113779c666f1ecae4a + OpenBSD-Commit-ID: 9d01f2e9d59a999d5d42fc3b3efcf8dfb892e31b -commit da951b5e08c167acb5d6e2eec6f146502f5d6ed8 -Author: anton@openbsd.org -Date: Mon Oct 23 11:30:49 2023 +0000 +commit 503fbe9ea238a4637e8778208bde8c09bcf78475 +Author: jmc@openbsd.org +Date: Tue Dec 19 06:57:34 2023 +0000 - upstream: Use private key that is allowed by sshd defaults in conch - - interop tests. - - ok dtucker@ + upstream: sort -C, and add to usage(); ok djm - OpenBSD-Regress-ID: 3b7f65c8f409c328bcd4b704f60cb3d31746f045 + OpenBSD-Commit-ID: 80141b2a5d60c8593e3c65ca3c53c431262c812f -commit 1ca166dbb3c0ce632b98869cd955f69320aa6fe8 -Author: Darren Tucker -Date: Fri Oct 20 20:43:00 2023 +1100 - - Install Dropbear for interop testing. - -commit f993bb58351c5cb71e61aede63805a34a6d4daea -Author: Darren Tucker -Date: Fri Oct 20 20:39:03 2023 +1100 +commit 5413b1c7ff5a19c6a7d44bd98c5a83eb47819ba6 +Author: djm@openbsd.org +Date: Tue Dec 19 06:41:14 2023 +0000 - Resync PuTTY and Conch path handling with upstream. + upstream: correct section numbers; from Ed Maste - Now that configure finds these for us we can remove these -portable - specific changes. + OpenBSD-Commit-ID: e289576ee5651528404cb2fb68945556052cf83f -commit ff85becd5f5f06a76efa45d30fb204a3c5e5215c -Author: Darren Tucker -Date: Fri Oct 20 20:35:46 2023 +1100 +commit 430ef864645cff83a4022f5b050174c840e275da +Author: djm@openbsd.org +Date: Mon Dec 18 15:58:56 2023 +0000 - Have configure find PuTTY and Conch binaries. + upstream: match flag type (s/int/u_int) - This will let us remove some -portable specific changes from - test-exec.sh. + OpenBSD-Commit-ID: 9422289747c35ccb7b31d0e1888ccd5e74ad566a -commit c54a50359b9cecddbf3ffcdc26efcb3cd6071ec1 -Author: dtucker@openbsd.org -Date: Fri Oct 20 07:37:07 2023 +0000 +commit 1036d77b34a5fa15e56f516b81b9928006848cbd +Author: Damien Miller +Date: Fri Dec 22 17:56:26 2023 +1100 - upstream: Allow overriding the locations of the Dropbear binaries + better detection of broken -fzero-call-used-regs - similar to what we do for the PuTTY ones. + gcc 13.2.0 on ppc64le refuses to compile some function, including + cipher.c:compression_alg_list() with an error: - OpenBSD-Regress-ID: 7de0e00518fb0c8fdc5f243b7f82f523c936049c - -commit fbaa707d455a61d0aef8ae65e02a25bac5351e5c -Author: dtucker@openbsd.org -Date: Fri Oct 20 06:56:45 2023 +0000 - - upstream: Add interop test with Dropbear. + > sorry, unimplemented: argument ‘used’ is not supportedcw + > for ‘-fzero-call-used-regs’ on this target - Right now this is only dbclient not the Dropbear server since it won't - currently run as a ProxyCommand. + This extends the autoconf will-it-work test with a similarly- + structured function that seems to catch this. - OpenBSD-Regress-ID: 8cb898c414fcdb252ca6328896b0687acdaee496 + Spotted/tested by Colin Watson; bz3645 -commit c2003d0dbdcdb61ca336c3f90c5c2b4a09c8e73f -Author: Fabio Pedretti -Date: Mon Oct 16 11:59:53 2023 +0200 +commit 8241b9c0529228b4b86d88b1a6076fb9f97e4a99 +Author: Damien Miller +Date: Tue Dec 19 01:59:50 2023 +1100 - Update openssl-devel dependency in RPM spec. - - Since openssh 9.4p1, openssl >= 1.1.1 is required, so - build with --without-openssl elsewhere. - According to https://repology.org/project/openssl/versions - openssl 1.1.1 is available on fedora >= 29 and rhel >= 8. - Successfully build tested, installed and run on rhel 6 + crank versions -commit 064e09cd632721c7e6889904e07767443ee23821 -Author: Fabio Pedretti -Date: Mon Oct 16 10:13:06 2023 +0200 +commit 2f2c65cb5f1518a9c556d3e8efa27ea0ca305c6b +Author: Damien Miller +Date: Tue Dec 19 01:59:06 2023 +1100 - Remove reference of dropped sshd.pam.old file - - The file was removed in openssh 8.8 + depend -commit 62db354b696b378a164b6e478cb6b0171dcb0c3d -Author: dtucker@openbsd.org -Date: Mon Oct 16 08:40:00 2023 +0000 +commit e48cdee8e19059203b1aeeabec2350b8375fa61f +Author: djm@openbsd.org +Date: Mon Dec 18 14:50:08 2023 +0000 - upstream: Move declaration of "len" into the block where it's used. - - This lets us compile Portable with -Werror with when OpenSSL doesn't have - Ed25519 support. + upstream: regress test for agent PKCS#11-backed certificates - OpenBSD-Commit-ID: e02e4b4af351946562a7caee905da60eff16ba29 + OpenBSD-Regress-ID: 38f681777cb944a8cc3bf9d0ad62959a16764df9 -commit 6eee8c972d5901d10e80634a006b4e346b2c8c19 -Author: Damien Miller -Date: Fri Oct 13 15:15:05 2023 +1100 +commit 2f512f862df1d5f456f82a0334c9e8cc7208a2a1 +Author: djm@openbsd.org +Date: Mon Dec 18 14:49:39 2023 +0000 - run t-extra regress tests + upstream: regress test for constrained PKCS#11 keys - This exposes the t-extra regress tests (including agent-pkcs11.sh) as - a new extra-tests target in the top level Makefile and runs them by - default. ok dtucker@ + OpenBSD-Regress-ID: b2f26ae95d609d12257b43aef7cd7714c82618ff -commit 637624dbbac13f2bc3c8ec5b15c9d627d07f2935 -Author: Darren Tucker -Date: Thu Oct 12 22:01:23 2023 +1100 +commit cdddd66412ca5920ed4d3ebbfa6ace12dbd9b82f +Author: djm@openbsd.org +Date: Mon Dec 18 14:48:44 2023 +0000 - Don't use make -j2. + upstream: openssh-9.6 - While we have 2 cores available on github runners, not using it means - that the most recent log message is the actual failure, rather than - having to search back through the log for it. - -commit 971e0cfcfd52ef1d73cf5244074c306a60006e89 -Author: Darren Tucker -Date: Thu Oct 12 16:23:05 2023 +1100 - - Correct arg order for ED255519 AC_LINK_IFELSE test. + OpenBSD-Commit-ID: 21759837cf0e0092d9a2079f8fb562071c11016b -commit c616e64688b2a0c1b4daad69b056099be998d121 +commit 6d51feab157cedf1e7ef5b3f8781ca8ff9c4ab1b Author: djm@openbsd.org -Date: Thu Oct 12 03:51:08 2023 +0000 +Date: Mon Dec 18 14:48:08 2023 +0000 - upstream: typos and extra debug trace calls + upstream: ssh-agent: record failed session-bind attempts - OpenBSD-Regress-ID: 98a2a6b9333743274359e3c0f0e65cf919a591d1 - -commit c49a3fbf10162128c67c59562348de2041188974 -Author: djm@openbsd.org -Date: Thu Oct 12 03:48:53 2023 +0000 - - upstream: ensure logs are owned by correct user; feedback/ok + Record failed attempts to session-bind a connection and refuse signing + operations on that connection henceforth. - dtucker@ + Prevents a future situation where we add a new hostkey type that is not + recognised by an older ssh-agent, that consequently causes session-bind + to fail (this situation is only likely to arise when people mix ssh(1) + and ssh-agent(1) of different versions on the same host). Previously, + after such a failure the agent socket would be considered unbound and + not subject to restriction. - OpenBSD-Regress-ID: c3297af8f07717f1d400a5d34529962f1a76b5a3 + Spotted by Jann Horn + + OpenBSD-Commit-ID: b0fdd023e920aa4831413f640de4c5307b53552e -commit 5ec0ed79ac074c3437b25f6cba8b8cf21c8d4587 +commit 7ef3787c84b6b524501211b11a26c742f829af1a Author: djm@openbsd.org -Date: Thu Oct 12 03:36:32 2023 +0000 +Date: Mon Dec 18 14:47:44 2023 +0000 - upstream: 64 %-expansion keys ought to be enough for anybody; ok + upstream: ban user/hostnames with most shell metacharacters - dtucker (we just hit the previous limit in some cases) + This makes ssh(1) refuse user or host names provided on the + commandline that contain most shell metacharacters. - OpenBSD-Commit-ID: 84070f8001ec22ff5d669f836b62f206e08c5787 - -commit f59a94e22e46db2c23eddeb871aa9e8d93ab0016 -Author: djm@openbsd.org -Date: Thu Oct 12 02:48:43 2023 +0000 - - upstream: don't dereference NULL pointer when hashing jumphost + Some programs that invoke ssh(1) using untrusted data do not filter + metacharacters in arguments they supply. This could create + interactions with user-specified ProxyCommand and other directives + that allow shell injection attacks to occur. - OpenBSD-Commit-ID: 251c0263e1759a921341c7efe7f1d4c73e1c70f4 - -commit 281c79168edcc303abfd5bca983616eaa24c5f32 -Author: Damien Miller -Date: Thu Oct 12 13:20:01 2023 +1100 - - Solaris: prefer PRIV_XPOLICY to PRIV_LIMIT + It's a mistake to invoke ssh(1) with arbitrary untrusted arguments, + but getting this stuff right can be tricky, so this should prevent + most obvious ways of creating risky situations. It however is not + and cannot be perfect: ssh(1) has no practical way of interpreting + what shell quoting rules are in use and how they interact with the + user's specified ProxyCommand. - If the system support PRIV_XPOLICY and one is set, then don't - modify PRIV_LIMIT. bz2833, patch from Ron Jordan, ok dtucker@ + To allow configurations that use strange user or hostnames to + continue to work, this strictness is applied only to names coming + from the commandline. Names specified using User or Hostname + directives in ssh_config(5) are not affected. + + feedback/ok millert@ markus@ dtucker@ deraadt@ + + OpenBSD-Commit-ID: 3b487348b5964f3e77b6b4d3da4c3b439e94b2d9 -commit 98fc34df837f3a3b79d2a111b96fe8a39adcab55 +commit 0cb50eefdd29f0fec31d0e71cc4b004a5f704e67 Author: djm@openbsd.org -Date: Thu Oct 12 02:18:18 2023 +0000 +Date: Mon Dec 18 14:47:20 2023 +0000 - upstream: add %j token that expands to the configured ProxyJump + upstream: stricter handling of channel window limits - hostname (or the empty string if this option is not being used). bz3610, ok - dtucker + This makes ssh/sshd more strict in handling non-compliant peers that + send more data than the advertised channel window allows. Previously + the additional data would be silently discarded. This change will + cause ssh/sshd to terminate the connection if the channel window is + exceeded by more than a small grace allowance. - OpenBSD-Commit-ID: ce9983f7efe6a178db90dc5c1698df025df5e339 + ok markus@ + + OpenBSD-Commit-ID: 811e21b41831eba3dd7f67b3d409a438f20d3037 -commit 7f3180be8a85320b5d3221714b40c16e66881249 +commit 4448a2938abc76e6bd33ba09b2ec17a216dfb491 Author: djm@openbsd.org -Date: Thu Oct 12 02:15:53 2023 +0000 +Date: Mon Dec 18 14:46:56 2023 +0000 - upstream: release GSS OIDs only at end of authentication; bz2982, + upstream: Make it possible to load certs from PKCS#11 tokens - ok dtucker@ + Adds a protocol extension to allow grafting certificates supplied by + ssh-add to keys loaded from PKCS#11 tokens in the agent. - OpenBSD-Commit-ID: 0daa41e0525ae63cae4483519ecaa37ac485d94c + feedback/ok markus@ + + OpenBSD-Commit-ID: bb5433cd28ede2bc910996eb3c0b53e20f86037f -commit a612b93de5d86e955bfb6e24278f621118eea500 +commit 881d9c6af9da4257c69c327c4e2f1508b2fa754b Author: djm@openbsd.org -Date: Thu Oct 12 02:12:53 2023 +0000 +Date: Mon Dec 18 14:46:12 2023 +0000 - upstream: mask SIGINT/TERM/QUIT/HUP before checking quit_pending + upstream: apply destination constraints to all p11 keys - and use ppoll() to unmask them in the mainloop. Avoids race condition between - signaling ssh to exit and polling. bz3531; ok dtucker + Previously applied only to the first key returned from each token. - OpenBSD-Commit-ID: 5c14e1aabcddedb95cdf972283d9c0d5083229e7 + ok markus@ + + OpenBSD-Commit-ID: 36df3afb8eb94eec6b2541f063d0d164ef8b488d -commit 531b27a006116fe7aff325510aaa576f24844452 +commit a7ed931caeb68947d30af8a795f4108b6efad761 Author: djm@openbsd.org -Date: Wed Oct 11 23:23:58 2023 +0000 +Date: Mon Dec 18 14:45:49 2023 +0000 - upstream: sync usage() with ssh.1; spotted by kn@ + upstream: add "ext-info-in-auth@openssh.com" extension - OpenBSD-Commit-ID: 191a85639477dcb5fa1616d270d93b7c8d5c1dfd + This adds another transport protocol extension to allow a sshd to send + SSH2_MSG_EXT_INFO during user authentication, after the server has + learned the username that is being logged in to. + + This lets sshd to update the acceptable signature algoritms for public + key authentication, and allows these to be varied via sshd_config(5) + "Match" directives, which are evaluated after the server learns the + username being authenticated. + + Full details in the PROTOCOL file + + OpenBSD-Commit-ID: 1de7da7f2b6c32a46043d75fcd49b0cbb7db7779 -commit 64f7ca881b19be754425dca60d1590d306c9d1d0 +commit 1edb00c58f8a6875fad6a497aa2bacf37f9e6cd5 Author: djm@openbsd.org -Date: Wed Oct 11 23:14:33 2023 +0000 +Date: Mon Dec 18 14:45:17 2023 +0000 - upstream: ssh -Q does not make sense with other command-line options, + upstream: implement "strict key exchange" in ssh and sshd - so give it its own line in the manpage + This adds a protocol extension to improve the integrity of the SSH + transport protocol, particular in and around the initial key exchange + (KEX) phase. - OpenBSD-Commit-ID: 00a747f0655c12122bbb77c2796be0013c105361 + Full details of the extension are in the PROTOCOL file. + + with markus@ + + OpenBSD-Commit-ID: 2a66ac962f0a630d7945fee54004ed9e9c439f14 -commit a752a6c0e1001f93696d7025f0c867f0376e2ecf -Author: djm@openbsd.org -Date: Wed Oct 11 22:42:26 2023 +0000 +commit 59d691b886c79e70b1d1c4ab744e81fd176222fd +Author: Damien Miller +Date: Mon Dec 18 14:49:11 2023 +1100 - upstream: add ChannelTimeout support to the client, mirroring the + better detection of broken -fzero-call-used-regs - same option in the server. ok markus@ + Use OSSH_CHECK_CFLAG_LINK() for detection of these flags and extend + test program to exercise varargs, which seems to catch more stuff. - OpenBSD-Commit-ID: 55630b26f390ac063980cfe7ad8c54b03284ef02 + ok dtucker@ -commit 76e91e7238cdc5662bc818e2a48d466283840d23 +commit aa7b21708511a6d4aed3839fc9f6e82e849dd4a1 Author: djm@openbsd.org -Date: Wed Oct 11 22:41:05 2023 +0000 +Date: Wed Dec 13 03:28:19 2023 +0000 - upstream: add support for reading ED25519 private keys in PEM PKCS8 + upstream: when invoking KnownHostsCommand to determine the order of - format; ok markus@ tb@ + host key algorithms to request, ensure that the hostname passed to the + command is decorated with the port number for ports other than 22. - OpenBSD-Commit-ID: 01b85c91757e6b057e9b23b8a23f96415c3c7174 + This matches the behaviour of KnownHostsCommand when invoked to look + up the actual host key. + + bz3643, ok dtucker@ + + OpenBSD-Commit-ID: 5cfabc0b7c6c7ab473666df314f377b1f15420b1 -commit fc77c8e352c0f44125425c05265e3a00c183d78a -Author: djm@openbsd.org -Date: Wed Oct 11 06:40:54 2023 +0000 +commit 4086bd6652c0badccc020218a62190a7798fb72c +Author: markus@openbsd.org +Date: Fri Dec 8 09:18:39 2023 +0000 - upstream: mention "none" is a valid argument to IdentityFile; bz3080 + upstream: prevent leak in sshsig_match_principals; ok djm@ - OpenBSD-Commit-ID: 1b4fb590ef731099349a7d468b77f02b240ac926 + OpenBSD-Commit-ID: 594f61ad4819ff5c72dfe99ba666a17f0e1030ae -commit c97520d23d1fe53d30725a2af25d2dddd6f2faff +commit 19d3ee2f3adf7d9a606ff015c1e153744702c4c9 Author: djm@openbsd.org -Date: Wed Oct 11 05:42:08 2023 +0000 +Date: Wed Dec 6 21:06:48 2023 +0000 - upstream: in olde rcp/scp protocol mode, when rejecting a path from the + upstream: short circuit debug log processing early if we're not going - server as not matching the glob that the client sent, log (at debug level) - the received pathname as well as the list of possible expected paths expanded - from the glob. bz2966 + to log anything. From Kobe Housen - OpenBSD-Commit-ID: 0bd8db8a595334ca86bca8f36e23fc0395315765 + OpenBSD-Commit-ID: 2bcddd695872a1bef137cfff7823044dcded90ea -commit 208c2b719879805983398160791d6a1ef9c2c3fc -Author: djm@openbsd.org -Date: Wed Oct 11 04:46:29 2023 +0000 +commit 947affad4831df015c498c00c6351ea6f13895d5 +Author: Darren Tucker +Date: Mon Nov 27 09:37:28 2023 +1100 - upstream: s/%.100s/%s/ in SSH- banner construction as there's no - - reason to limit its size: the version string bring included is a compile time - constant going into an allocated banner string. - - OpenBSD-Commit-ID: 0ef73304b9bf3e534c60900cd84ab699f859ebcd + Add tests for OpenSSL 3.2.0 and 3.2 stable branch. -commit 0354790826b97c41bbd171a965574e159b58d83e -Author: tb@openbsd.org -Date: Tue Oct 10 06:49:54 2023 +0000 +commit 747dce36206675ca6b885010a835733df469351b +Author: Darren Tucker +Date: Sat Nov 25 09:03:38 2023 +1100 - upstream: Garbage collect cipher_get_keyiv_len() - - This is a compat20 leftover, unused since 2017. - - ok djm + Use non-zero arg in compiler test program. - OpenBSD-Commit-ID: 91fa5497c9dc6883064624ac27813a567883fdce + Now that we're running the test program, passing zero to the test function + can cause divide-by-zero exceptions which might show up in logs. -commit 8d29ee4115001a02641386ae394992c65ed279e0 -Author: djm@openbsd.org -Date: Tue Oct 10 03:57:45 2023 +0000 +commit 3d44a5c56585d1c351dbc006240a591b6da502b1 +Author: dtucker@openbsd.org +Date: Fri Nov 24 00:31:30 2023 +0000 - upstream: Reserve a range of "local extension" message numbers that + upstream: Plug mem leak of msg when processing a quit message. - OpenSSH promises not to use (comment change only) + Coverity CID#427852, ok djm@ - OpenBSD-Commit-ID: e61795b453d4892d2c99ce1039112c4a00250e03 + OpenBSD-Commit-ID: bf85362addbe2134c3d8c4b80f16601fbff823b7 -commit 90b0d73d63a706e85f6431f05a62d2ce1b476472 -Author: djm@openbsd.org -Date: Fri Oct 6 03:32:15 2023 +0000 +commit 1d7f9b6e297877bd00973e6dc5c0642dbefc3b5f +Author: dtucker@openbsd.org +Date: Thu Nov 23 03:37:05 2023 +0000 - upstream: typo in error message + upstream: Include existing mux path in debug message. - OpenBSD-Regress-ID: 6a8edf0dc39941298e3780b147b10c0a600b4fee + OpenBSD-Commit-ID: 1c3641be10c2f4fbad2a1b088a441d072e18bf16 -commit e84517f51532ec913d8fb01a8aab7307134774bb -Author: djm@openbsd.org -Date: Fri Oct 6 03:25:14 2023 +0000 +commit f29934066bd0e561a2e516b7e584fb92d2eedee0 +Author: Darren Tucker +Date: Thu Nov 23 19:41:27 2023 +1100 - upstream: Perform the softhsm2 setup as discrete steps rather than - - as a long shell pipeline. Makes it easier to figure out what has happened - when it breaks. + Add an Ubuntu 22.04 test VM. - OpenBSD-Regress-ID: b3f1292115fed65765d0a95414df16e27772d81c + This is the same version as Github's runners so most of the testing on + it is over there, but having a local VM makes debugging much easier. -commit cb54becff4d776238e0e9072943ba0872260535d -Author: claudio@openbsd.org -Date: Sun Sep 24 08:14:13 2023 +0000 +commit a93284a780cd3972afe5f89086b75d564ba157f3 +Author: Darren Tucker +Date: Thu Nov 23 19:36:22 2023 +1100 - upstream: REGRESS_FAIL_EARLY defaults to yes now. So no need to - - overload the value here anymore. OK tb@ bluhm@ + Add gcc-12 -Werror test on Ubuntu 22.04. - OpenBSD-Regress-ID: f063330f1bebbcd373100afccebc91a965b14496 + Explictly specify gcc-11 on Ubuntu 22.04 (it's the system compiler). -commit f01f5137ceba65baf34ceac5a298c12ac01b1fef -Author: jmc@openbsd.org -Date: Wed Oct 4 05:42:10 2023 +0000 +commit 670f5a647e98b6fd95ad64f789f87ee3274b481b +Author: Darren Tucker +Date: Thu Nov 23 19:34:57 2023 +1100 - upstream: spelling fix; + Check return value from write to prevent warning. - OpenBSD-Commit-ID: 493f95121567e5ab0d9dd1150f873b5535ca0195 + ... and since we're testing for flags with -Werror, this caused + configure to mis-detect compiler flags. -commit 80a2f64b8c1d27383cc83d182b73920d1e6a91f1 -Author: Damien Miller -Date: Wed Oct 4 15:34:10 2023 +1100 +commit cea007d691cfedfa07a5b8599f97ce0511f53fc9 +Author: Darren Tucker +Date: Wed Nov 22 21:18:55 2023 +1100 - crank version numbers + Run compiler test program when compiling natively. + + ok djm@ -commit f65f187b105d9b5c12fd750a211397d08c17c6d4 -Author: djm@openbsd.org -Date: Wed Oct 4 04:04:09 2023 +0000 +commit ee0d305828f13536c0a416bbf9c3e81039d9ea55 +Author: Darren Tucker +Date: Wed Nov 22 21:18:07 2023 +1100 - upstream: openssh-9.5 + Factor out compiler test program into a macro. - OpenBSD-Commit-ID: 5e0af680480bd3b6f5560cf840ad032d48fd6b16 + ok djm@ -commit ffe27e54a4bb18d5d3bbd3f4cc93a41b8d94dfd2 -Author: djm@openbsd.org -Date: Wed Oct 4 04:03:50 2023 +0000 +commit de304c76316b029df460673725a9104224b9959b +Author: Darren Tucker +Date: Wed Nov 22 08:55:36 2023 +1100 - upstream: add some cautionary text about % token expansion and - - shell metacharacters; based on report from vinci AT protonmail.ch - - OpenBSD-Commit-ID: aa1450a54fcee2f153ef70368d90edb1e7019113 + Add fbsd14 VM to test pool. -commit 60ec3d54fd1ebfe2dda75893fa1e870b8dffbb0d -Author: djm@openbsd.org -Date: Tue Oct 3 23:56:10 2023 +0000 +commit 99a2df5e1994cdcb44ba2187b5f34d0e9190be91 +Author: Darren Tucker +Date: Tue Nov 21 16:19:29 2023 +1100 - upstream: fix link to agent draft; spotted by Jann Horn + Expand -fzero-call-used-regs test to cover gcc 11. - OpenBSD-Commit-ID: ff5bda21a83ec013db683e282256a85201d2dc4b + It turns out that gcc also has some problems with -fzero-call-used-regs, + at least v11 on mips. Previously the test in OSSH_CHECK_CFLAG_COMPILE + was sufficient to catch it with "=all", but not sufficient for "=used". + Expand the testcase and include it in the other tests for good measure. + See bz#3629. ok djm@. -commit 12e2d4b13f6f63ce2de13cbfcc9e4d0d4b4ab231 -Author: Damien Miller -Date: Wed Oct 4 10:54:04 2023 +1100 +commit ff220d4010717f7bfbbc02a2400666fb9d24f250 +Author: Darren Tucker +Date: Tue Nov 21 14:04:34 2023 +1100 - use portable provider allowlist path in manpage + Stop using -fzero-call-used-regs=all - spotted by Jann Horn + ... since it seems to be problematic with several different versions of + clang. Only use -fzero-call-used-regs=used which is less + problematic, except with Apple's clang where we don't use it at all. + bz#3629, ok djm@ -commit 6c2c6ffde75df95fd838039850d3dd3d84956d87 -Author: deraadt@openbsd.org -Date: Tue Sep 19 20:37:07 2023 +0000 +commit 2a19e02f36b16f0f6cc915f7d1e60ead5e36303b +Author: Darren Tucker +Date: Tue Nov 21 14:02:18 2023 +1100 - upstream: typo; from Jim Spath + Allow for vendor prefix on clang version numbers. - OpenBSD-Commit-ID: 2f5fba917b5d4fcf93d9e0b0756c7f63189e228e + Correctly detects the version of OpenBSD's native clang, as well as + Apple's. Spotted tb@, ok djm@. -commit b6b49130a0089b297245ee39e769231d7c763014 +commit c52db0114826d73eff6cdbf205e9c1fa4f7ca6c6 Author: djm@openbsd.org -Date: Sun Sep 10 23:12:32 2023 +0000 +Date: Mon Nov 20 02:50:00 2023 +0000 - upstream: rename remote_glob() -> sftp_glob() to match other API + upstream: set errno=EAFNOSUPPORT when filtering addresses that don't - OpenBSD-Commit-ID: d9dfb3708d824ec02970a84d96cf5937e0887229 + match AddressFamily; yields slightly better error message if no address + matches. bz#3526 + + OpenBSD-Commit-ID: 29cea900ddd8b04a4d1968da5c4a893be2ebd9e6 -commit 21b79af6c8d2357c822c84cef3fbdb8001ed263b +commit 26f3f3bbc69196d908cad6558c8c7dc5beb8d74a Author: djm@openbsd.org -Date: Sun Sep 10 03:51:55 2023 +0000 +Date: Wed Nov 15 23:03:38 2023 +0000 - upstream: typo in comment + upstream: when connecting via socket (the default case), filter - OpenBSD-Commit-ID: 69285e0ce962a7c6b0ab5f17a293c60a0a360a18 - -commit 41232d25532b4d2ef6c5db62efc0cf50a79d26ca -Author: Darren Tucker -Date: Sun Sep 10 15:45:38 2023 +1000 - - Use zero-call-used-regs=used with Apple compilers. + addresses by AddressFamily if one was specified. Fixes the case where, if + CanonicalizeHostname is enabled, ssh may ignore AddressFamily. bz5326; ok + dtucker - Apple's versions of clang have version numbers that do not match the - corresponding upstream clang versions. Unfortunately, they do still - have the clang-15 zero-call-used-regs=all bug, so for now use the value - that doesn't result in segfaults. We could allowlist future versions - that are known to work. bz#3584 (and probably also our github CI - failures). + OpenBSD-Commit-ID: 6c7d7751f6cd055126b2b268a7b64dcafa447439 -commit 90ccc5918ea505bf156c31148b6b59a1bf5d6dc6 +commit 050c335c8da43741ed0df2570ebfbd5d1dfd0a31 Author: djm@openbsd.org -Date: Sun Sep 10 03:25:53 2023 +0000 +Date: Wed Nov 15 22:51:49 2023 +0000 - upstream: randomise keystroke obfuscation intervals and average + upstream: when deciding whether to enable keystroke timing - interval rate. ok dtucker@ + obfuscation, only consider enabling it when a channel with a tty is open. - OpenBSD-Commit-ID: 05f61d051ab418fcfc4857ff306e420037502382 + Avoids turning on the obfucation when X11 forwarding only is in use, + which slows it right down. Reported by Roger Marsh + + OpenBSD-Commit-ID: c292f738db410f729190f92de100c39ec931a4f1 -commit bd1b9e52f5fa94d87223c90905c5fdc1a7c32aa6 -Author: djm@openbsd.org -Date: Fri Sep 8 06:34:24 2023 +0000 +commit 676377ce67807a24e08a54cd60ec832946cc6cae +Author: tobhe@openbsd.org +Date: Mon Nov 13 09:18:19 2023 +0000 - upstream: fix sizeof(*ptr) instead sizeof(ptr) in realloc (pointer here + upstream: Make sure sftp_get_limits() only returns 0 if 'limits' - is char**, so harmless); spotted in CID 416964 + was initialized. This fixes a potential uninitialized use of 'limits' in + sftp_init() if sftp_get_limits() returned early because of an unexpected + message type. - OpenBSD-Commit-ID: c61caa4a5a667ee20bb1042098861e6c72c69002 + ok djm@ + + OpenBSD-Commit-ID: 1c177d7c3becc1d71bc8763eecf61873a1d3884c -commit c4f966482983e18601eec70a1563115de836616f -Author: djm@openbsd.org -Date: Fri Sep 8 06:10:57 2023 +0000 +commit 64e0600f23c6dec36c3875392ac95b8a9100c2d6 +Author: Darren Tucker +Date: Mon Nov 13 20:03:31 2023 +1100 - upstream: regress test recursive remote-remote directories copies where + Test current releases of LibreSSL and OpenSSL. - the directory contains a symlink to another directory. + Retire some of the older releases. + +commit c8ed7cc545879ac15f6ce428be4b29c35598bb2a +Author: dtucker@openbsd.org +Date: Wed Nov 1 02:08:38 2023 +0000 + + upstream: Specify ssh binary to use - also remove errant `set -x` that snuck in at some point + ... instead of relying on installed one. Fixes test failures in -portable + when running tests prior to installation. - OpenBSD-Regress-ID: 1c94a48bdbd633ef2285954ee257725cd7bc456f + OpenBSD-Regress-ID: b6d6ba71c23209c616efc805a60d9a445d53a685 -commit 5e1dfe5014ebc194641678303e22ab3bba15f4e5 -Author: djm@openbsd.org -Date: Fri Sep 8 06:10:02 2023 +0000 +commit e9fc2c48121cada1b4dcc5dadea5d447fe0093c3 +Author: Darren Tucker +Date: Wed Nov 1 13:11:31 2023 +1100 - upstream: fix recursive remote-remote copies of directories that - - contain symlinks to other directories (similar to bz3611) + Put long-running test targets on hipri runners. - OpenBSD-Commit-ID: 7e19d2ae09b4f941bf8eecc3955c9120171da37f + Some of the selfhosted test targets take a long time to run for various + reasons, so label them for "libvirt-hipri" runners so that they can + start immediately. This should reduce the time to complete all tests. -commit 7c0ce2bf98b303b6ad91493ee3247d96c18ba1f6 +commit 7ddf27668f0e21233f08c0ab2fe9ee3fdd6ab1e2 Author: djm@openbsd.org -Date: Fri Sep 8 05:50:57 2023 +0000 +Date: Wed Nov 1 00:29:46 2023 +0000 - upstream: regress test for recursive copies of directories containing + upstream: add some tests of forced commands overriding Subsystem - symlinks to other directories. bz3611, ok dtucker@ + directives - OpenBSD-Regress-ID: eaa4c29cc5cddff4e72a16bcce14aeb1ecfc94b9 + OpenBSD-Regress-ID: eb48610282f6371672bdf2a8b5d2aa33cfbd322b -commit 2de990142a83bf60ef694378b8598706bc654b08 -Author: djm@openbsd.org -Date: Fri Sep 8 05:56:13 2023 +0000 +commit fb06f9b5a065dfbbef5916fc4accc03c0bf026dd +Author: dtucker@openbsd.org +Date: Tue Oct 31 04:15:40 2023 +0000 - upstream: the sftp code was one of my first contributions to + upstream: Don't try to use sudo inside sshd log wrapper. - OpenSSH and it shows - the function names are terrible. + We still need to check if we're using sudo since we don't want to chown + unecessarily, as on some platforms this causes an error which pollutes + stderr. We also don't want to unnecessarily invoke sudo, since it's + running in the context of the proxycommand, on *other* platforms it + may not be able to authenticate, and if we're using SUDO then it should + already be privileged. - Rename do_blah() to sftp_blah() to make them less so. + OpenBSD-Regress-ID: 70d58df7503db699de579a9479300e5f3735f4ee + +commit fc3cc33e88c242c704781c6c48087838f1dcfa2a +Author: dtucker@openbsd.org +Date: Tue Oct 31 02:58:45 2023 +0000 + + upstream: Only try to chmod logfile if we have sudo. If we don't have - Completely mechanical except for sftp_stat() and sftp_lstat() which - change from returning a pointer to a static variable (error-prone) to - taking a pointer to a caller-provided receiver. + sudo then we won't need to chmod. - OpenBSD-Commit-ID: eb54d6a72d0bbba4d623e2175cf5cc4c75dc2ba4 + OpenBSD-Regress-ID: dbad2f5ece839658ef8af3376cb1fb1cabe2e324 -commit 249d8bd0472b53e3a2a0e138b4c030a31e83346a +commit 3a506598fddd3f18f9095af3fe917f24cbdd32e0 Author: djm@openbsd.org -Date: Fri Sep 8 05:50:12 2023 +0000 +Date: Mon Oct 30 23:00:25 2023 +0000 - upstream: fix scp in SFTP mode recursive upload and download of + upstream: move PKCS#11 setup code to test-exec.sh so it can be reused - directories that contain symlinks to other directories. In scp mode, the - links would be followed, but in SFTP mode they were not. bz3611, ok dtucker@ + elsewhere - OpenBSD-Commit-ID: 9760fda668eaa94a992250d7670dfbc62a45197c + OpenBSD-Regress-ID: 1d29e6be40f994419795d9e660a8d07f538f0acb -commit 0e1f4401c466fa4fdaea81b6dadc8dd1fc4cf0af +commit f82fa227a52661c37404a6d33bbabf14fed05db0 Author: djm@openbsd.org -Date: Wed Sep 6 23:36:09 2023 +0000 +Date: Mon Oct 30 17:32:00 2023 +0000 - upstream: regression test for override of subsystem in match blocks + upstream: tidy and refactor PKCS#11 setup code - OpenBSD-Regress-ID: 5f8135da3bfda71067084c048d717b0e8793e87c - -commit 8a1450c62035e834d8a79a5d0d1c904236f9dcfe -Author: djm@openbsd.org -Date: Wed Sep 6 23:35:35 2023 +0000 - - upstream: allow override of Sybsystem directives in sshd Match + Replace the use of a perl script to delete the controlling TTY with a + SSH_ASKPASS script to directly load the PIN. - blocks + Move PKCS#11 setup code to functions in anticipation of it being used + elsewhere in additional tests. - OpenBSD-Commit-ID: 3911d18a826a2d2fe7e4519075cf3e57af439722 + Reduce stdout spam + + OpenBSD-Regress-ID: 07705c31de30bab9601a95daf1ee6bef821dd262 -commit 6e52826e2a74d077147a82ead8d4fbd5b54f4e3b -Author: djm@openbsd.org -Date: Wed Sep 6 23:26:37 2023 +0000 +commit 3cf698c6d4ffa9be1da55672a3519e2135a6366a +Author: Darren Tucker +Date: Mon Oct 30 21:35:03 2023 +1100 - upstream: allocate the subsystems array as necessary and remove the - - fixed limit of subsystems. Saves a few kb of memory in the server and makes - it more like the other options. - - OpenBSD-Commit-ID: e683dfca6bdcbc3cc339bb6c6517c0c4736a547f + Add obsd74 test VM and retire obsd69 and obsd70. -commit e19069c9fac4c111d6496b19c7f7db43b4f07b4f -Author: djm@openbsd.org -Date: Wed Sep 6 23:23:53 2023 +0000 +commit 3e21d58a09894acb38dc69ed615d101131f473d0 +Author: Darren Tucker +Date: Mon Oct 30 18:34:12 2023 +1100 - upstream: preserve quoting of Subsystem commands and arguments. - - This may change behaviour of exotic configurations, but the most common - subsystem configuration (sftp-server) is unlikely to be affected. - - OpenBSD-Commit-ID: 8ffa296aeca981de5b0945242ce75aa6dee479bf + Add OpenSSL 3.3.0 as a known dev version. -commit 52dfe3c72d98503d8b7c6f64fc7e19d685636c0b -Author: djm@openbsd.org -Date: Wed Sep 6 23:21:36 2023 +0000 +commit 917ba181c2cbdb250a443589ec732aa36fd51ffa +Author: Darren Tucker +Date: Mon Oct 30 13:32:03 2023 +1100 - upstream: downgrade duplicate Subsystem directives from being a - - fatal error to being a debug message to match behaviour with just about all - other directives. + Restore nopasswd sudo rule on Mac OS X. - OpenBSD-Commit-ID: fc90ed2cc0c18d4eb8e33d2c5e98d25f282588ce + This seems to be missing from some (but not all) github runners, so + restore it if it seems to be missing. -commit 1ee0a16e07b6f0847ff463d7b5221c4bf1876e25 -Author: djm@openbsd.org -Date: Wed Sep 6 23:18:15 2023 +0000 +commit c5698abad6d4ec98ca20bcaaabaeacd5e1ec3f4f +Author: Darren Tucker +Date: Mon Oct 30 13:26:52 2023 +1100 - upstream: handle cr+lf (instead of just cr) in sshsig signature - - files + Don't exit early when setting up on Mac OS X. - OpenBSD-Commit-ID: 647460a212b916540016d066568816507375fd7f + We probably need some of the other bits in there (specifically, setting + the perms on the home directory) so make it less of a special snowflake. -commit e1c284d60a928bcdd60bc575c6f9604663502770 -Author: job@openbsd.org -Date: Mon Sep 4 10:29:58 2023 +0000 +commit 1d6a878ceba60b9dc14037dddc8f036070c0065f +Author: dtucker@openbsd.org +Date: Sun Oct 29 06:22:07 2023 +0000 - upstream: Generate Ed25519 keys when invoked without arguments - - Ed25519 public keys are very convenient due to their small size. - OpenSSH has supported Ed25519 since version 6.5 (January 2014). + upstream: Only try to chown logfiles that exist to prevent spurious - OK djm@ markus@ sthen@ deraadt@ + errors. - OpenBSD-Commit-ID: f498beaad19c8cdcc357381a60df4a9c69858b3f + OpenBSD-Regress-ID: f1b20a476734e885078c481f1324c9ea03af991e -commit 694150ad92765574ff82a18f4e86322bd3231e68 -Author: djm@openbsd.org -Date: Mon Sep 4 00:08:14 2023 +0000 +commit e612376427a66f835e284f6b426d16d7c85301bc +Author: anton@openbsd.org +Date: Thu Oct 26 18:52:45 2023 +0000 - upstream: trigger keystroke timing obfucation only if the channels - - layer enqueud some data in the last poll() cycle; this avoids triggering the - obfuscatior for non-channels data like ClientAlive probes and also fixes a - related problem were the obfucations would be triggered on fully quiescent - connections. + upstream: make use of bsd.regress.mk in extra and interop targets; ok - Based on / tested by naddy@ + dtucker@ - OpenBSD-Commit-ID: d98f32dc62d7663ff4660e4556e184032a0db123 + OpenBSD-Regress-ID: 7ea21b5f6fc4506165093b2123d88d20ff13a4f0 -commit b5fd97896b59a3a46245cf438cc8b16c795d9f74 -Author: djm@openbsd.org -Date: Mon Sep 4 00:04:02 2023 +0000 +commit ea0039173957d0edcd6469b9614dcedb44dcb4f9 +Author: dtucker@openbsd.org +Date: Thu Oct 26 12:44:07 2023 +0000 - upstream: avoid bogus "obfuscate_keystroke_timing: stopping ..." + upstream: Skip conch interop tests when not enabled instead of fatal. - debug messages when keystroke timing obfuscation was never started; spotted - by naddy@ + OpenBSD-Regress-ID: b0abf81c24ac6c21f367233663228ba16fa96a46 + +commit d220b9ed5494252b26b95f05be118472bc3ab5c0 +Author: dtucker@openbsd.org +Date: Wed Oct 25 05:38:08 2023 +0000 + + upstream: Import regenerated moduli. - OpenBSD-Commit-ID: 5c270d35f7d2974db5c1646e9c64188f9393be31 + OpenBSD-Commit-ID: 95f5dd6107e8902b87dc5b005ef2b53f1ff378b8 -commit ccf7d913db34e49b7a6db1b8331bd402004c840d -Author: djm@openbsd.org -Date: Mon Sep 4 00:01:46 2023 +0000 +commit a611e4db4009447a0151f31a44e235ca32ed4429 +Author: anton@openbsd.org +Date: Wed Oct 25 08:01:59 2023 +0000 - upstream: make channel_output_poll() return a flag indicating + upstream: ssh conch interop tests requires a controlling terminal; - whether channel data was enqueued. Will be used to improve keystroke timing - obfuscation. Problem spotted by / tested by naddy@ + ok dtucker@ - OpenBSD-Commit-ID: f9776c7b0065ba7c3bbe50431fd3b629f44314d0 + OpenBSD-Regress-ID: cbf2701bc347c2f19d907f113779c666f1ecae4a -commit 43254b326ac6e2131dbd750f9464dc62c14bd5a7 -Author: djm@openbsd.org -Date: Sun Sep 3 23:59:32 2023 +0000 +commit da951b5e08c167acb5d6e2eec6f146502f5d6ed8 +Author: anton@openbsd.org +Date: Mon Oct 23 11:30:49 2023 +0000 - upstream: set interactive mode for ControlPersist sessions if they + upstream: Use private key that is allowed by sshd defaults in conch - originally requested a tty; enables keystroke timing obfuscation for most - ControlPersist sessions. Spotted by naddy@ + interop tests. - OpenBSD-Commit-ID: 72783a26254202e2f3f41a2818a19956fe49a772 + ok dtucker@ + + OpenBSD-Regress-ID: 3b7f65c8f409c328bcd4b704f60cb3d31746f045 -commit ff3eda68ceb2e2bb8f48e3faceb96076c3e85c20 +commit 1ca166dbb3c0ce632b98869cd955f69320aa6fe8 Author: Darren Tucker -Date: Thu Aug 31 23:02:35 2023 +1000 +Date: Fri Oct 20 20:43:00 2023 +1100 - Set LLONG_MAX for C89 test. - - If we don't have LLONG_MAX, configure will figure out that it can get it - by setting -std=gnu99, at which point we won't be testing C89 any more. - To avoid this, feed it in via CFLAGS. + Install Dropbear for interop testing. -commit f98031773db361424d59e3301aa92aacf423d920 -Author: djm@openbsd.org -Date: Tue Aug 29 02:50:10 2023 +0000 +commit f993bb58351c5cb71e61aede63805a34a6d4daea +Author: Darren Tucker +Date: Fri Oct 20 20:39:03 2023 +1100 - upstream: make PerSourceMaxStartups first-match-wins; ok dtucker@ + Resync PuTTY and Conch path handling with upstream. - OpenBSD-Commit-ID: dac0c24cb709e3c595b8b4f422a0355dc5a3b4e7 + Now that configure finds these for us we can remove these -portable + specific changes. -commit cfa66857db90cd908de131e0041a50ffc17c7df8 -Author: djm@openbsd.org -Date: Mon Aug 28 09:52:09 2023 +0000 +commit ff85becd5f5f06a76efa45d30fb204a3c5e5215c +Author: Darren Tucker +Date: Fri Oct 20 20:35:46 2023 +1100 - upstream: descriptive text shouldn't be under .Cm + Have configure find PuTTY and Conch binaries. - OpenBSD-Commit-ID: b1afaeb456a52bc8a58f4f9f8b2f9fa8f6bf651b + This will let us remove some -portable specific changes from + test-exec.sh. -commit 01dbf3d46651b7d6ddf5e45d233839bbfffaeaec -Author: djm@openbsd.org -Date: Mon Aug 28 09:48:11 2023 +0000 +commit c54a50359b9cecddbf3ffcdc26efcb3cd6071ec1 +Author: dtucker@openbsd.org +Date: Fri Oct 20 07:37:07 2023 +0000 - upstream: limit artificial login delay to a reasonable maximum (5s) + upstream: Allow overriding the locations of the Dropbear binaries - and don't delay at all for the "none" authentication mechanism. Patch by - Dmitry Belyavskiy in bz3602 with polish/ok dtucker@ + similar to what we do for the PuTTY ones. - OpenBSD-Commit-ID: 85b364676dd84cf1de0e98fc2fbdcb1a844ce515 + OpenBSD-Regress-ID: 7de0e00518fb0c8fdc5f243b7f82f523c936049c -commit 528da5b9d7c5da01ed7a73ff21c722e1b5326006 -Author: jmc@openbsd.org -Date: Mon Aug 28 05:32:28 2023 +0000 +commit fbaa707d455a61d0aef8ae65e02a25bac5351e5c +Author: dtucker@openbsd.org +Date: Fri Oct 20 06:56:45 2023 +0000 - upstream: add spacing for punctuation when macro args; + upstream: Add interop test with Dropbear. - OpenBSD-Commit-ID: e80343c16ce0420b2aec98701527cf90371bd0db + Right now this is only dbclient not the Dropbear server since it won't + currently run as a ProxyCommand. + + OpenBSD-Regress-ID: 8cb898c414fcdb252ca6328896b0687acdaee496 -commit 3867361ca691d0956ef7d5fb8181cf554a91d84a -Author: djm@openbsd.org -Date: Mon Aug 28 04:06:52 2023 +0000 +commit c2003d0dbdcdb61ca336c3f90c5c2b4a09c8e73f +Author: Fabio Pedretti +Date: Mon Oct 16 11:59:53 2023 +0200 - upstream: explicit long long type in timing calculations (doesn't - - matter, since the range is pre-clamped) + Update openssl-devel dependency in RPM spec. - OpenBSD-Commit-ID: f786ed902d04a5b8ecc581d068fea1a79aa772de + Since openssh 9.4p1, openssl >= 1.1.1 is required, so + build with --without-openssl elsewhere. + According to https://repology.org/project/openssl/versions + openssl 1.1.1 is available on fedora >= 29 and rhel >= 8. + Successfully build tested, installed and run on rhel 6 -commit 7603ba71264e7fa938325c37eca993e2fa61272f -Author: djm@openbsd.org -Date: Mon Aug 28 03:31:16 2023 +0000 +commit 064e09cd632721c7e6889904e07767443ee23821 +Author: Fabio Pedretti +Date: Mon Oct 16 10:13:06 2023 +0200 - upstream: Add keystroke timing obfuscation to the client. - - This attempts to hide inter-keystroke timings by sending interactive - traffic at fixed intervals (default: every 20ms) when there is only a - small amount of data being sent. It also sends fake "chaff" keystrokes - for a random interval after the last real keystroke. These are - controlled by a new ssh_config ObscureKeystrokeTiming keyword/ - - feedback/ok markus@ + Remove reference of dropped sshd.pam.old file - OpenBSD-Commit-ID: 02231ddd4f442212820976068c34a36e3c1b15be + The file was removed in openssh 8.8 -commit dce6d80d2ed3cad2c516082682d5f6ca877ef714 -Author: djm@openbsd.org -Date: Mon Aug 28 03:28:43 2023 +0000 +commit 62db354b696b378a164b6e478cb6b0171dcb0c3d +Author: dtucker@openbsd.org +Date: Mon Oct 16 08:40:00 2023 +0000 - upstream: Introduce a transport-level ping facility + upstream: Move declaration of "len" into the block where it's used. - This adds a pair of SSH transport protocol messages SSH2_MSG_PING/PONG - to implement a ping capability. These messages use numbers in the "local - extensions" number space and are advertised using a "ping@openssh.com" - ext-info message with a string version number of "0". - - ok markus@ - - OpenBSD-Commit-ID: b6b3c4cb2084c62f85a8dc67cf74954015eb547f - -commit d2d247938b38b928f8a6e1a47a330c5584d3a358 -Author: tobhe@openbsd.org -Date: Mon Aug 21 21:16:18 2023 +0000 - - upstream: Log errors in kex_exchange_identification() with level - - verbose instead of error to reduce preauth log spam. All of those get logged - with a more generic error message by sshpkt_fatal(). - - feedback from sthen@ - ok djm@ + This lets us compile Portable with -Werror with when OpenSSL doesn't have + Ed25519 support. - OpenBSD-Commit-ID: bd47dab4695b134a44c379f0e9a39eed33047809 + OpenBSD-Commit-ID: e02e4b4af351946562a7caee905da60eff16ba29 -commit 9d7193a8359639801193ad661a59d1ae4dc3d302 -Author: djm@openbsd.org -Date: Mon Aug 21 04:59:54 2023 +0000 +commit 6eee8c972d5901d10e80634a006b4e346b2c8c19 +Author: Damien Miller +Date: Fri Oct 13 15:15:05 2023 +1100 - upstream: correct math for ClientAliveInterval that caused the - - probes to be sent less frequently than configured; from Dawid Majchrzak + run t-extra regress tests - OpenBSD-Commit-ID: 641153e7c05117436ddfc58267aa267ca8b80038 + This exposes the t-extra regress tests (including agent-pkcs11.sh) as + a new extra-tests target in the top level Makefile and runs them by + default. ok dtucker@ -commit 3c6ab63b383b0b7630da175941e01de9db32a256 +commit 637624dbbac13f2bc3c8ec5b15c9d627d07f2935 Author: Darren Tucker -Date: Fri Aug 25 14:48:02 2023 +1000 +Date: Thu Oct 12 22:01:23 2023 +1100 - Include Portable version in sshd version string. + Don't use make -j2. - bz#3608, ok djm@ + While we have 2 cores available on github runners, not using it means + that the most recent log message is the actual failure, rather than + having to search back through the log for it. -commit 17fa6cd10a26e193bb6f65d21264d2fe553bcd87 +commit 971e0cfcfd52ef1d73cf5244074c306a60006e89 Author: Darren Tucker -Date: Mon Aug 21 19:47:58 2023 +1000 +Date: Thu Oct 12 16:23:05 2023 +1100 - obsd-arm64 host is real hardware... - - so put in the correct config location. + Correct arg order for ED255519 AC_LINK_IFELSE test. -commit 598ca75c85acaaacee5ef954251e489cc20d7be9 -Author: Darren Tucker -Date: Mon Aug 21 18:38:36 2023 +1000 +commit c616e64688b2a0c1b4daad69b056099be998d121 +Author: djm@openbsd.org +Date: Thu Oct 12 03:51:08 2023 +0000 - Add OpenBSD ARM64 test host. + upstream: typos and extra debug trace calls + + OpenBSD-Regress-ID: 98a2a6b9333743274359e3c0f0e65cf919a591d1 -commit 1acac79bfbe207e8db639e8043524962037c8feb -Author: Darren Tucker -Date: Mon Aug 21 18:05:26 2023 +1000 +commit c49a3fbf10162128c67c59562348de2041188974 +Author: djm@openbsd.org +Date: Thu Oct 12 03:48:53 2023 +0000 - Add test for zlib development branch. + upstream: ensure logs are owned by correct user; feedback/ok + + dtucker@ + + OpenBSD-Regress-ID: c3297af8f07717f1d400a5d34529962f1a76b5a3 -commit 84efebf352fc700e9040c8065707c63caedd36a3 +commit 5ec0ed79ac074c3437b25f6cba8b8cf21c8d4587 Author: djm@openbsd.org -Date: Mon Aug 21 04:36:46 2023 +0000 +Date: Thu Oct 12 03:36:32 2023 +0000 - upstream: want stdlib.h for free(3) + upstream: 64 %-expansion keys ought to be enough for anybody; ok - OpenBSD-Commit-ID: 743af3c6e3ce5e6cecd051668f0327a01f44af29 + dtucker (we just hit the previous limit in some cases) + + OpenBSD-Commit-ID: 84070f8001ec22ff5d669f836b62f206e08c5787 -commit cb4ed12ffc332d1f72d054ed92655b5f1c38f621 -Author: Darren Tucker -Date: Sat Aug 19 07:39:08 2023 +1000 +commit f59a94e22e46db2c23eddeb871aa9e8d93ab0016 +Author: djm@openbsd.org +Date: Thu Oct 12 02:48:43 2023 +0000 - Fix zlib version check for 1.3 and future version. + upstream: don't dereference NULL pointer when hashing jumphost - bz#3604. + OpenBSD-Commit-ID: 251c0263e1759a921341c7efe7f1d4c73e1c70f4 -commit 25b75e21f16bccdaa472ea1889b293c9bd51a87b -Author: Darren Tucker -Date: Mon Aug 14 11:10:08 2023 +1000 +commit 281c79168edcc303abfd5bca983616eaa24c5f32 +Author: Damien Miller +Date: Thu Oct 12 13:20:01 2023 +1100 - Add 9.4 branch to CI status page. + Solaris: prefer PRIV_XPOLICY to PRIV_LIMIT + + If the system support PRIV_XPOLICY and one is set, then don't + modify PRIV_LIMIT. bz2833, patch from Ron Jordan, ok dtucker@ -commit 803e22eabd3ba75485eedd8b7b44d6ace79f2052 +commit 98fc34df837f3a3b79d2a111b96fe8a39adcab55 Author: djm@openbsd.org -Date: Fri Aug 18 01:37:41 2023 +0000 +Date: Thu Oct 12 02:18:18 2023 +0000 - upstream: fix regression in OpenSSH 9.4 (mux.c r1.99) that caused + upstream: add %j token that expands to the configured ProxyJump - multiplexed sessions to ignore SIGINT under some circumstances. Reported by / - feedback naddy@, ok dtucker@ + hostname (or the empty string if this option is not being used). bz3610, ok + dtucker - OpenBSD-Commit-ID: 4d5c6c894664f50149153fd4764f21f43e7d7e5a + OpenBSD-Commit-ID: ce9983f7efe6a178db90dc5c1698df025df5e339 -commit e706bca324a70f68dadfd0ec69edfdd486eed23a +commit 7f3180be8a85320b5d3221714b40c16e66881249 Author: djm@openbsd.org -Date: Wed Aug 16 16:14:11 2023 +0000 +Date: Thu Oct 12 02:15:53 2023 +0000 - upstream: defence-in-depth MaxAuthTries check in monitor; ok markus + upstream: release GSS OIDs only at end of authentication; bz2982, - OpenBSD-Commit-ID: 65a4225dc708e2dae71315adf93677edace46c21 + ok dtucker@ + + OpenBSD-Commit-ID: 0daa41e0525ae63cae4483519ecaa37ac485d94c -commit d1ab7eb90474df656d5e9935bae6df0bd000d343 +commit a612b93de5d86e955bfb6e24278f621118eea500 Author: djm@openbsd.org -Date: Mon Aug 14 03:37:00 2023 +0000 +Date: Thu Oct 12 02:12:53 2023 +0000 - upstream: add message number of SSH2_MSG_NEWCOMPRESS defined in RFC8308 + upstream: mask SIGINT/TERM/QUIT/HUP before checking quit_pending - OpenBSD-Commit-ID: 6c984171c96ed67effd7b5092f3d3975d55d6028 - -commit fa8da52934cb7dff6f660a143276bdb28bb9bbe1 -Author: Darren Tucker -Date: Sun Aug 13 15:01:27 2023 +1000 - - Add obsd72 and obsd73 test targets. + and use ppoll() to unmask them in the mainloop. Avoids race condition between + signaling ssh to exit and polling. bz3531; ok dtucker + + OpenBSD-Commit-ID: 5c14e1aabcddedb95cdf972283d9c0d5083229e7 -commit f9f18006678d2eac8b0c5a5dddf17ab7c50d1e9f +commit 531b27a006116fe7aff325510aaa576f24844452 Author: djm@openbsd.org -Date: Thu Aug 10 23:05:48 2023 +0000 +Date: Wed Oct 11 23:23:58 2023 +0000 - upstream: better debug logging of sessions' exit status + upstream: sync usage() with ssh.1; spotted by kn@ - OpenBSD-Commit-ID: 82237567fcd4098797cbdd17efa6ade08e1a36b0 + OpenBSD-Commit-ID: 191a85639477dcb5fa1616d270d93b7c8d5c1dfd -commit a8c57bcb077f0cfdffcf9f23866bf73bb93e185c -Author: naddy@openbsd.org -Date: Thu Aug 10 14:37:32 2023 +0000 +commit 64f7ca881b19be754425dca60d1590d306c9d1d0 +Author: djm@openbsd.org +Date: Wed Oct 11 23:14:33 2023 +0000 - upstream: drop a wayward comma, ok jmc@ + upstream: ssh -Q does not make sense with other command-line options, - OpenBSD-Commit-ID: 5c11fbb9592a29b37bbf36f66df50db9d38182c6 - -commit e962f9b318a238db1becc53c2bf79dd3a49095b4 -Author: Damien Miller -Date: Thu Aug 10 11:10:22 2023 +1000 - - depend - -commit 0fcb60bf83130dfa428bc4422b3a3ac20fb528af -Author: Damien Miller -Date: Thu Aug 10 11:05:42 2023 +1000 - - update versions in RPM specs - -commit d0cee4298491314f09afa1c4383a66d913150b26 -Author: Damien Miller -Date: Thu Aug 10 11:05:14 2023 +1000 - - update version in README + so give it its own line in the manpage + + OpenBSD-Commit-ID: 00a747f0655c12122bbb77c2796be0013c105361 -commit 78b4dc6684f4d35943b46b24ee645edfdb9974f5 +commit a752a6c0e1001f93696d7025f0c867f0376e2ecf Author: djm@openbsd.org -Date: Thu Aug 10 01:01:07 2023 +0000 +Date: Wed Oct 11 22:42:26 2023 +0000 - upstream: openssh-9.4 + upstream: add ChannelTimeout support to the client, mirroring the - OpenBSD-Commit-ID: 71fc1e01a4c4ea061b252bd399cda7be757e6e35 - -commit 58ca4f0aa8c4306ac0a629c9a85fb1efaf4ff092 -Author: Darren Tucker -Date: Thu Aug 10 11:30:24 2023 +1000 - - Only include unistd.h once. - -commit 3961ed02dc578517a9d2535128cff5c3a5460d28 -Author: Damien Miller -Date: Thu Aug 10 09:08:49 2023 +1000 - - wrap poll.h include in HAVE_POLL_H + same option in the server. ok markus@ + + OpenBSD-Commit-ID: 55630b26f390ac063980cfe7ad8c54b03284ef02 -commit e535fbe2af893046c28adfcd787c1fdbae36a24a -Author: dtucker@openbsd.org -Date: Fri Aug 4 06:32:40 2023 +0000 +commit 76e91e7238cdc5662bc818e2a48d466283840d23 +Author: djm@openbsd.org +Date: Wed Oct 11 22:41:05 2023 +0000 - upstream: Apply ConnectTimeout to multiplexing local socket + upstream: add support for reading ED25519 private keys in PEM PKCS8 - connections. If the multiplex socket exists but the connection times out, - ssh will fall back to a direct connection the same way it would if the socket - did not exist at all. ok djm@ + format; ok markus@ tb@ - OpenBSD-Commit-ID: 2fbe1a36d4a24b98531b2d298a6557c8285dc1b4 + OpenBSD-Commit-ID: 01b85c91757e6b057e9b23b8a23f96415c3c7174 -commit 9d92e7b24848fcc605945f7c2e3460c7c31832ce -Author: Darren Tucker -Date: Thu Aug 3 19:35:33 2023 +1000 +commit fc77c8e352c0f44125425c05265e3a00c183d78a +Author: djm@openbsd.org +Date: Wed Oct 11 06:40:54 2023 +0000 - Fix RNG seeding for OpenSSL w/out self seeding. + upstream: mention "none" is a valid argument to IdentityFile; bz3080 - When sshd is built with an OpenSSL that does not self-seed, it would - fail in the preauth privsep process while handling a new connection. - Sanity checked by djm@ + OpenBSD-Commit-ID: 1b4fb590ef731099349a7d468b77f02b240ac926 -commit f70010d9b0b3e7e95de8aa0b961e1d74362cfb5d +commit c97520d23d1fe53d30725a2af25d2dddd6f2faff Author: djm@openbsd.org -Date: Wed Aug 2 23:04:38 2023 +0000 +Date: Wed Oct 11 05:42:08 2023 +0000 - upstream: CheckHostIP has defaulted to 'no' for a while; make the + upstream: in olde rcp/scp protocol mode, when rejecting a path from the - commented- out config option match. From Ed Maste + server as not matching the glob that the client sent, log (at debug level) + the received pathname as well as the list of possible expected paths expanded + from the glob. bz2966 - OpenBSD-Commit-ID: e66e934c45a9077cb1d51fc4f8d3df4505db58d9 + OpenBSD-Commit-ID: 0bd8db8a595334ca86bca8f36e23fc0395315765 -commit c88a8788f9865d02b986d00405b9f0be65ad0b5a -Author: dtucker@openbsd.org -Date: Tue Aug 1 08:15:04 2023 +0000 +commit 208c2b719879805983398160791d6a1ef9c2c3fc +Author: djm@openbsd.org +Date: Wed Oct 11 04:46:29 2023 +0000 - upstream: remove unnecessary if statement. + upstream: s/%.100s/%s/ in SSH- banner construction as there's no - github PR#422 from eyalasulin999, ok djm@ + reason to limit its size: the version string bring included is a compile time + constant going into an allocated banner string. - OpenBSD-Commit-ID: 2b6b0dde4407e039f58f86c8d2ff584a8205ea55 + OpenBSD-Commit-ID: 0ef73304b9bf3e534c60900cd84ab699f859ebcd -commit 77b8b865cd5a8c79a47605c0c5b2bacf4692c4d5 -Author: jmc@openbsd.org -Date: Fri Jul 28 05:42:36 2023 +0000 +commit 0354790826b97c41bbd171a965574e159b58d83e +Author: tb@openbsd.org +Date: Tue Oct 10 06:49:54 2023 +0000 - upstream: %C is a callable macro in mdoc(7) - - so, as we do for %D, escape it; + upstream: Garbage collect cipher_get_keyiv_len() - OpenBSD-Commit-ID: 538cfcddbbb59dc3a8739604319491dcb8e0c0c9 - -commit e0f91aa9c2fbfc951e9ced7e1305455fc614d3f2 -Author: djm@openbsd.org -Date: Fri Jul 28 05:33:15 2023 +0000 - - upstream: don't need to start a command here; use ssh -N instead. + This is a compat20 leftover, unused since 2017. - Fixes failure on cygwin spotted by Darren + ok djm - OpenBSD-Regress-ID: ff678a8cc69160a3b862733d935ec4a383f93cfb + OpenBSD-Commit-ID: 91fa5497c9dc6883064624ac27813a567883fdce -commit f446a44f30bc680e0d026a4204844b02646c1c2d +commit 8d29ee4115001a02641386ae394992c65ed279e0 Author: djm@openbsd.org -Date: Wed May 17 05:52:01 2023 +0000 +Date: Tue Oct 10 03:57:45 2023 +0000 - upstream: add LTESTS_FROM variable to allow skipping of tests up to + upstream: Reserve a range of "local extension" message numbers that - a specific point. e.g. "make LTESTS_FROM=t-sftp" will only run the sftp.sh - test and subsequent ones. ok dtucker@ + OpenSSH promises not to use (comment change only) - OpenBSD-Regress-ID: 07f653de731def074b29293db946042706fcead3 + OpenBSD-Commit-ID: e61795b453d4892d2c99ce1039112c4a00250e03 -commit 8eb8899d612440a9b608bee7f916081d3d0b7812 +commit 90b0d73d63a706e85f6431f05a62d2ce1b476472 Author: djm@openbsd.org -Date: Fri May 12 06:37:42 2023 +0000 +Date: Fri Oct 6 03:32:15 2023 +0000 - upstream: test ChrootDirectory in Match block + upstream: typo in error message - OpenBSD-Regress-ID: a6150262f39065939f025e546af2a346ffe674c1 + OpenBSD-Regress-ID: 6a8edf0dc39941298e3780b147b10c0a600b4fee -commit e43f43d3f19516222e9a143468ea0dc1b3ab67b6 +commit e84517f51532ec913d8fb01a8aab7307134774bb Author: djm@openbsd.org -Date: Fri May 12 06:36:27 2023 +0000 +Date: Fri Oct 6 03:25:14 2023 +0000 - upstream: better error messages + upstream: Perform the softhsm2 setup as discrete steps rather than - OpenBSD-Regress-ID: 55e4186604e80259496d841e690ea2090981bc7a + as a long shell pipeline. Makes it easier to figure out what has happened + when it breaks. + + OpenBSD-Regress-ID: b3f1292115fed65765d0a95414df16e27772d81c -commit 6958f00acf3b9e0b3730f7287e69996bcf3ceda4 -Author: djm@openbsd.org -Date: Thu Jul 27 22:26:49 2023 +0000 +commit cb54becff4d776238e0e9072943ba0872260535d +Author: claudio@openbsd.org +Date: Sun Sep 24 08:14:13 2023 +0000 - upstream: don't incorrectly truncate logged strings retrieved from + upstream: REGRESS_FAIL_EARLY defaults to yes now. So no need to - PKCS#11 modules; based on GHPR406 by Jakub Jelen; ok markus + overload the value here anymore. OK tb@ bluhm@ - OpenBSD-Commit-ID: 7ed1082f23a13b38c373008f856fd301d50012f9 + OpenBSD-Regress-ID: f063330f1bebbcd373100afccebc91a965b14496 -commit d1ffde6b55170cd4b9a72bfd9a3f17508e6cf714 -Author: djm@openbsd.org -Date: Thu Jul 27 22:25:17 2023 +0000 +commit f01f5137ceba65baf34ceac5a298c12ac01b1fef +Author: jmc@openbsd.org +Date: Wed Oct 4 05:42:10 2023 +0000 - upstream: make sshd_config AuthorizedPrincipalsCommand and - - AuthorizedKeysCommand accept the %D (routing domain) and a new %C (connection - address/port 4-tuple) as expansion sequences; ok markus + upstream: spelling fix; - OpenBSD-Commit-ID: ee9a48bf1a74c4ace71b69de69cfdaa2a7388565 + OpenBSD-Commit-ID: 493f95121567e5ab0d9dd1150f873b5535ca0195 -commit 999a2886ca1844a7a74b905e5f2c8c701f9838cd +commit 80a2f64b8c1d27383cc83d182b73920d1e6a91f1 +Author: Damien Miller +Date: Wed Oct 4 15:34:10 2023 +1100 + + crank version numbers + +commit f65f187b105d9b5c12fd750a211397d08c17c6d4 Author: djm@openbsd.org -Date: Thu Jul 27 22:23:05 2023 +0000 +Date: Wed Oct 4 04:04:09 2023 +0000 - upstream: increase default KDF work-factor for OpenSSH format - - private keys from 16 to 24; { feedback ok } x { deraadt markus } + upstream: openssh-9.5 - OpenBSD-Commit-ID: a3afb1383f8ff0a49613d449f02395d9e8d4a9ec + OpenBSD-Commit-ID: 5e0af680480bd3b6f5560cf840ad032d48fd6b16 -commit 0fa803a1dd1c7b546c166000e23a869cf6c4ec10 -Author: Darren Tucker -Date: Thu Jul 27 02:25:09 2023 +1000 +commit ffe27e54a4bb18d5d3bbd3f4cc93a41b8d94dfd2 +Author: djm@openbsd.org +Date: Wed Oct 4 04:03:50 2023 +0000 - Prefer OpenSSL's SHA256 in sk-dummy.so - - Previously sk-dummy.so used libc's (or compat's) SHA256 since it may be - built without OpenSSL. In many cases, however, including both libc's - and OpenSSL's headers together caused conflicting definitions. + upstream: add some cautionary text about % token expansion and - We tried working around this (on OpenSSL <1.1 you could define - OPENSSL_NO_SHA, NetBSD had USE_LIBC_SHA2, various #define hacks) with - varying levels of success. Since OpenSSL >=1.1 removed OPENSSL_NO_SHA - and including most OpenSSL headers would bring sha.h in, even if it - wasn't used directly this was a constant hassle. + shell metacharacters; based on report from vinci AT protonmail.ch - Admit defeat and use OpenSSL's SHA256 unless we aren't using OpenSSL at - all. ok djm@ - -commit 36cdb5dbf55c99c0faad06066f56a7c341258c1f -Author: Darren Tucker -Date: Thu Jul 27 10:29:44 2023 +1000 - - Retire dfly58 test VM. Add dfly64. + OpenBSD-Commit-ID: aa1450a54fcee2f153ef70368d90edb1e7019113 -commit 2d34205dab08ede9b0676efa57647fc49e6decbe +commit 60ec3d54fd1ebfe2dda75893fa1e870b8dffbb0d Author: djm@openbsd.org -Date: Wed Jul 26 23:06:00 2023 +0000 +Date: Tue Oct 3 23:56:10 2023 +0000 - upstream: make ssh -f (fork after authentication) work properly in - - multiplexed cases (inc. ControlPersist). bz3589 bz3589 Based on patches by - Peter Chubb; ok dtucker@ + upstream: fix link to agent draft; spotted by Jann Horn - OpenBSD-Commit-ID: a7a2976a54b93e6767dc846b85647e6ec26969ac + OpenBSD-Commit-ID: ff5bda21a83ec013db683e282256a85201d2dc4b -commit 076aeda86a7ee9be8fd2f0181ec7b9729a6ceb37 -Author: naddy@openbsd.org -Date: Sun Jul 23 20:04:45 2023 +0000 +commit 12e2d4b13f6f63ce2de13cbfcc9e4d0d4b4ab231 +Author: Damien Miller +Date: Wed Oct 4 10:54:04 2023 +1100 - upstream: man page typos; ok jmc@ + use portable provider allowlist path in manpage - OpenBSD-Commit-ID: e6ddfef94b0eb867ad88abe07cedc8ed581c07f0 + spotted by Jann Horn -commit 135e7d5fe31f700e6dfc61ce914970c5ee7175ba -Author: jmc@openbsd.org -Date: Thu Jul 20 05:43:39 2023 +0000 +commit 6c2c6ffde75df95fd838039850d3dd3d84956d87 +Author: deraadt@openbsd.org +Date: Tue Sep 19 20:37:07 2023 +0000 - upstream: tweak the allow-remote-pkcs11 text; + upstream: typo; from Jim Spath - OpenBSD-Commit-ID: bc965460a89edf76865b7279b45cf9cbdebd558a + OpenBSD-Commit-ID: 2f5fba917b5d4fcf93d9e0b0756c7f63189e228e -commit 5f83342b61d1f76c141de608ed2bd293990416bd -Author: Darren Tucker -Date: Tue Jul 25 13:00:22 2023 +1000 +commit b6b49130a0089b297245ee39e769231d7c763014 +Author: djm@openbsd.org +Date: Sun Sep 10 23:12:32 2023 +0000 - Handle a couple more OpenSSL no-ecc cases. + upstream: rename remote_glob() -> sftp_glob() to match other API - ok djm@ + OpenBSD-Commit-ID: d9dfb3708d824ec02970a84d96cf5937e0887229 -commit edc2ef4e418e514c99701451fae4428ec04ce538 -Author: Damien Miller -Date: Thu Jul 20 12:53:44 2023 +1000 +commit 21b79af6c8d2357c822c84cef3fbdb8001ed263b +Author: djm@openbsd.org +Date: Sun Sep 10 03:51:55 2023 +0000 - depend + upstream: typo in comment + + OpenBSD-Commit-ID: 69285e0ce962a7c6b0ab5f17a293c60a0a360a18 -commit 51fda734e0d3c2df256fc03e8b060c4305be6e59 -Author: Damien Miller -Date: Thu Jul 20 12:53:21 2023 +1000 +commit 41232d25532b4d2ef6c5db62efc0cf50a79d26ca +Author: Darren Tucker +Date: Sun Sep 10 15:45:38 2023 +1000 - Bring back OPENSSL_HAS_ECC to ssh-pkcs11-client + Use zero-call-used-regs=used with Apple compilers. + + Apple's versions of clang have version numbers that do not match the + corresponding upstream clang versions. Unfortunately, they do still + have the clang-15 zero-call-used-regs=all bug, so for now use the value + that doesn't result in segfaults. We could allowlist future versions + that are known to work. bz#3584 (and probably also our github CI + failures). -commit 099cdf59ce1e72f55d421c8445bf6321b3004755 +commit 90ccc5918ea505bf156c31148b6b59a1bf5d6dc6 Author: djm@openbsd.org -Date: Wed Jul 19 14:03:45 2023 +0000 +Date: Sun Sep 10 03:25:53 2023 +0000 - upstream: Separate ssh-pkcs11-helpers for each p11 module - - Make ssh-pkcs11-client start an independent helper for each provider, - providing better isolation between modules and reliability if a single - module misbehaves. - - This also implements reference counting of PKCS#11-hosted keys, - allowing ssh-pkcs11-helper subprocesses to be automatically reaped - when no remaining keys reference them. This fixes some bugs we have - that make PKCS11 keys unusable after they have been deleted, e.g. - https://bugzilla.mindrot.org/show_bug.cgi?id=3125 + upstream: randomise keystroke obfuscation intervals and average - ok markus@ + interval rate. ok dtucker@ - OpenBSD-Commit-ID: 0ce188b14fe271ab0568f4500070d96c5657244e + OpenBSD-Commit-ID: 05f61d051ab418fcfc4857ff306e420037502382 -commit 29ef8a04866ca14688d5b7fed7b8b9deab851f77 +commit bd1b9e52f5fa94d87223c90905c5fdc1a7c32aa6 Author: djm@openbsd.org -Date: Wed Jul 19 14:02:27 2023 +0000 +Date: Fri Sep 8 06:34:24 2023 +0000 - upstream: Ensure FIDO/PKCS11 libraries contain expected symbols - - This checks via nlist(3) that candidate provider libraries contain one - of the symbols that we will require prior to dlopen(), which can cause - a number of side effects, including execution of constructors. + upstream: fix sizeof(*ptr) instead sizeof(ptr) in realloc (pointer here - Feedback deraadt; ok markus + is char**, so harmless); spotted in CID 416964 - OpenBSD-Commit-ID: 1508a5fbd74e329e69a55b56c453c292029aefbe + OpenBSD-Commit-ID: c61caa4a5a667ee20bb1042098861e6c72c69002 -commit 1f2731f5d7a8f8a8385c6031667ed29072c0d92a +commit c4f966482983e18601eec70a1563115de836616f Author: djm@openbsd.org -Date: Wed Jul 19 13:56:33 2023 +0000 +Date: Fri Sep 8 06:10:57 2023 +0000 - upstream: Disallow remote addition of FIDO/PKCS11 provider + upstream: regress test recursive remote-remote directories copies where - libraries to ssh-agent by default. + the directory contains a symlink to another directory. - The old behaviour of allowing remote clients from loading providers - can be restored using `ssh-agent -O allow-remote-pkcs11`. + also remove errant `set -x` that snuck in at some point - Detection of local/remote clients requires a ssh(1) that supports - the `session-bind@openssh.com` extension. Forwarding access to a - ssh-agent socket using non-OpenSSH tools may circumvent this control. + OpenBSD-Regress-ID: 1c94a48bdbd633ef2285954ee257725cd7bc456f + +commit 5e1dfe5014ebc194641678303e22ab3bba15f4e5 +Author: djm@openbsd.org +Date: Fri Sep 8 06:10:02 2023 +0000 + + upstream: fix recursive remote-remote copies of directories that - ok markus@ + contain symlinks to other directories (similar to bz3611) - OpenBSD-Commit-ID: 4c2bdf79b214ae7e60cc8c39a45501344fa7bd7c + OpenBSD-Commit-ID: 7e19d2ae09b4f941bf8eecc3955c9120171da37f -commit 892506b13654301f69f9545f48213fc210e5c5cc +commit 7c0ce2bf98b303b6ad91493ee3247d96c18ba1f6 Author: djm@openbsd.org -Date: Wed Jul 19 13:55:53 2023 +0000 +Date: Fri Sep 8 05:50:57 2023 +0000 - upstream: terminate process if requested to load a PKCS#11 provider + upstream: regress test for recursive copies of directories containing - that isn't a PKCS#11 provider; from / ok markus@ + symlinks to other directories. bz3611, ok dtucker@ - OpenBSD-Commit-ID: 39532cf18b115881bb4cfaee32084497aadfa05c + OpenBSD-Regress-ID: eaa4c29cc5cddff4e72a16bcce14aeb1ecfc94b9 -commit f3f56df8ec476b2de6cbdbdfdb77a2a61087829d -Author: Damien Miller -Date: Wed Jul 19 12:07:18 2023 +1000 - - agent_fuzz doesn't want stdint.h conditionalised - -commit 750911fd31d307a767cc86e3bfa90bbbb77b1a25 -Author: Damien Miller -Date: Tue Jul 18 15:41:12 2023 +1000 +commit 2de990142a83bf60ef694378b8598706bc654b08 +Author: djm@openbsd.org +Date: Fri Sep 8 05:56:13 2023 +0000 - conditionalise stdint.h inclusion on HAVE_STDINT_H + upstream: the sftp code was one of my first contributions to - fixes build on AIX5 at least + OpenSSH and it shows - the function names are terrible. + + Rename do_blah() to sftp_blah() to make them less so. + + Completely mechanical except for sftp_stat() and sftp_lstat() which + change from returning a pointer to a static variable (error-prone) to + taking a pointer to a caller-provided receiver. + + OpenBSD-Commit-ID: eb54d6a72d0bbba4d623e2175cf5cc4c75dc2ba4 -commit ff047504fa6e008c4092f8929881816b8993bea0 -Author: Damien Miller -Date: Tue Jul 18 15:30:45 2023 +1000 +commit 249d8bd0472b53e3a2a0e138b4c030a31e83346a +Author: djm@openbsd.org +Date: Fri Sep 8 05:50:12 2023 +0000 - conditionalise match localnetwork on ifaddrs.h + upstream: fix scp in SFTP mode recursive upload and download of - Fixes build breakage on platforms that lack getifaddrs() + directories that contain symlinks to other directories. In scp mode, the + links would be followed, but in SFTP mode they were not. bz3611, ok dtucker@ + + OpenBSD-Commit-ID: 9760fda668eaa94a992250d7670dfbc62a45197c -commit b87b03282e466ca2927954ce93f5dbf0bfdc68f6 +commit 0e1f4401c466fa4fdaea81b6dadc8dd1fc4cf0af Author: djm@openbsd.org -Date: Mon Jul 17 06:16:33 2023 +0000 +Date: Wed Sep 6 23:36:09 2023 +0000 - upstream: missing match localnetwork negation check + upstream: regression test for override of subsystem in match blocks - OpenBSD-Commit-ID: 9a08ed8dae27d3f38cf280f1b28d4e0ff41a737a + OpenBSD-Regress-ID: 5f8135da3bfda71067084c048d717b0e8793e87c -commit 6d6e185ba29ef4274164b77eab4dc763907f8821 -Author: jmc@openbsd.org -Date: Mon Jul 17 05:41:53 2023 +0000 +commit 8a1450c62035e834d8a79a5d0d1c904236f9dcfe +Author: djm@openbsd.org +Date: Wed Sep 6 23:35:35 2023 +0000 - upstream: - add -P to usage() - sync the arg name to -J in usage() + upstream: allow override of Sybsystem directives in sshd Match - with that in ssh.1 - reformat usage() to match what "man ssh" does on 80width + blocks - OpenBSD-Commit-ID: 5235dd7aa42e5bf90ae54579d519f92fc107036e + OpenBSD-Commit-ID: 3911d18a826a2d2fe7e4519075cf3e57af439722 -commit f1a9898283a0638667b587ee4a950afd61ab51b0 -Author: jmc@openbsd.org -Date: Mon Jul 17 05:38:10 2023 +0000 +commit 6e52826e2a74d077147a82ead8d4fbd5b54f4e3b +Author: djm@openbsd.org +Date: Wed Sep 6 23:26:37 2023 +0000 - upstream: -P before -p in SYNOPSIS; + upstream: allocate the subsystems array as necessary and remove the - OpenBSD-Commit-ID: 535f5257c779e26c6a662a038d241b017f8cab7c - -commit eef4d7e873568e1c84c36bb4034e2c3378250a61 -Author: jsg@openbsd.org -Date: Mon Jul 17 05:36:14 2023 +0000 - - upstream: configuation -> configuration + fixed limit of subsystems. Saves a few kb of memory in the server and makes + it more like the other options. - OpenBSD-Commit-ID: 4776ced33b780f1db0b2902faec99312f26a726b + OpenBSD-Commit-ID: e683dfca6bdcbc3cc339bb6c6517c0c4736a547f -commit dc1dbe94cf6532bd546a3373ad436404f8850e5f +commit e19069c9fac4c111d6496b19c7f7db43b4f07b4f Author: djm@openbsd.org -Date: Mon Jul 17 05:26:38 2023 +0000 +Date: Wed Sep 6 23:23:53 2023 +0000 - upstream: move other RCSIDs to before their respective license blocks + upstream: preserve quoting of Subsystem commands and arguments. - too no code change + This may change behaviour of exotic configurations, but the most common + subsystem configuration (sftp-server) is unlikely to be affected. - OpenBSD-Commit-ID: ef5bf46b57726e4260a63b032b0b5ac3b4fe9cd4 + OpenBSD-Commit-ID: 8ffa296aeca981de5b0945242ce75aa6dee479bf -commit ebe11044681caff78834ca6b78311ad19c1860b8 +commit 52dfe3c72d98503d8b7c6f64fc7e19d685636c0b Author: djm@openbsd.org -Date: Mon Jul 17 05:22:30 2023 +0000 +Date: Wed Sep 6 23:21:36 2023 +0000 - upstream: Move RCSID to before license block and away from #includes, + upstream: downgrade duplicate Subsystem directives from being a - where it caused merge conflict in -portable for each commit :( + fatal error to being a debug message to match behaviour with just about all + other directives. - OpenBSD-Commit-ID: 756ebac963df3245258b962e88150ebab9d5fc20 + OpenBSD-Commit-ID: fc90ed2cc0c18d4eb8e33d2c5e98d25f282588ce -commit 05c08e5f628de3ecf6f7ea20947735bcfa3201e0 +commit 1ee0a16e07b6f0847ff463d7b5221c4bf1876e25 Author: djm@openbsd.org -Date: Mon Jul 17 05:20:15 2023 +0000 +Date: Wed Sep 6 23:18:15 2023 +0000 - upstream: return SSH_ERR_KRL_BAD_MAGIC when a KRL doesn't contain a + upstream: handle cr+lf (instead of just cr) in sshsig signature - valid magic number and not SSH_ERR_MESSAGE_INCOMPLETE; the former is needed - to fall back to text revocation lists in some cases; fixes t-cert-hostkey. + files - OpenBSD-Commit-ID: 5c670a6c0f027e99b7774ef29f18ba088549c7e1 - -commit c6fad2c3d19b74f0bd0af1ef040fc74f3a1d9ebb -Author: Damien Miller -Date: Mon Jul 17 14:56:14 2023 +1000 - - avoid AF_LINK on platforms that don't define it + OpenBSD-Commit-ID: 647460a212b916540016d066568816507375fd7f -commit 919bc3d3b712c920de1ae6be5ac6561c98886d7e -Author: djm@openbsd.org -Date: Mon Jul 17 04:08:31 2023 +0000 +commit e1c284d60a928bcdd60bc575c6f9604663502770 +Author: job@openbsd.org +Date: Mon Sep 4 10:29:58 2023 +0000 - upstream: Add support for configuration tags to ssh(1). + upstream: Generate Ed25519 keys when invoked without arguments - This adds a ssh_config(5) "Tag" directive and corresponding - "Match tag" predicate that may be used to select blocks of - configuration similar to the pf.conf(5) keywords of the same - name. + Ed25519 public keys are very convenient due to their small size. + OpenSSH has supported Ed25519 since version 6.5 (January 2014). - ok markus + OK djm@ markus@ sthen@ deraadt@ - OpenBSD-Commit-ID: dc08358e70e702b59ac3e591827e5a96141b06a3 + OpenBSD-Commit-ID: f498beaad19c8cdcc357381a60df4a9c69858b3f -commit 3071d85a47061c1bdaf11a0ac233b501ecba862c +commit 694150ad92765574ff82a18f4e86322bd3231e68 Author: djm@openbsd.org -Date: Mon Jul 17 04:04:36 2023 +0000 +Date: Mon Sep 4 00:08:14 2023 +0000 - upstream: add a "match localnetwork" predicate. + upstream: trigger keystroke timing obfucation only if the channels - This allows matching on the addresses of available network interfaces - and may be used to vary the effective client configuration based on - network location (e.g. to use a ProxyJump when not on a particular - network). + layer enqueud some data in the last poll() cycle; this avoids triggering the + obfuscatior for non-channels data like ClientAlive probes and also fixes a + related problem were the obfucations would be triggered on fully quiescent + connections. - ok markus@ + Based on / tested by naddy@ - OpenBSD-Commit-ID: cffb6ff9a3803abfc52b5cad0aa190c5e424c139 + OpenBSD-Commit-ID: d98f32dc62d7663ff4660e4556e184032a0db123 -commit beec17bb311365b75a0a5941418d4b96df7d7888 +commit b5fd97896b59a3a46245cf438cc8b16c795d9f74 Author: djm@openbsd.org -Date: Mon Jul 17 04:01:10 2023 +0000 +Date: Mon Sep 4 00:04:02 2023 +0000 - upstream: remove vestigal support for KRL signatures - - When the KRL format was originally defined, it included support for - signing of KRL objects. However, the code to sign KRLs and verify KRL - signatues was never completed in OpenSSH. - - Now, some years later, we have SSHSIG support in ssh-keygen that is - more general, well tested and actually works. So this removes the - semi-finished KRL signing/verification support from OpenSSH and - refactors the remaining code to realise the benefit - primarily, we - no longer need to perform multiple parsing passes over KRL objects. + upstream: avoid bogus "obfuscate_keystroke_timing: stopping ..." - ok markus@ + debug messages when keystroke timing obfuscation was never started; spotted + by naddy@ - OpenBSD-Commit-ID: 517437bab3d8180f695c775410c052340e038804 + OpenBSD-Commit-ID: 5c270d35f7d2974db5c1646e9c64188f9393be31 -commit 449566f64c21b4578d5c0c431badd0328adc53ed +commit ccf7d913db34e49b7a6db1b8331bd402004c840d Author: djm@openbsd.org -Date: Mon Jul 17 03:57:21 2023 +0000 +Date: Mon Sep 4 00:01:46 2023 +0000 - upstream: Support for KRL extensions. - - This defines wire formats for optional KRL extensions and implements - parsing of the new submessages. No actual extensions are supported at - this point. + upstream: make channel_output_poll() return a flag indicating - ok markus + whether channel data was enqueued. Will be used to improve keystroke timing + obfuscation. Problem spotted by / tested by naddy@ - OpenBSD-Commit-ID: ae2fcde9a22a9ba7f765bd4f36b3f5901d8c3fa7 + OpenBSD-Commit-ID: f9776c7b0065ba7c3bbe50431fd3b629f44314d0 -commit 18ea857770e84825a3a6238bb37f54864487b59f -Author: dtucker@openbsd.org -Date: Fri Jul 14 07:44:21 2023 +0000 +commit 43254b326ac6e2131dbd750f9464dc62c14bd5a7 +Author: djm@openbsd.org +Date: Sun Sep 3 23:59:32 2023 +0000 - upstream: Include stdint.h for SIZE_MAX. Fixes OPENSSL=no build. + upstream: set interactive mode for ControlPersist sessions if they - OpenBSD-Commit-ID: e7c31034a5434f2ead3579b13a7892960651e6b0 + originally requested a tty; enables keystroke timing obfuscation for most + ControlPersist sessions. Spotted by naddy@ + + OpenBSD-Commit-ID: 72783a26254202e2f3f41a2818a19956fe49a772 -commit 20b768fcd13effe0f2d3619661b6c8592c773553 +commit ff3eda68ceb2e2bb8f48e3faceb96076c3e85c20 Author: Darren Tucker -Date: Fri Jul 14 17:07:32 2023 +1000 - - Fix typo in declaration of nmesg. - -commit 4b94d09542e36ebde2eb9ad89bc68431609932de -Author: Damien Miller -Date: Fri Jul 14 15:34:47 2023 +1000 +Date: Thu Aug 31 23:02:35 2023 +1000 - portable-specific int overflow defence-in-depth + Set LLONG_MAX for C89 test. - These too are unreachable, but we want the code to be safe regardless of - context. Reported by Yair Mizrahi @ JFrog + If we don't have LLONG_MAX, configure will figure out that it can get it + by setting -std=gnu99, at which point we won't be testing C89 any more. + To avoid this, feed it in via CFLAGS. -commit 2ee48adb9fc8692e8d6ac679dcc9f35e89ad68f0 +commit f98031773db361424d59e3301aa92aacf423d920 Author: djm@openbsd.org -Date: Fri Jul 14 05:31:44 2023 +0000 +Date: Tue Aug 29 02:50:10 2023 +0000 - upstream: add defence-in-depth checks for some unreachable integer - - overflows reported by Yair Mizrahi @ JFrog; feedback/ok millert@ + upstream: make PerSourceMaxStartups first-match-wins; ok dtucker@ - OpenBSD-Commit-ID: 52af085f4e7ef9f9d8423d8c1840a6a88bda90bd + OpenBSD-Commit-ID: dac0c24cb709e3c595b8b4f422a0355dc5a3b4e7 -commit 4b43bc358ae6f6b19a973679246dc5172f6ac41b +commit cfa66857db90cd908de131e0041a50ffc17c7df8 Author: djm@openbsd.org -Date: Mon Jul 10 04:51:26 2023 +0000 +Date: Mon Aug 28 09:52:09 2023 +0000 - upstream: misplaced debug message + upstream: descriptive text shouldn't be under .Cm - OpenBSD-Commit-ID: d0f12af0a5067a756aa707bc39a83fa6f58bf7e5 + OpenBSD-Commit-ID: b1afaeb456a52bc8a58f4f9f8b2f9fa8f6bf651b -commit 8c7203bcee4c4f98a22487b4631fe068b992099b -Author: Damien Miller -Date: Wed Jul 12 11:41:19 2023 +1000 +commit 01dbf3d46651b7d6ddf5e45d233839bbfffaeaec +Author: djm@openbsd.org +Date: Mon Aug 28 09:48:11 2023 +0000 - replace deprecate selinux matchpathcon function + upstream: limit artificial login delay to a reasonable maximum (5s) - This function is apparently deprecated. Documentation on what is the - supposed replacement is is non-existent, so this follows the approach - glibc used https://sourceware.org/git/?p=glibc.git;a=patch;h=f278835f59 + and don't delay at all for the "none" authentication mechanism. Patch by + Dmitry Belyavskiy in bz3602 with polish/ok dtucker@ - ok dtucker@ + OpenBSD-Commit-ID: 85b364676dd84cf1de0e98fc2fbdcb1a844ce515 -commit 7e8800f5d701efffa39ccb63ca1e095ea777c31a -Author: dtucker@openbsd.org -Date: Thu Jul 6 22:17:59 2023 +0000 +commit 528da5b9d7c5da01ed7a73ff21c722e1b5326006 +Author: jmc@openbsd.org +Date: Mon Aug 28 05:32:28 2023 +0000 - upstream: minleft and maxsign are u_int so cast appropriately. Prompted - - by github PR#410, ok deraadt. + upstream: add spacing for punctuation when macro args; - OpenBSD-Commit-ID: 0514cd51db3ec60239966622a0d3495b15406ddd + OpenBSD-Commit-ID: e80343c16ce0420b2aec98701527cf90371bd0db -commit 94842bfe9b09fc93189c6ed0dc9bbebc1d44a426 -Author: dlg@openbsd.org -Date: Tue Jul 4 03:59:21 2023 +0000 +commit 3867361ca691d0956ef7d5fb8181cf554a91d84a +Author: djm@openbsd.org +Date: Mon Aug 28 04:06:52 2023 +0000 - upstream: add support for unix domain sockets to ssh -W + upstream: explicit long long type in timing calculations (doesn't - ok djm@ dtucker@ + matter, since the range is pre-clamped) - OpenBSD-Commit-ID: 3e6d47567b895c7c28855c7bd614e106c987a6d8 + OpenBSD-Commit-ID: f786ed902d04a5b8ecc581d068fea1a79aa772de -commit a95fc5eed09a0238fb127b6c50e8498432b79dae -Author: David Seifert -Date: Fri May 12 14:06:01 2023 +0200 +commit 7603ba71264e7fa938325c37eca993e2fa61272f +Author: djm@openbsd.org +Date: Mon Aug 28 03:31:16 2023 +0000 - gss-serv.c: `MAXHOSTNAMELEN` -> `HOST_NAME_MAX` - - `MAXHOSTNAMELEN` is not defined in POSIX, which breaks on musl: - https://pubs.opengroup.org/onlinepubs/9699919799/functions/gethostname.html + upstream: Add keystroke timing obfuscation to the client. - Bug: https://bugs.gentoo.org/834044 - -commit 8a6cd08850f576e7527c52a1b086cae82fab290e -Author: Darren Tucker -Date: Fri Jun 23 09:49:02 2023 +1000 - - Update runner OS version for hardenedmalloc test. + This attempts to hide inter-keystroke timings by sending interactive + traffic at fixed intervals (default: every 20ms) when there is only a + small amount of data being sent. It also sends fake "chaff" keystrokes + for a random interval after the last real keystroke. These are + controlled by a new ssh_config ObscureKeystrokeTiming keyword/ - Hardenedmalloc dropped support for "legacy glibc" versions in their - 64dad0a69 so use a newer Ubuntu version for the runner for that test. - -commit cfca6f17e64baed6822bb927ed9f372ce64d9c5b -Author: Damien Miller -Date: Thu Jun 22 15:04:03 2023 +1000 - - handle sysconf(SC_OPEN_MAX) returning > INT_MAX; + feedback/ok markus@ - bz3581; ok dtucker + OpenBSD-Commit-ID: 02231ddd4f442212820976068c34a36e3c1b15be -commit c1c2ca1365b3f7b626683690bd2c68265f6d8ffd +commit dce6d80d2ed3cad2c516082682d5f6ca877ef714 Author: djm@openbsd.org -Date: Wed Jun 21 05:10:26 2023 +0000 +Date: Mon Aug 28 03:28:43 2023 +0000 - upstream: better validate CASignatureAlgorithms in ssh_config and - - sshd_config. + upstream: Introduce a transport-level ping facility - Previously this directive would accept certificate algorithm names, but - these were unusable in practice as OpenSSH does not support CA chains. + This adds a pair of SSH transport protocol messages SSH2_MSG_PING/PONG + to implement a ping capability. These messages use numbers in the "local + extensions" number space and are advertised using a "ping@openssh.com" + ext-info message with a string version number of "0". - part of bz3577; ok dtucker@ + ok markus@ - OpenBSD-Commit-ID: a992d410c8a78ec982701bc3f91043dbdb359912 + OpenBSD-Commit-ID: b6b3c4cb2084c62f85a8dc67cf74954015eb547f -commit 4e73cd0f4ab3e5b576c56cac9732da62c8fc0565 -Author: djm@openbsd.org -Date: Wed Jun 21 05:08:32 2023 +0000 +commit d2d247938b38b928f8a6e1a47a330c5584d3a358 +Author: tobhe@openbsd.org +Date: Mon Aug 21 21:16:18 2023 +0000 - upstream: make `ssh -Q CASignatureAlgorithms` only list signature - - algorithms that are valid for CA signing. Previous behaviour was to list all - signing algorithms, including certificate algorithms (OpenSSH certificates do - not support CA chains). part of bz3577; ok dtucker@ + upstream: Log errors in kex_exchange_identification() with level - OpenBSD-Commit-ID: 99c2b072dbac0f44fd1f2269e3ff6c1b5d7d3e59 - -commit a69062f1695ac9c3c3dea29d3044c72aaa6af0ea -Author: djm@openbsd.org -Date: Wed Jun 21 05:06:04 2023 +0000 - - upstream: handle rlimits > INT_MAX (rlim_t is u64); ok dtucker + verbose instead of error to reduce preauth log spam. All of those get logged + with a more generic error message by sshpkt_fatal(). - bz3581 + feedback from sthen@ + ok djm@ - OpenBSD-Commit-ID: 31cf59c041becc0e5ccb0a77106f812c4cd1cd74 + OpenBSD-Commit-ID: bd47dab4695b134a44c379f0e9a39eed33047809 -commit 8d33f2aa6bb895a7f85a47189913639086347b75 +commit 9d7193a8359639801193ad661a59d1ae4dc3d302 Author: djm@openbsd.org -Date: Tue Jun 20 23:59:33 2023 +0000 +Date: Mon Aug 21 04:59:54 2023 +0000 - upstream: prepare for support for connecting to unix domain sockets + upstream: correct math for ClientAliveInterval that caused the - using ssh -W by explicitly decoding PORT_STREAMLOCAL (a negative number) from - the u32 that's passed over the multiplexing socket; previously code would - just cast, which is UB. + probes to be sent less frequently than configured; from Dawid Majchrzak - OpenBSD-Commit-ID: e5ac5f40d354096c51e8c118a5c1b2d2b7a31384 + OpenBSD-Commit-ID: 641153e7c05117436ddfc58267aa267ca8b80038 -commit b4ac435b4e67f8eb5932d8f59eb5b3cf7dc38df0 -Author: djm@openbsd.org -Date: Tue Jun 20 00:05:09 2023 +0000 +commit 3c6ab63b383b0b7630da175941e01de9db32a256 +Author: Darren Tucker +Date: Fri Aug 25 14:48:02 2023 +1000 - upstream: reset comment=NULL for each key in do_fingerprint(); - - fixes "no comment" not showing on when running `ssh-keygen -l` on multiple - keys where one has a comment and other following keys do not. Patch from - Markus Kuhn via GHPR407, bz3580 + Include Portable version in sshd version string. - OpenBSD-Commit-ID: 3cce84456fdcd67dc6b84e369f92c6686d111d9b + bz#3608, ok djm@ -commit b53a809a549dcd4fbde554c6aa283e597b15ea33 -Author: millert@openbsd.org -Date: Mon Jun 5 13:24:36 2023 +0000 +commit 17fa6cd10a26e193bb6f65d21264d2fe553bcd87 +Author: Darren Tucker +Date: Mon Aug 21 19:47:58 2023 +1000 - upstream: Store timeouts as int, not u_int as they are limited to - - INT_MAX. Fixes sign compare warnings systems with 32-bit time_t due to type - promotion. OK djm@ + obsd-arm64 host is real hardware... - OpenBSD-Commit-ID: 48081e9ad35705c5f1705711704a4c2ff94e87b7 + so put in the correct config location. -commit 2709809fd616a0991dc18e3a58dea10fb383c3f0 -Author: Philip Hands -Date: Wed May 24 19:41:14 2023 +0200 +commit 598ca75c85acaaacee5ef954251e489cc20d7be9 +Author: Darren Tucker +Date: Mon Aug 21 18:38:36 2023 +1000 - fixup! if -s & -p specified, mention 'sftp -P' on - - success - - SSH-Copy-ID-Upstream: 32686e7c65b4fa2846e474d3315102dfa0f043b0 + Add OpenBSD ARM64 test host. -commit 204e0bf05161b7641500d7ab266c21217412379f +commit 1acac79bfbe207e8db639e8043524962037c8feb Author: Darren Tucker -Date: Tue Aug 3 21:25:48 2021 +1000 +Date: Mon Aug 21 18:05:26 2023 +1000 - Make ssh-copy-id(1) consistent with OpenSSH. - - This makes the ssh-copy-id man page more consistent with the rest of the - OpenSSH man pages: - - new sentence, new line - - no sentences >80 - - N.B. -> NB - - zap unused .Pp - - zap trailing whitespace - - Report from Debian via mindrot bz#3331, diff from jmc at openbsd.org. - - SSH-Copy-ID-Upstream: d8974cfb6242316460ed22a1ccc662800a50c5d3 + Add test for zlib development branch. -commit 9de79df66d1430d290fab670bb4b18612875e518 -Author: Philip Hands -Date: Wed May 24 11:45:43 2023 +0200 +commit 84efebf352fc700e9040c8065707c63caedd36a3 +Author: djm@openbsd.org +Date: Mon Aug 21 04:36:46 2023 +0000 - if -s & -p specified, mention 'sftp -P' on success - - This was inspired by this: - https://github.com/openssh/openssh-portable/pull/321 - but I thought that it was better to not do the sed patching. - - BTW the reason one can get away with using $SSH_OPTS throughout, despite - the lowercase -p in there, even if sftp is in use, is that the sftp call - is using the already-established ssh master connection, so the port was - passed to the earlier ssh. + upstream: want stdlib.h for free(3) - SSH-Copy-ID-Upstream: 1c124d9bfafdbe28a00b683367ebf5750ce12eb2 + OpenBSD-Commit-ID: 743af3c6e3ce5e6cecd051668f0327a01f44af29 -commit 801cda54c00e0f4e7d89345a90874c8d05dc233a -Author: Philip Hands -Date: Tue May 23 23:07:11 2023 +0200 +commit cb4ed12ffc332d1f72d054ed92655b5f1c38f621 +Author: Darren Tucker +Date: Sat Aug 19 07:39:08 2023 +1000 - drop whitespace + Fix zlib version check for 1.3 and future version. - SSH-Copy-ID-Upstream: e604fae1cdee35c18055d35dcec530cf12ef00ad + bz#3604. -commit 288482f53613f3e74544eb92deeb24f7c7f1f371 -Author: Philip Hands -Date: Tue May 23 20:52:13 2023 +0200 +commit 25b75e21f16bccdaa472ea1889b293c9bd51a87b +Author: Darren Tucker +Date: Mon Aug 14 11:10:08 2023 +1000 - make -x also apply to the target script - - SSH-Copy-ID-Upstream: 3c4214704f427bd0654adf9b0fc079253db21cf4 + Add 9.4 branch to CI status page. -commit b79e7b88ed44f0e4339f0ff35c96c78a92175a8d -Author: Philip Hands -Date: Tue May 23 16:46:42 2023 +0200 +commit 803e22eabd3ba75485eedd8b7b44d6ace79f2052 +Author: djm@openbsd.org +Date: Fri Aug 18 01:37:41 2023 +0000 - add -t option to specify the target path - - Allow the default target path (.ssh/authorized_files) to be over-riden - - This was inspired by this MR from Panagiotis Cheilaris + upstream: fix regression in OpenSSH 9.4 (mux.c r1.99) that caused - https://gitlab.com/phil_hands/ssh-copy-id/-/merge_requests/8 + multiplexed sessions to ignore SIGINT under some circumstances. Reported by / + feedback naddy@, ok dtucker@ - SSH-Copy-ID-Upstream: a942a0e076874adb6d8b2f0fb76d6c7918190fcd + OpenBSD-Commit-ID: 4d5c6c894664f50149153fd4764f21f43e7d7e5a -commit 914f4ad138714c471ba72fb6d5496b6235320edd -Author: Carlos Rodríguez Gili -Date: Tue Apr 20 19:23:57 2021 +0200 +commit e706bca324a70f68dadfd0ec69edfdd486eed23a +Author: djm@openbsd.org +Date: Wed Aug 16 16:14:11 2023 +0000 - Fix test error for /bin/sh on Solaris 10 and older - - On Solaris 10 and older targets /bin/sh is not POSIX-compliant. - Test -z `...` fails with error 'sh: test: argument expected'. - Using quotes around backticks fixes this and doesn't break - POSIX compatibility. + upstream: defence-in-depth MaxAuthTries check in monitor; ok markus - SSH-Copy-ID-Upstream: 98394072a3f985b2650c1e8eab2fef84e38cc065 + OpenBSD-Commit-ID: 65a4225dc708e2dae71315adf93677edace46c21 -commit bd382dca316c721aed1e45edcf4c4e0f6374afb0 -Author: Jakub Jelen -Date: Tue Mar 2 21:34:05 2021 +0000 +commit d1ab7eb90474df656d5e9935bae6df0bd000d343 +Author: djm@openbsd.org +Date: Mon Aug 14 03:37:00 2023 +0000 - Remove outdated comment - - The commit b068122 removed the code dropping the trailing colon, but the comment stayed leaving the code confusing for future readers + upstream: add message number of SSH2_MSG_NEWCOMPRESS defined in RFC8308 - SSH-Copy-ID-Upstream: 930d39f238117cd53810240ec989d0356aa1c1f6 + OpenBSD-Commit-ID: 6c984171c96ed67effd7b5092f3d3975d55d6028 -commit bdcaf7939029433635d63aade8f9ac762aca2bbe +commit fa8da52934cb7dff6f660a143276bdb28bb9bbe1 Author: Darren Tucker -Date: Wed May 10 18:50:46 2023 +1000 +Date: Sun Aug 13 15:01:27 2023 +1000 - Special case OpenWrt instead of Dropbear. - - OpenWrt overrides the location of authorized_keys for root. Currently we - assume that all Dropbear installations behave this way, which is not the - case. Check for OpenWrt and root user before using that location instead - of assuming that for all Dropbear servers. Prompted by Github PR#250. - - SSH-Copy-ID-Upstream: 0e1f5d443a9967483c33945793107ae3f3e4af2d - -commit cf84498f67abe93f813a296167b406a0db7b288e -Author: Philip Hands -Date: Thu May 18 18:20:55 2023 +0200 - - ssh-copy-id: add -x option (for debugging) - - This option causes the ssh-copy-id to run with set -x - - SSH-Copy-ID-Upstream: a0ee367ea8c0a29c8b4515245e408d2d349e7844 - -commit b4a1efdcb88f03394c08e7f68ed4e11676830002 -Author: Philip Hands -Date: Thu May 18 17:14:41 2023 +0200 - - update copyright notices - - SSH-Copy-ID-Upstream: c284ed33b361814ea48ff68cbd01ca525b2bf117 + Add obsd72 and obsd73 test targets. -commit fcd78e31cdd45a7e69ccfe6d8a3b1037dc1de290 +commit f9f18006678d2eac8b0c5a5dddf17ab7c50d1e9f Author: djm@openbsd.org -Date: Wed May 24 23:01:06 2023 +0000 +Date: Thu Aug 10 23:05:48 2023 +0000 - upstream: fix AuthorizedPrincipalsCommand when AuthorizedKeysCommand - - appears previously in configuration. Reported by John Meyers in bz3574 ok - dtucker@ + upstream: better debug logging of sessions' exit status - OpenBSD-Commit-ID: 1c92e4517284386703936e1d3abaa36cfacf1951 + OpenBSD-Commit-ID: 82237567fcd4098797cbdd17efa6ade08e1a36b0 -commit 5ec5504f1d328d5bfa64280cd617c3efec4f78f3 -Author: dtucker@openbsd.org -Date: Wed May 10 10:04:20 2023 +0000 +commit a8c57bcb077f0cfdffcf9f23866bf73bb93e185c +Author: naddy@openbsd.org +Date: Thu Aug 10 14:37:32 2023 +0000 - upstream: Remove unused prototypes for ssh1 RSA functions. - - From lengyijun via github PR#396. + upstream: drop a wayward comma, ok jmc@ - OpenBSD-Commit-ID: 379a5afa8b7a0f3cba0c8a9bcceb4e5e33a5c1ef - -commit fbf362b3891ae4b36052d1b39f37fc618b41c476 -Author: Darren Tucker -Date: Tue May 9 19:26:56 2023 +1000 - - main(void) to prevent unused variable warning. - -commit baf854c8bb0a6d0af5c696c801e631a48dabbaba -Author: Darren Tucker -Date: Tue May 9 19:25:45 2023 +1000 - - Remove warning pragma since clang doesn't like it. + OpenBSD-Commit-ID: 5c11fbb9592a29b37bbf36f66df50db9d38182c6 -commit 5fbb7a1349fbbb48ccb1b8cafff2c1854370d87d -Author: Darren Tucker -Date: Tue May 9 17:13:33 2023 +1000 +commit e962f9b318a238db1becc53c2bf79dd3a49095b4 +Author: Damien Miller +Date: Thu Aug 10 11:10:22 2023 +1000 - Suppress warning for snprintf truncation test. + depend -commit 47742c513e4e045ecc985c6483fc5c8b050acda2 -Author: Darren Tucker -Date: Tue May 9 17:12:50 2023 +1000 +commit 0fcb60bf83130dfa428bc4422b3a3ac20fb528af +Author: Damien Miller +Date: Thu Aug 10 11:05:42 2023 +1000 - Update OpenSSL compat test for 3.x. + update versions in RPM specs -commit 86ad25d455a2313126125540e61e0f9314283f88 -Author: Darren Tucker -Date: Mon May 8 20:23:08 2023 +1000 +commit d0cee4298491314f09afa1c4383a66d913150b26 +Author: Damien Miller +Date: Thu Aug 10 11:05:14 2023 +1000 - Add macos13 PAM test target. + update version in README -commit 77cca2c4b13bc6e5f389565583b6202b0d1bccc2 -Author: Darren Tucker -Date: Mon May 8 20:14:46 2023 +1000 +commit 78b4dc6684f4d35943b46b24ee645edfdb9974f5 +Author: djm@openbsd.org +Date: Thu Aug 10 01:01:07 2023 +0000 - Skip agent-peereid test on macos13. + upstream: openssh-9.4 - sudo -S nobody doesn't work on the github runners (probably a - permission issue) so skip that test. + OpenBSD-Commit-ID: 71fc1e01a4c4ea061b252bd399cda7be757e6e35 -commit b356b8e91678ea295bcf44df5248c3fbf499fdcf +commit 58ca4f0aa8c4306ac0a629c9a85fb1efaf4ff092 Author: Darren Tucker -Date: Mon May 8 20:14:28 2023 +1000 +Date: Thu Aug 10 11:30:24 2023 +1000 - Include config.guess in debug output. + Only include unistd.h once. -commit b7afd8a4ecaca8afd3179b55e9db79c0ff210237 -Author: Darren Tucker -Date: Mon May 8 20:12:59 2023 +1000 +commit 3961ed02dc578517a9d2535128cff5c3a5460d28 +Author: Damien Miller +Date: Thu Aug 10 09:08:49 2023 +1000 - Handle OpenSSL >=3 ABI compatibility. - - Beyond OpenSSL 3.0, the ABI compatibility guarantees are wider (only - major must match instead of major and minor in earlier versions). - bz#3548, ok djm@ + wrap poll.h include in HAVE_POLL_H -commit 0e9e2663eb2c6e9c3e10d15d70418312ae67e542 +commit e535fbe2af893046c28adfcd787c1fdbae36a24a Author: dtucker@openbsd.org -Date: Mon May 1 08:57:29 2023 +0000 +Date: Fri Aug 4 06:32:40 2023 +0000 - upstream: Import regenerated moduli. + upstream: Apply ConnectTimeout to multiplexing local socket - OpenBSD-Commit-ID: 3d5f811cfcaed8cc4a97e1db49ac61bdf118113c + connections. If the multiplex socket exists but the connection times out, + ssh will fall back to a direct connection the same way it would if the socket + did not exist at all. ok djm@ + + OpenBSD-Commit-ID: 2fbe1a36d4a24b98531b2d298a6557c8285dc1b4 -commit d9687f49682e1e93383fc15ab2018850b2ef38c3 +commit 9d92e7b24848fcc605945f7c2e3460c7c31832ce Author: Darren Tucker -Date: Mon May 1 11:45:14 2023 +1000 +Date: Thu Aug 3 19:35:33 2023 +1000 - Add macos-13 test target. + Fix RNG seeding for OpenSSL w/out self seeding. - Also flatten OS list for clarity. + When sshd is built with an OpenSSL that does not self-seed, it would + fail in the preauth privsep process while handling a new connection. + Sanity checked by djm@ -commit aacfd6767497b8fa6d41ecdd3f8e265d1e9ef1f6 +commit f70010d9b0b3e7e95de8aa0b961e1d74362cfb5d Author: djm@openbsd.org -Date: Sun Apr 30 22:54:22 2023 +0000 +Date: Wed Aug 2 23:04:38 2023 +0000 - upstream: adjust ftruncate() logic to handle servers that reorder - - requests. - - sftp/scp will ftruncate the destination file after a transfer completes, - to deal with the case where a longer destination file already existed. - We tracked the highest contiguous block transferred to deal with this - case, but our naive tracking doesn't deal with servers that reorder - requests - a misfeature strictly permitted by the protocol but seldom - implemented. - - Adjust the logic to ftruncate() at the highest absolute block received - when the transfer is successful. feedback deraadt@ ok markus@ + upstream: CheckHostIP has defaulted to 'no' for a while; make the - prompted by https://github.com/openssh/openssh-portable/commit/9b733#commitcomment-110679778 + commented- out config option match. From Ed Maste - OpenBSD-Commit-ID: 4af7fac75958ad8507b4fea58706f3ff0cfddb1b + OpenBSD-Commit-ID: e66e934c45a9077cb1d51fc4f8d3df4505db58d9 -commit c8eb3941758615c8284a48fff47872db926da63c -Author: djm@openbsd.org -Date: Wed Apr 26 01:36:03 2023 +0000 +commit c88a8788f9865d02b986d00405b9f0be65ad0b5a +Author: dtucker@openbsd.org +Date: Tue Aug 1 08:15:04 2023 +0000 - upstream: Check for ProxyJump=none in CanonicalizeHostname logic. - - Previously ssh would incorrectly refuse to canonicalise the hostname - if ProxyJump was explicitly set to "none" when CanonicalizeHostname=yes + upstream: remove unnecessary if statement. - bz3567; ok dtucker + github PR#422 from eyalasulin999, ok djm@ - OpenBSD-Commit-ID: 80a58e43c3a32f97361282f756ec8d3f37989efd + OpenBSD-Commit-ID: 2b6b0dde4407e039f58f86c8d2ff584a8205ea55 -commit ac383f3a5c6f529a2e8a5bc44af79a08c7da294e -Author: jsg@openbsd.org -Date: Wed Apr 12 14:22:04 2023 +0000 +commit 77b8b865cd5a8c79a47605c0c5b2bacf4692c4d5 +Author: jmc@openbsd.org +Date: Fri Jul 28 05:42:36 2023 +0000 - upstream: remove duplicate signal.h include + upstream: %C is a callable macro in mdoc(7) - OpenBSD-Commit-ID: 30c0a34d74d91ddd0e6992525da70d3293392f70 + so, as we do for %D, escape it; + + OpenBSD-Commit-ID: 538cfcddbbb59dc3a8739604319491dcb8e0c0c9 -commit 740dafa20f3f3d325f6f5d44e990b8c8a6d3d816 -Author: jsg@openbsd.org -Date: Wed Apr 12 08:53:54 2023 +0000 +commit e0f91aa9c2fbfc951e9ced7e1305455fc614d3f2 +Author: djm@openbsd.org +Date: Fri Jul 28 05:33:15 2023 +0000 - upstream: fix double words ok dtucker@ + upstream: don't need to start a command here; use ssh -N instead. - OpenBSD-Commit-ID: 44d3223902fbce5276422bdc8063ab72a4078489 + Fixes failure on cygwin spotted by Darren + + OpenBSD-Regress-ID: ff678a8cc69160a3b862733d935ec4a383f93cfb -commit 6452f89577ec4f22440c31b8e19b061d1a7c4b2a -Author: Darren Tucker -Date: Tue Apr 11 16:49:19 2023 +1000 +commit f446a44f30bc680e0d026a4204844b02646c1c2d +Author: djm@openbsd.org +Date: Wed May 17 05:52:01 2023 +0000 - Test against LibreSSL 3.7.2. + upstream: add LTESTS_FROM variable to allow skipping of tests up to + + a specific point. e.g. "make LTESTS_FROM=t-sftp" will only run the sftp.sh + test and subsequent ones. ok dtucker@ + + OpenBSD-Regress-ID: 07f653de731def074b29293db946042706fcead3 -commit 2138f6be595ca106fe4805a1e3ab9c4d8acc697b -Author: Damien Miller -Date: Thu Apr 6 14:33:10 2023 +1000 +commit 8eb8899d612440a9b608bee7f916081d3d0b7812 +Author: djm@openbsd.org +Date: Fri May 12 06:37:42 2023 +0000 - remove unused upper-case const strings in fmtfp + upstream: test ChrootDirectory in Match block - no float format that uses upper-case is supported nor are hex floats. - ok dtucker + OpenBSD-Regress-ID: a6150262f39065939f025e546af2a346ffe674c1 -commit 484c5e6168fdb22cbcd73c4ff987cf9ca47989ca +commit e43f43d3f19516222e9a143468ea0dc1b3ab67b6 Author: djm@openbsd.org -Date: Thu Apr 6 03:56:02 2023 +0000 +Date: Fri May 12 06:36:27 2023 +0000 - upstream: simplify sshsig_find_principals() similar to what happened to - - sshsig_check_allowed_keys() in r1.31, removing some dead code + upstream: better error messages - OpenBSD-Commit-ID: a493e628d4d6c08f878c276d998f4313ba61702d + OpenBSD-Regress-ID: 55e4186604e80259496d841e690ea2090981bc7a -commit 3a7b110fbc7e096423f8f7b459deffe4c65d70f4 +commit 6958f00acf3b9e0b3730f7287e69996bcf3ceda4 Author: djm@openbsd.org -Date: Thu Apr 6 03:21:31 2023 +0000 +Date: Thu Jul 27 22:26:49 2023 +0000 - upstream: remove redundant ssh!=NULL check; we'd already + upstream: don't incorrectly truncate logged strings retrieved from - dereferenced it + PKCS#11 modules; based on GHPR406 by Jakub Jelen; ok markus - OpenBSD-Commit-ID: 852bf12591ec5a9fb12dcbde9b1fd3945ad0df3c + OpenBSD-Commit-ID: 7ed1082f23a13b38c373008f856fd301d50012f9 -commit 2519110659a1efac6c976895a86659d1b341c91b +commit d1ffde6b55170cd4b9a72bfd9a3f17508e6cf714 Author: djm@openbsd.org -Date: Thu Apr 6 03:19:32 2023 +0000 +Date: Thu Jul 27 22:25:17 2023 +0000 - upstream: match_user() shouldn't be called with user==NULL unless + upstream: make sshd_config AuthorizedPrincipalsCommand and - host and ipaddr are also NULL + AuthorizedKeysCommand accept the %D (routing domain) and a new %C (connection + address/port 4-tuple) as expansion sequences; ok markus - OpenBSD-Commit-ID: fa3518346c21483e9e01a2e4b9436ae501daf8ea + OpenBSD-Commit-ID: ee9a48bf1a74c4ace71b69de69cfdaa2a7388565 -commit 3b9ceaad7ad63c1c03c2a89e148340ad3a62a482 +commit 999a2886ca1844a7a74b905e5f2c8c701f9838cd Author: djm@openbsd.org -Date: Thu Apr 6 03:12:32 2023 +0000 +Date: Thu Jul 27 22:23:05 2023 +0000 - upstream: don't care about glob() return value here. + upstream: increase default KDF work-factor for OpenSSH format - OpenBSD-Commit-ID: 85bb82fea90478a482e9f65a1bec0aa24227fd66 - -commit 09d8da0849e2791b2500267cda333cd238f38754 -Author: dtucker@openbsd.org -Date: Mon Apr 3 08:10:54 2023 +0000 - - upstream: Move up null check and simplify process_escapes. - - Based on Coverity CID 291863 which points out we check the channel - pointer for NULLness after dereferencing it. Move this to the start - of the function, and while there simplify initialization of efc a bit. - ok djm@ + private keys from 16 to 24; { feedback ok } x { deraadt markus } - OpenBSD-Commit-ID: de36e5ad6fde0fe263ca134e986b9095dc59380a + OpenBSD-Commit-ID: a3afb1383f8ff0a49613d449f02395d9e8d4a9ec -commit b36b162be5e6206f12b734222b7bc517c13a6bc8 -Author: Damien Miller -Date: Fri Mar 31 14:51:20 2023 +1100 +commit 0fa803a1dd1c7b546c166000e23a869cf6c4ec10 +Author: Darren Tucker +Date: Thu Jul 27 02:25:09 2023 +1000 - need va_end() after va_copy(); ok dtucker + Prefer OpenSSL's SHA256 in sk-dummy.so - spotted by Coverity + Previously sk-dummy.so used libc's (or compat's) SHA256 since it may be + built without OpenSSL. In many cases, however, including both libc's + and OpenSSL's headers together caused conflicting definitions. + + We tried working around this (on OpenSSL <1.1 you could define + OPENSSL_NO_SHA, NetBSD had USE_LIBC_SHA2, various #define hacks) with + varying levels of success. Since OpenSSL >=1.1 removed OPENSSL_NO_SHA + and including most OpenSSL headers would bring sha.h in, even if it + wasn't used directly this was a constant hassle. + + Admit defeat and use OpenSSL's SHA256 unless we aren't using OpenSSL at + all. ok djm@ -commit f703757234a5c585553e72bba279b255a272750a -Author: dtucker@openbsd.org -Date: Fri Mar 31 05:56:36 2023 +0000 +commit 36cdb5dbf55c99c0faad06066f56a7c341258c1f +Author: Darren Tucker +Date: Thu Jul 27 10:29:44 2023 +1000 - upstream: Explicitly ignore return from waitpid here too. - - OpenBSD-Commit-ID: eef2403df083c61028969fc679ee370373eacacb + Retire dfly58 test VM. Add dfly64. -commit 6b73aa29035991d1448a1a76f63ac152a6bf931c -Author: dtucker@openbsd.org -Date: Fri Mar 31 04:45:08 2023 +0000 +commit 2d34205dab08ede9b0676efa57647fc49e6decbe +Author: djm@openbsd.org +Date: Wed Jul 26 23:06:00 2023 +0000 - upstream: Explictly ignore return codes + upstream: make ssh -f (fork after authentication) work properly in - where we don't check them. + multiplexed cases (inc. ControlPersist). bz3589 bz3589 Based on patches by + Peter Chubb; ok dtucker@ - OpenBSD-Commit-ID: 1ffb03038ba1b6b72667be50cf5e5e396b5f2740 + OpenBSD-Commit-ID: a7a2976a54b93e6767dc846b85647e6ec26969ac -commit 6f0308a3e717ebe68eeb3f95253612fab5dbf20e -Author: dtucker@openbsd.org -Date: Fri Mar 31 04:42:29 2023 +0000 +commit 076aeda86a7ee9be8fd2f0181ec7b9729a6ceb37 +Author: naddy@openbsd.org +Date: Sun Jul 23 20:04:45 2023 +0000 - upstream: Return immediately from get_sock_port - - if sock <0 so we don't call getsockname on a negative FD. From Coverity - CID 291840, ok djm@ + upstream: man page typos; ok jmc@ - OpenBSD-Commit-ID: de1c1130646230c2eda559831fc6bfd1b61d9618 + OpenBSD-Commit-ID: e6ddfef94b0eb867ad88abe07cedc8ed581c07f0 -commit 1c1124dc901fca1ea2cb762044b8f1a5793a2bed -Author: djm@openbsd.org -Date: Fri Mar 31 04:23:02 2023 +0000 +commit 135e7d5fe31f700e6dfc61ce914970c5ee7175ba +Author: jmc@openbsd.org +Date: Thu Jul 20 05:43:39 2023 +0000 - upstream: don't leak arg2 on parse_pubkey_algos error path; ok - - dtucker@ + upstream: tweak the allow-remote-pkcs11 text; - OpenBSD-Commit-ID: 7d0270ad3dd102412ca76add2b3760518abdef75 + OpenBSD-Commit-ID: bc965460a89edf76865b7279b45cf9cbdebd558a -commit 8ba2d4764bb6a4701cd447d8b52604622ffe65f4 -Author: djm@openbsd.org -Date: Fri Mar 31 04:22:27 2023 +0000 +commit 5f83342b61d1f76c141de608ed2bd293990416bd +Author: Darren Tucker +Date: Tue Jul 25 13:00:22 2023 +1000 - upstream: clamp max number of GSSAPI mechanisms to 2048; ok dtucker + Handle a couple more OpenSSL no-ecc cases. - OpenBSD-Commit-ID: ce66db603a913d3dd57063e330cb5494d70722c4 + ok djm@ -commit 1883841fc13d0eada8743cac5d3abe142ee2efa7 +commit edc2ef4e418e514c99701451fae4428ec04ce538 +Author: Damien Miller +Date: Thu Jul 20 12:53:44 2023 +1000 + + depend + +commit 51fda734e0d3c2df256fc03e8b060c4305be6e59 +Author: Damien Miller +Date: Thu Jul 20 12:53:21 2023 +1000 + + Bring back OPENSSL_HAS_ECC to ssh-pkcs11-client + +commit 099cdf59ce1e72f55d421c8445bf6321b3004755 Author: djm@openbsd.org -Date: Fri Mar 31 04:21:56 2023 +0000 +Date: Wed Jul 19 14:03:45 2023 +0000 - upstream: don't print key if printing hostname failed; with/ok + upstream: Separate ssh-pkcs11-helpers for each p11 module - dtucker@ + Make ssh-pkcs11-client start an independent helper for each provider, + providing better isolation between modules and reliability if a single + module misbehaves. - OpenBSD-Commit-ID: ad42971a6ee5a46feab2d79f7f656f8cf4b119f3 + This also implements reference counting of PKCS#11-hosted keys, + allowing ssh-pkcs11-helper subprocesses to be automatically reaped + when no remaining keys reference them. This fixes some bugs we have + that make PKCS11 keys unusable after they have been deleted, e.g. + https://bugzilla.mindrot.org/show_bug.cgi?id=3125 + + ok markus@ + + OpenBSD-Commit-ID: 0ce188b14fe271ab0568f4500070d96c5657244e -commit c6011129cafe4c411f6ef670a4cf271314708eb8 +commit 29ef8a04866ca14688d5b7fed7b8b9deab851f77 Author: djm@openbsd.org -Date: Fri Mar 31 04:04:15 2023 +0000 +Date: Wed Jul 19 14:02:27 2023 +0000 - upstream: remove redundant test + upstream: Ensure FIDO/PKCS11 libraries contain expected symbols - OpenBSD-Commit-ID: 6a0b719f9b1ae9d42ad8c5b144c7962c93792f7c + This checks via nlist(3) that candidate provider libraries contain one + of the symbols that we will require prior to dlopen(), which can cause + a number of side effects, including execution of constructors. + + Feedback deraadt; ok markus + + OpenBSD-Commit-ID: 1508a5fbd74e329e69a55b56c453c292029aefbe -commit 4fb29eeafb40a2076c0dbe54e46b687c318f87aa +commit 1f2731f5d7a8f8a8385c6031667ed29072c0d92a Author: djm@openbsd.org -Date: Fri Mar 31 04:00:37 2023 +0000 +Date: Wed Jul 19 13:56:33 2023 +0000 - upstream: don't attempt to decode a ridiculous number of + upstream: Disallow remote addition of FIDO/PKCS11 provider - attributes; harmless because of bounds elsewhere, but better to be explicit + libraries to ssh-agent by default. - OpenBSD-Commit-ID: 1a34f4b6896155b80327d15dc7ccf294b538a9f2 + The old behaviour of allowing remote clients from loading providers + can be restored using `ssh-agent -O allow-remote-pkcs11`. + + Detection of local/remote clients requires a ssh(1) that supports + the `session-bind@openssh.com` extension. Forwarding access to a + ssh-agent socket using non-OpenSSH tools may circumvent this control. + + ok markus@ + + OpenBSD-Commit-ID: 4c2bdf79b214ae7e60cc8c39a45501344fa7bd7c -commit fc437c154ef724621a4af236de9bc7e51a8381ae +commit 892506b13654301f69f9545f48213fc210e5c5cc Author: djm@openbsd.org -Date: Fri Mar 31 03:22:49 2023 +0000 +Date: Wed Jul 19 13:55:53 2023 +0000 - upstream: remove unused variable; prompted by Coverity CID 291879 + upstream: terminate process if requested to load a PKCS#11 provider - OpenBSD-Commit-ID: 4c7d20ef776887b0ba1aabcfc1b14690e4ad0a40 + that isn't a PKCS#11 provider; from / ok markus@ + + OpenBSD-Commit-ID: 39532cf18b115881bb4cfaee32084497aadfa05c -commit 0eb8131e4a53b33a8fc9b9ab694e6b6778b87ade -Author: dtucker@openbsd.org -Date: Fri Mar 31 00:44:29 2023 +0000 +commit f3f56df8ec476b2de6cbdbdfdb77a2a61087829d +Author: Damien Miller +Date: Wed Jul 19 12:07:18 2023 +1000 - upstream: Check fd against >=0 instead of >0 in error path. The - - dup could in theory return fd 0 although currently it doesn't in practice. - From Dmitry Belyavskiy vi github PR#238. - - OpenBSD-Commit-ID: 4a95f3f7330394dffee5c749d52713cbf3b54846 + agent_fuzz doesn't want stdint.h conditionalised -commit 7174ba6f8a431ca4257767a260fc50e204068242 -Author: dtucker@openbsd.org -Date: Thu Mar 30 07:19:50 2023 +0000 +commit 750911fd31d307a767cc86e3bfa90bbbb77b1a25 +Author: Damien Miller +Date: Tue Jul 18 15:41:12 2023 +1000 - upstream: Ignore return value from muxclient(). It normally loops - - without returning, but it if returns on failure we immediately exit. - Coverity CID 405050. + conditionalise stdint.h inclusion on HAVE_STDINT_H - OpenBSD-Commit-ID: ab3fde6da384ea588226037c38635a6b2e015295 + fixes build on AIX5 at least -commit a4c1c2513e36f111eeaa1322c510067930e5e51e +commit ff047504fa6e008c4092f8929881816b8993bea0 Author: Damien Miller -Date: Fri Mar 31 14:17:22 2023 +1100 +Date: Tue Jul 18 15:30:45 2023 +1000 - don't call connect() on negative socket + conditionalise match localnetwork on ifaddrs.h - Coverity CID 405037 + Fixes build breakage on platforms that lack getifaddrs() -commit 34ee842cdd981a759fe8f0d4a37521f9a1c63170 +commit b87b03282e466ca2927954ce93f5dbf0bfdc68f6 Author: djm@openbsd.org -Date: Thu Mar 30 03:05:01 2023 +0000 +Date: Mon Jul 17 06:16:33 2023 +0000 - upstream: return SSH_ERR_KEY_NOT_FOUND if the allowed_signers file - - is empty, not SSH_ERR_INTERNAL_ERROR. Also remove some dead code spotted - by Coverity; with/ok dtucker@ + upstream: missing match localnetwork negation check - OpenBSD-Commit-ID: 898a1e817cda9869554b1f586a434f67bcc3b650 + OpenBSD-Commit-ID: 9a08ed8dae27d3f38cf280f1b28d4e0ff41a737a -commit f108e77a9dc9852e72215af1bf27731c48434557 -Author: dtucker@openbsd.org -Date: Thu Mar 30 00:49:37 2023 +0000 +commit 6d6e185ba29ef4274164b77eab4dc763907f8821 +Author: jmc@openbsd.org +Date: Mon Jul 17 05:41:53 2023 +0000 - upstream: Remove dead code from inside if block. + upstream: - add -P to usage() - sync the arg name to -J in usage() - The only way the if statement can be true is if both dup()s fail, and - in that case the tmp2 can never be set. Coverity CID 291805, ok djm@ + with that in ssh.1 - reformat usage() to match what "man ssh" does on 80width - OpenBSD-Commit-ID: c0d6089b3fb725015462040cd94e23237449f0c8 + OpenBSD-Commit-ID: 5235dd7aa42e5bf90ae54579d519f92fc107036e -commit 05b8e88ebe23db690abbfb1a91111abea09cde08 -Author: Darren Tucker -Date: Thu Mar 30 13:53:29 2023 +1100 +commit f1a9898283a0638667b587ee4a950afd61ab51b0 +Author: jmc@openbsd.org +Date: Mon Jul 17 05:38:10 2023 +0000 - child_set_eng: verify both env pointer and count. + upstream: -P before -p in SYNOPSIS; - If child_set env was called with a NULL env pointer and a non-zero count - it would end up in a null deref, although we don't currently do this. - Prompted by Coverity CID 291850, tweak & ok djm@ + OpenBSD-Commit-ID: 535f5257c779e26c6a662a038d241b017f8cab7c -commit 28f1b8ef9b84b8cd2f6c9889a0c60aa4a90dadfa -Author: dtucker@openbsd.org -Date: Wed Mar 29 01:07:48 2023 +0000 +commit eef4d7e873568e1c84c36bb4034e2c3378250a61 +Author: jsg@openbsd.org +Date: Mon Jul 17 05:36:14 2023 +0000 - upstream: Ignore return from sshpkt_disconnect - - since we set our own return value for the function. Coverity CID 291797, - ok djm@ + upstream: configuation -> configuration - OpenBSD-Commit-ID: 710b57ba954c139240895e23feea41f203201f04 + OpenBSD-Commit-ID: 4776ced33b780f1db0b2902faec99312f26a726b -commit c3da05d95922f5550bcc7815e799474d6a160175 -Author: dtucker@openbsd.org -Date: Wed Mar 29 00:59:08 2023 +0000 +commit dc1dbe94cf6532bd546a3373ad436404f8850e5f +Author: djm@openbsd.org +Date: Mon Jul 17 05:26:38 2023 +0000 - upstream: Plug potential mem leak in process_put. + upstream: move other RCSIDs to before their respective license blocks - It allocates abs_dst inside a loop but only frees it on exit, so free - inside the loop if necessary. Coverity CID 291837, ok djm@ + too no code change - OpenBSD-Commit-ID: a01616503a185519b16f00dde25d34ceaf4ae1a3 + OpenBSD-Commit-ID: ef5bf46b57726e4260a63b032b0b5ac3b4fe9cd4 -commit 13ae327eae598b1043e5ec30e4b170edb3c898a5 +commit ebe11044681caff78834ca6b78311ad19c1860b8 Author: djm@openbsd.org -Date: Wed Mar 29 00:18:35 2023 +0000 +Date: Mon Jul 17 05:22:30 2023 +0000 - upstream: fix memory leak; Coverity CID 291848 + upstream: Move RCSID to before license block and away from #includes, - with/ok dtucker@ + where it caused merge conflict in -portable for each commit :( - OpenBSD-Commit-ID: 37f80cb5d075ead5a00ad1b74175684ab1156ff8 + OpenBSD-Commit-ID: 756ebac963df3245258b962e88150ebab9d5fc20 -commit 9ffa76e1284c85bf459c3dcb8e995733a8967e1b -Author: dtucker@openbsd.org -Date: Tue Mar 28 07:44:32 2023 +0000 +commit 05c08e5f628de3ecf6f7ea20947735bcfa3201e0 +Author: djm@openbsd.org +Date: Mon Jul 17 05:20:15 2023 +0000 - upstream: Plug more mem leaks in sftp by making + upstream: return SSH_ERR_KRL_BAD_MAGIC when a KRL doesn't contain a - make_absolute_pwd_glob work in the same way as make_absolute: you - pass it a dynamically allocated string and it either returns it, or - frees it and allocates a new one. Patch from emaste at freebsd.org and - https://reviews.freebsd.org/D37253 ok djm@ + valid magic number and not SSH_ERR_MESSAGE_INCOMPLETE; the former is needed + to fall back to text revocation lists in some cases; fixes t-cert-hostkey. - OpenBSD-Commit-ID: 85f7404e9d47fd28b222fbc412678f3361d2dffc + OpenBSD-Commit-ID: 5c670a6c0f027e99b7774ef29f18ba088549c7e1 -commit 82b2b8326962b1a98af279bc5bbbbbcab15b3e45 -Author: dtucker@openbsd.org -Date: Tue Mar 28 06:12:38 2023 +0000 +commit c6fad2c3d19b74f0bd0af1ef040fc74f3a1d9ebb +Author: Damien Miller +Date: Mon Jul 17 14:56:14 2023 +1000 - upstream: Remove compat code for OpenSSL < 1.1.* - - since -portable no longer supports them. - - OpenBSD-Commit-ID: ea2893783331947cd29a67612b4e56f818f185ff + avoid AF_LINK on platforms that don't define it -commit b500afcf00ae1b6b73b2ccf171111dfbfeaef74d -Author: dtucker@openbsd.org -Date: Mon Mar 27 23:56:54 2023 +0000 +commit 919bc3d3b712c920de1ae6be5ac6561c98886d7e +Author: djm@openbsd.org +Date: Mon Jul 17 04:08:31 2023 +0000 - upstream: Remove compat code for OpenSSL 1.0.* + upstream: Add support for configuration tags to ssh(1). - versions now that -portable has dropped support for those versions. + This adds a ssh_config(5) "Tag" directive and corresponding + "Match tag" predicate that may be used to select blocks of + configuration similar to the pf.conf(5) keywords of the same + name. - OpenBSD-Regress-ID: 82a8eacd87aec28e4aa19f17246ddde9d5ce7fe7 - -commit 727560e6011efcb36d2f3ac6910444bc775abaa1 -Author: Darren Tucker -Date: Tue Mar 28 18:06:42 2023 +1100 - - Prevent conflicts between Solaris SHA2 and OpenSSL. + ok markus - We used to prevent conflicts between native SHA2 headers and OpenSSL's - by setting OPENSSL_NO_SHA but that was removed prior to OpenSSL 1.1.0 + OpenBSD-Commit-ID: dc08358e70e702b59ac3e591827e5a96141b06a3 -commit 46db8e14b7f186d32173dcdecd5b785334429b8b -Author: Darren Tucker -Date: Tue Mar 28 12:44:03 2023 +1100 +commit 3071d85a47061c1bdaf11a0ac233b501ecba862c +Author: djm@openbsd.org +Date: Mon Jul 17 04:04:36 2023 +0000 - Remove HEADER_SHA_H from previous... + upstream: add a "match localnetwork" predicate. - since it causes more problems than it solves. + This allows matching on the addresses of available network interfaces + and may be used to vary the effective client configuration based on + network location (e.g. to use a ProxyJump when not on a particular + network). + + ok markus@ + + OpenBSD-Commit-ID: cffb6ff9a3803abfc52b5cad0aa190c5e424c139 -commit 72bd68d37387aa5f81da928f6e82f1c88ed8f674 -Author: Darren Tucker -Date: Tue Mar 28 10:35:18 2023 +1100 +commit beec17bb311365b75a0a5941418d4b96df7d7888 +Author: djm@openbsd.org +Date: Mon Jul 17 04:01:10 2023 +0000 - Replace OPENSSL_NO_SHA with HEADER_SHA_H. + upstream: remove vestigal support for KRL signatures - Since this test doesn't use OpenSSL's SHA2 and may cause conflicts we - don't want to include it, but OPENSSL_NO_SHA was removed beginning in - OpenSSL's 1.1 series. + When the KRL format was originally defined, it included support for + signing of KRL objects. However, the code to sign KRLs and verify KRL + signatues was never completed in OpenSSH. + + Now, some years later, we have SSHSIG support in ssh-keygen that is + more general, well tested and actually works. So this removes the + semi-finished KRL signing/verification support from OpenSSH and + refactors the remaining code to realise the benefit - primarily, we + no longer need to perform multiple parsing passes over KRL objects. + + ok markus@ + + OpenBSD-Commit-ID: 517437bab3d8180f695c775410c052340e038804 -commit 99668f2e6e0deb833e46cfab56db59ff0fc28c7e -Author: Darren Tucker -Date: Tue Mar 28 09:50:06 2023 +1100 +commit 449566f64c21b4578d5c0c431badd0328adc53ed +Author: djm@openbsd.org +Date: Mon Jul 17 03:57:21 2023 +0000 - Configure with --target instead of deprecated form. + upstream: Support for KRL extensions. + + This defines wire formats for optional KRL extensions and implements + parsing of the new submessages. No actual extensions are supported at + this point. + + ok markus + + OpenBSD-Commit-ID: ae2fcde9a22a9ba7f765bd4f36b3f5901d8c3fa7 -commit f751d9306c62cd1061f966e6a7483d9bab9c379b -Author: Darren Tucker -Date: Mon Mar 27 22:05:29 2023 +1100 +commit 18ea857770e84825a3a6238bb37f54864487b59f +Author: dtucker@openbsd.org +Date: Fri Jul 14 07:44:21 2023 +0000 - Pass rpath when building 64bit Solaris. + upstream: Include stdint.h for SIZE_MAX. Fixes OPENSSL=no build. + + OpenBSD-Commit-ID: e7c31034a5434f2ead3579b13a7892960651e6b0 -commit a64b935cd450ee8d04c26c9cd728629cf9ca5c91 +commit 20b768fcd13effe0f2d3619661b6c8592c773553 Author: Darren Tucker -Date: Mon Mar 27 19:21:19 2023 +1100 +Date: Fri Jul 14 17:07:32 2023 +1000 - Explicitly disable OpenSSL on AIX test VM. + Fix typo in declaration of nmesg. -commit 7ebc6f060fc2f70495a56e16d210baae6424cd96 -Author: dtucker@openbsd.org -Date: Mon Mar 27 03:56:50 2023 +0000 +commit 4b94d09542e36ebde2eb9ad89bc68431609932de +Author: Damien Miller +Date: Fri Jul 14 15:34:47 2023 +1000 - upstream: Add RevokedHostKeys to percent expansion test. + portable-specific int overflow defence-in-depth - OpenBSD-Regress-ID: c077fd12a38005dd53d878c5b944154dec88d2ff + These too are unreachable, but we want the code to be safe regardless of + context. Reported by Yair Mizrahi @ JFrog -commit f1a17de150f8d309d0c52f9abfaebf11c51a8537 -Author: dtucker@openbsd.org -Date: Mon Mar 27 03:56:11 2023 +0000 +commit 2ee48adb9fc8692e8d6ac679dcc9f35e89ad68f0 +Author: djm@openbsd.org +Date: Fri Jul 14 05:31:44 2023 +0000 - upstream: Add tilde and environment variable expansion to + upstream: add defence-in-depth checks for some unreachable integer - RevokedHostKeys. bz#3552, ok djm@ + overflows reported by Yair Mizrahi @ JFrog; feedback/ok millert@ - OpenBSD-Commit-ID: ce5d8e0219b63cded594c17d4c2958c06918ec0d + OpenBSD-Commit-ID: 52af085f4e7ef9f9d8423d8c1840a6a88bda90bd -commit 009eb4cb48a9708ab9174684dcbcc0f942907abe +commit 4b43bc358ae6f6b19a973679246dc5172f6ac41b Author: djm@openbsd.org -Date: Mon Mar 27 03:31:05 2023 +0000 +Date: Mon Jul 10 04:51:26 2023 +0000 - upstream: fix test: getnameinfo returns a non-zero value on error, not - - (neccessarily) -1. From GHPR#384 + upstream: misplaced debug message - OpenBSD-Commit-ID: d35e2b71268f66f5543a7ea68751972b3ae22b25 + OpenBSD-Commit-ID: d0f12af0a5067a756aa707bc39a83fa6f58bf7e5 -commit 4f0a676486700f10a4788f7e9426e94e39c1c89e -Author: djm@openbsd.org -Date: Mon Mar 27 03:25:08 2023 +0000 +commit 8c7203bcee4c4f98a22487b4631fe068b992099b +Author: Damien Miller +Date: Wed Jul 12 11:41:19 2023 +1000 - upstream: scp: when copying local->remote, check that source file + replace deprecate selinux matchpathcon function - exists before opening SFTP connection to the server. Based on GHPR#370 ok - dtucker, markus + This function is apparently deprecated. Documentation on what is the + supposed replacement is is non-existent, so this follows the approach + glibc used https://sourceware.org/git/?p=glibc.git;a=patch;h=f278835f59 - OpenBSD-Commit-ID: b4dd68e15bfe22ce4fac9960a1066a2b721e54fb - -commit 154d8baf631327163571760c2c524bc93c37567c -Author: Darren Tucker -Date: Mon Mar 27 12:22:30 2023 +1100 - - Also look for gdb error message from OpenIndiana. + ok dtucker@ -commit fbd3811ddb2b6ce2e6dba91fde7352c8978e5412 -Author: Darren Tucker -Date: Mon Mar 27 11:08:00 2023 +1100 +commit 7e8800f5d701efffa39ccb63ca1e095ea777c31a +Author: dtucker@openbsd.org +Date: Thu Jul 6 22:17:59 2023 +0000 - Explicitly disable security key test on aix51 VM. + upstream: minleft and maxsign are u_int so cast appropriately. Prompted - We don't know how to build the shared objects required for the security - key tests so skip them. + by github PR#410, ok deraadt. + + OpenBSD-Commit-ID: 0514cd51db3ec60239966622a0d3495b15406ddd -commit 4922ac3be8a996780ef3dc220411da2e27c29d9c -Author: Darren Tucker -Date: Sun Mar 26 14:49:43 2023 +1100 +commit 94842bfe9b09fc93189c6ed0dc9bbebc1d44a426 +Author: dlg@openbsd.org +Date: Tue Jul 4 03:59:21 2023 +0000 - Split libcrypto and other config flags. + upstream: add support for unix domain sockets to ssh -W - This should allow the automatic OpenSSL version selection in the tests - to work better. + ok djm@ dtucker@ + + OpenBSD-Commit-ID: 3e6d47567b895c7c28855c7bd614e106c987a6d8 -commit 4a948b1469f185e871160a2d70e2a0fce2858f9e -Author: Darren Tucker -Date: Sun Mar 26 14:39:45 2023 +1100 +commit a95fc5eed09a0238fb127b6c50e8498432b79dae +Author: David Seifert +Date: Fri May 12 14:06:01 2023 +0200 - Specify test target if we build without OpenSSL. + gss-serv.c: `MAXHOSTNAMELEN` -> `HOST_NAME_MAX` - When we decide we can't use the versions of OpenSSL available, also - restrict the tests we run to avoid the ones that need OpenSSL. + `MAXHOSTNAMELEN` is not defined in POSIX, which breaks on musl: + https://pubs.opengroup.org/onlinepubs/9699919799/functions/gethostname.html + + Bug: https://bugs.gentoo.org/834044 -commit b308c636f5b5d89eecb98be00b3d56306a005a09 +commit 8a6cd08850f576e7527c52a1b086cae82fab290e Author: Darren Tucker -Date: Sun Mar 26 14:22:53 2023 +1100 +Date: Fri Jun 23 09:49:02 2023 +1000 - Find suitable OpenSSL version. + Update runner OS version for hardenedmalloc test. - Check the installed OpenSSL versions for a suitable one, and if there - isn't (and we don't have a specific version configured) then build - without OpenSSL. + Hardenedmalloc dropped support for "legacy glibc" versions in their + 64dad0a69 so use a newer Ubuntu version for the runner for that test. -commit 021ea5c2860f133f44790970968e0e73208b3a87 +commit cfca6f17e64baed6822bb927ed9f372ce64d9c5b Author: Damien Miller -Date: Fri Mar 24 15:02:52 2023 +1100 +Date: Thu Jun 22 15:04:03 2023 +1000 - Github testing support for BoringSSL + handle sysconf(SC_OPEN_MAX) returning > INT_MAX; + + bz3581; ok dtucker -commit 9a97cd106466a2a9bda2bfaa4c48c4f1b2cc9c1b -Author: Damien Miller -Date: Fri Mar 24 15:34:29 2023 +1100 +commit c1c2ca1365b3f7b626683690bd2c68265f6d8ffd +Author: djm@openbsd.org +Date: Wed Jun 21 05:10:26 2023 +0000 - BoringSSL doesn't support EC_POINT_point2bn() + upstream: better validate CASignatureAlgorithms in ssh_config and - so don't invoke it in unittest - -commit cc5969c033a032d126ff78e5d95cf20abbede4c7 -Author: Damien Miller -Date: Fri Mar 24 15:34:05 2023 +1100 - - another ERR_load_CRYPTO_strings() vestige - -commit 4974293899a068133e976f81d6693670d2b576ca -Author: Damien Miller -Date: Fri Mar 24 15:24:05 2023 +1100 - - don't use obsolete ERR_load_CRYPTO_strings() + sshd_config. - OpenSSL (and elsewhere in OpenSSH) uses ERR_load_crypto_strings() - -commit 3c527d55f906e6970d17c4cab6db90ae9e013235 -Author: Damien Miller -Date: Fri Mar 24 15:23:05 2023 +1100 - - Allow building with BoringSSL - -commit b7e27cfd7f163fc16b4c5d041cc28ee488a5eeec -Author: Damien Miller -Date: Fri Mar 24 15:21:18 2023 +1100 - - put back SSLeay_version compat in configure test + Previously this directive would accept certificate algorithm names, but + these were unusable in practice as OpenSSH does not support CA chains. - Needed to detect old versions and give good "your version is bad" - messages at configure time; spotted by dtucker@ + part of bz3577; ok dtucker@ + + OpenBSD-Commit-ID: a992d410c8a78ec982701bc3f91043dbdb359912 -commit 7280401bdd77ca54be6867a154cc01e0d72612e0 -Author: Damien Miller -Date: Fri Mar 24 13:56:25 2023 +1100 +commit 4e73cd0f4ab3e5b576c56cac9732da62c8fc0565 +Author: djm@openbsd.org +Date: Wed Jun 21 05:08:32 2023 +0000 - remove support for old libcrypto + upstream: make `ssh -Q CASignatureAlgorithms` only list signature - OpenSSH now requires LibreSSL 3.1.0 or greater or - OpenSSL 1.1.1 or greater + algorithms that are valid for CA signing. Previous behaviour was to list all + signing algorithms, including certificate algorithms (OpenSSH certificates do + not support CA chains). part of bz3577; ok dtucker@ - with/ok dtucker@ - -commit abda22fb48302f2142233f71d27c74040288c518 -Author: Darren Tucker -Date: Sun Mar 19 15:36:13 2023 +1100 - - Test latest OpenSSL 1.1, 3.0 and LibreSSL 3.7. - -commit 610ac1cb077cd5a1ebfc21612154bfa13d2ec825 -Author: Darren Tucker -Date: Thu Mar 16 21:38:04 2023 +1100 - - Show 9.3 branch instead of 9.2. - -commit cb30fbdbee869f1ce11f06aa97e1cb8717a0b645 -Author: Damien Miller -Date: Thu Mar 16 08:28:19 2023 +1100 - - depend - -commit 1dba63eb10c40b6fda9f5012ed6ae87e2d3d028e -Author: Damien Miller -Date: Thu Mar 16 08:27:54 2023 +1100 - - crank version + OpenBSD-Commit-ID: 99c2b072dbac0f44fd1f2269e3ff6c1b5d7d3e59 -commit ba7532d0dac9aaf0ad7270664c43837fc9f64a5f +commit a69062f1695ac9c3c3dea29d3044c72aaa6af0ea Author: djm@openbsd.org -Date: Wed Mar 15 21:19:57 2023 +0000 +Date: Wed Jun 21 05:06:04 2023 +0000 - upstream: openssh-9.3 + upstream: handle rlimits > INT_MAX (rlim_t is u64); ok dtucker - OpenBSD-Commit-ID: 8011495f2449c1029bb316bd015eab2e00509848 + bz3581 + + OpenBSD-Commit-ID: 31cf59c041becc0e5ccb0a77106f812c4cd1cd74 -commit 6fd4daafb949b66bf555f3100f715a9ec64c3390 -Author: dtucker@openbsd.org -Date: Tue Mar 14 07:28:47 2023 +0000 +commit 8d33f2aa6bb895a7f85a47189913639086347b75 +Author: djm@openbsd.org +Date: Tue Jun 20 23:59:33 2023 +0000 - upstream: Free KRL ptr in addition to its contents. + upstream: prepare for support for connecting to unix domain sockets - From Coverity CID 291841, ok djm@ + using ssh -W by explicitly decoding PORT_STREAMLOCAL (a negative number) from + the u32 that's passed over the multiplexing socket; previously code would + just cast, which is UB. - OpenBSD-Commit-ID: f146ba08b1b43af4e0d7ad8c4dae3748b4fa31b6 + OpenBSD-Commit-ID: e5ac5f40d354096c51e8c118a5c1b2d2b7a31384 -commit 1d270bd303afaf6d94e9098cbbf18e5e539e2088 -Author: dtucker@openbsd.org -Date: Tue Mar 14 07:26:25 2023 +0000 +commit b4ac435b4e67f8eb5932d8f59eb5b3cf7dc38df0 +Author: djm@openbsd.org +Date: Tue Jun 20 00:05:09 2023 +0000 - upstream: Check pointer for NULL before deref. + upstream: reset comment=NULL for each key in do_fingerprint(); - None of the existing callers seem to do that, but it's worth checking. - From Coverity CID 291834, ok djm@ + fixes "no comment" not showing on when running `ssh-keygen -l` on multiple + keys where one has a comment and other following keys do not. Patch from + Markus Kuhn via GHPR407, bz3580 - OpenBSD-Commit-ID: a0a97113f192a7cb1a2c97b932f677f573cda7a4 + OpenBSD-Commit-ID: 3cce84456fdcd67dc6b84e369f92c6686d111d9b -commit d95af508e78c0cd3dce56b83853baaa59ae295cf -Author: dtucker@openbsd.org -Date: Sun Mar 12 10:40:39 2023 +0000 +commit b53a809a549dcd4fbde554c6aa283e597b15ea33 +Author: millert@openbsd.org +Date: Mon Jun 5 13:24:36 2023 +0000 - upstream: Limit number of entries in SSH2_MSG_EXT_INFO + upstream: Store timeouts as int, not u_int as they are limited to - request. This is already constrained by the maximum SSH packet size but this - makes it explicit. Prompted by Coverity CID 291868, ok djm@ markus@ + INT_MAX. Fixes sign compare warnings systems with 32-bit time_t due to type + promotion. OK djm@ - OpenBSD-Commit-ID: aea023819aa44a2dcb9dd0fbec10561896fc3a09 + OpenBSD-Commit-ID: 48081e9ad35705c5f1705711704a4c2ff94e87b7 -commit 8f287ba60d342b3e2f750e7332d2131e3ec7ecd0 -Author: dtucker@openbsd.org -Date: Sun Mar 12 09:41:18 2023 +0000 +commit 2709809fd616a0991dc18e3a58dea10fb383c3f0 +Author: Philip Hands +Date: Wed May 24 19:41:14 2023 +0200 - upstream: calloc can return NULL but xcalloc can't. + fixup! if -s & -p specified, mention 'sftp -P' on - From Coverity CID 291881, ok djm@ + success - OpenBSD-Commit-ID: 50204b755f66b2ec7ac3cfe379d07d85ca161d2b + SSH-Copy-ID-Upstream: 32686e7c65b4fa2846e474d3315102dfa0f043b0 -commit 83a56a49fd50f4acf900f934279482e4ef329715 -Author: dtucker@openbsd.org -Date: Fri Mar 10 07:17:08 2023 +0000 +commit 204e0bf05161b7641500d7ab266c21217412379f +Author: Darren Tucker +Date: Tue Aug 3 21:25:48 2021 +1000 - upstream: Explicitly ignore return from fcntl + Make ssh-copy-id(1) consistent with OpenSSH. - (... FD_CLOEXEC) here too. Coverity CID 291853. + This makes the ssh-copy-id man page more consistent with the rest of the + OpenSSH man pages: + - new sentence, new line + - no sentences >80 + - N.B. -> NB + - zap unused .Pp + - zap trailing whitespace - OpenBSD-Commit-ID: 99d8b3da9d0be1d07ca8dd8e98800a890349e9b5 + Report from Debian via mindrot bz#3331, diff from jmc at openbsd.org. + + SSH-Copy-ID-Upstream: d8974cfb6242316460ed22a1ccc662800a50c5d3 -commit 0fda9d704d3bbf54a5e64ce02a6fecb11fe7f047 -Author: Damien Miller -Date: Fri Mar 10 15:59:46 2023 +1100 +commit 9de79df66d1430d290fab670bb4b18612875e518 +Author: Philip Hands +Date: Wed May 24 11:45:43 2023 +0200 - bounds checking for getrrsetbyname() replacement; + if -s & -p specified, mention 'sftp -P' on success - Spotted by Coverity in CID 405033; ok millert@ + This was inspired by this: + https://github.com/openssh/openssh-portable/pull/321 + but I thought that it was better to not do the sed patching. + + BTW the reason one can get away with using $SSH_OPTS throughout, despite + the lowercase -p in there, even if sftp is in use, is that the sftp call + is using the already-established ssh master connection, so the port was + passed to the earlier ssh. + + SSH-Copy-ID-Upstream: 1c124d9bfafdbe28a00b683367ebf5750ce12eb2 -commit 89b8df518f21677045599df0ad3e5dd0f39909b5 -Author: dtucker@openbsd.org -Date: Fri Mar 10 04:06:21 2023 +0000 +commit 801cda54c00e0f4e7d89345a90874c8d05dc233a +Author: Philip Hands +Date: Tue May 23 23:07:11 2023 +0200 - upstream: Plug mem leak on error path. Coverity CID 405026, ok djm@. + drop whitespace - OpenBSD-Commit-ID: 8212ca05d01966fb5e72205c592b2257708a2aac + SSH-Copy-ID-Upstream: e604fae1cdee35c18055d35dcec530cf12ef00ad -commit bf4dae0ad192c3e2f03f7223834b00d88ace3d3e -Author: Darren Tucker -Date: Fri Mar 10 14:46:57 2023 +1100 +commit 288482f53613f3e74544eb92deeb24f7c7f1f371 +Author: Philip Hands +Date: Tue May 23 20:52:13 2023 +0200 - Add prototypes for mkstemp replacements. + make -x also apply to the target script - Should prevent warnings due to our wrapper function. + SSH-Copy-ID-Upstream: 3c4214704f427bd0654adf9b0fc079253db21cf4 -commit 4e04d68d6a33cdc73b831fd4b5e6124175555d3d -Author: dtucker@openbsd.org -Date: Fri Mar 10 03:01:51 2023 +0000 +commit b79e7b88ed44f0e4339f0ff35c96c78a92175a8d +Author: Philip Hands +Date: Tue May 23 16:46:42 2023 +0200 - upstream: Expliticly ignore return code from fcntl(.. FD_CLOEXEC) since + add -t option to specify the target path - there's not much we can do anyway. From Coverity CID 291857, ok djm@ + Allow the default target path (.ssh/authorized_files) to be over-riden - OpenBSD-Commit-ID: 051429dd07af8db3fec10d82cdc78d90bb051729 + This was inspired by this MR from Panagiotis Cheilaris + + https://gitlab.com/phil_hands/ssh-copy-id/-/merge_requests/8 + + SSH-Copy-ID-Upstream: a942a0e076874adb6d8b2f0fb76d6c7918190fcd -commit d6d38fd77cbe091c59e1bb720c3a494df4990640 -Author: djm@openbsd.org -Date: Fri Mar 10 02:32:04 2023 +0000 +commit 914f4ad138714c471ba72fb6d5496b6235320edd +Author: Carlos Rodríguez Gili +Date: Tue Apr 20 19:23:57 2021 +0200 - upstream: Like sshd_config, some ssh_config options are not + Fix test error for /bin/sh on Solaris 10 and older - first-match-wins. sshd_config.5 was fixed in r1.348, this is the same for - this file + On Solaris 10 and older targets /bin/sh is not POSIX-compliant. + Test -z `...` fails with error 'sh: test: argument expected'. + Using quotes around backticks fixes this and doesn't break + POSIX compatibility. - OpenBSD-Commit-ID: 7be55b9351cde449b136afcc52d07aa4113b215e + SSH-Copy-ID-Upstream: 98394072a3f985b2650c1e8eab2fef84e38cc065 -commit 7187d3f86bf8f2066cc9941f217d23b0cacae25e -Author: dtucker@openbsd.org -Date: Fri Mar 10 02:24:56 2023 +0000 +commit bd382dca316c721aed1e45edcf4c4e0f6374afb0 +Author: Jakub Jelen +Date: Tue Mar 2 21:34:05 2021 +0000 - upstream: Remove no-op (int) > INT_MAX checks + Remove outdated comment - since they can never be true. From Coverity CID 405031, ok djm@ + The commit b068122 removed the code dropping the trailing colon, but the comment stayed leaving the code confusing for future readers - OpenBSD-Commit-ID: 9df3783b181e056595e2bb9edf7ed41d61cf8e84 + SSH-Copy-ID-Upstream: 930d39f238117cd53810240ec989d0356aa1c1f6 -commit 77adde4305542ebe3005dd456122624fe2347b01 +commit bdcaf7939029433635d63aade8f9ac762aca2bbe Author: Darren Tucker -Date: Fri Mar 10 13:27:29 2023 +1100 +Date: Wed May 10 18:50:46 2023 +1000 - Wrap mkstemp calls with umask set/restore. + Special case OpenWrt instead of Dropbear. - glibc versions 2.06 and earlier did not set a umask on files created by - mkstemp created the world-writable. Wrap mkstemp to set and restore - the umask. From Coverity (CIDs 291826 291886 291891), ok djm@ + OpenWrt overrides the location of authorized_keys for root. Currently we + assume that all Dropbear installations behave this way, which is not the + case. Check for OpenWrt and root user before using that location instead + of assuming that for all Dropbear servers. Prompted by Github PR#250. + + SSH-Copy-ID-Upstream: 0e1f5d443a9967483c33945793107ae3f3e4af2d -commit 633d3dc2a1e9e2a013d019a0576a0771c8423713 -Author: jcs@openbsd.org -Date: Thu Mar 9 21:06:24 2023 +0000 +commit cf84498f67abe93f813a296167b406a0db7b288e +Author: Philip Hands +Date: Thu May 18 18:20:55 2023 +0200 - upstream: modify parentheses in conditionals to make it clearer what is + ssh-copy-id: add -x option (for debugging) - being assigned and what is being checked + This option causes the ssh-copy-id to run with set -x - ok djm dtucker + SSH-Copy-ID-Upstream: a0ee367ea8c0a29c8b4515245e408d2d349e7844 + +commit b4a1efdcb88f03394c08e7f68ed4e11676830002 +Author: Philip Hands +Date: Thu May 18 17:14:41 2023 +0200 + + update copyright notices - OpenBSD-Commit-ID: 19c10baa46ae559474409f75a5cb3d0eade7a9b8 + SSH-Copy-ID-Upstream: c284ed33b361814ea48ff68cbd01ca525b2bf117 -commit 733030840c4772f858de95d5940ec0c37663e8b0 -Author: dtucker@openbsd.org -Date: Thu Mar 9 07:11:05 2023 +0000 +commit fcd78e31cdd45a7e69ccfe6d8a3b1037dc1de290 +Author: djm@openbsd.org +Date: Wed May 24 23:01:06 2023 +0000 - upstream: Re-split the merge of the reorder-hostkeys test. + upstream: fix AuthorizedPrincipalsCommand when AuthorizedKeysCommand - In the kex_proposal_populate_entries change I merged the the check for - reordering hostkeys with the actual reordering, but kex_assemble_names - mutates options.hostkeyalgorithms which renders the check ineffective. - Put the check back where it was. Spotted and tested by jsg@, ok djm@ + appears previously in configuration. Reported by John Meyers in bz3574 ok + dtucker@ - OpenBSD-Commit-ID: a7469f25a738db5567395d1881e32479a7ffc9de + OpenBSD-Commit-ID: 1c92e4517284386703936e1d3abaa36cfacf1951 -commit 54ac4ab2b53ce9fcb66b8250dee91c070e4167ed -Author: djm@openbsd.org -Date: Thu Mar 9 06:58:26 2023 +0000 +commit 5ec5504f1d328d5bfa64280cd617c3efec4f78f3 +Author: dtucker@openbsd.org +Date: Wed May 10 10:04:20 2023 +0000 - upstream: include destination constraints for smartcard keys too. + upstream: Remove unused prototypes for ssh1 RSA functions. - Spotted by Luci Stanescu; ok deraadt@ markus@ + From lengyijun via github PR#396. - OpenBSD-Commit-ID: add879fac6903a1cb1d1e42c4309e5359c3d870f + OpenBSD-Commit-ID: 379a5afa8b7a0f3cba0c8a9bcceb4e5e33a5c1ef -commit bfd1ad01d974a316b60622759ad17537fa2d92b4 +commit fbf362b3891ae4b36052d1b39f37fc618b41c476 Author: Darren Tucker -Date: Thu Mar 9 18:24:54 2023 +1100 +Date: Tue May 9 19:26:56 2023 +1000 - Limit the number of PAM environment variables. - - xcalloc has its own limits, but these are specific to PAM. From - Coverity CID 405198, ok djm@ + main(void) to prevent unused variable warning. -commit a231414970e01a35f45a295d5f93698fa1249b28 +commit baf854c8bb0a6d0af5c696c801e631a48dabbaba Author: Darren Tucker -Date: Thu Mar 9 18:19:44 2023 +1100 +Date: Tue May 9 19:25:45 2023 +1000 - Limit the number of PAM environment variables. - - From Coverity CID 405194, tweaks and ok djm@ + Remove warning pragma since clang doesn't like it. -commit 36c6c3eff5e4a669ff414b9daf85f919666e8e03 -Author: dtucker@openbsd.org -Date: Wed Mar 8 06:21:32 2023 +0000 +commit 5fbb7a1349fbbb48ccb1b8cafff2c1854370d87d +Author: Darren Tucker +Date: Tue May 9 17:13:33 2023 +1000 - upstream: Plug mem leak. Coverity CID 405196, ok djm@ - - OpenBSD-Commit-ID: 175f09349387c292f626da68f65f334faaa085f2 + Suppress warning for snprintf truncation test. -commit dfb9b736e1ccf9e6b03eea21cd961f4fd0634c98 -Author: tb@openbsd.org -Date: Wed Mar 8 05:33:53 2023 +0000 +commit 47742c513e4e045ecc985c6483fc5c8b050acda2 +Author: Darren Tucker +Date: Tue May 9 17:12:50 2023 +1000 - upstream: ssh-pkcs11: synchronize error messages with errors - - A handful of error messages contained incorrect function names or - otherwise inaccurate descriptions. Fix them to match reality. - - input/ok djm + Update OpenSSL compat test for 3.x. + +commit 86ad25d455a2313126125540e61e0f9314283f88 +Author: Darren Tucker +Date: Mon May 8 20:23:08 2023 +1000 + + Add macos13 PAM test target. + +commit 77cca2c4b13bc6e5f389565583b6202b0d1bccc2 +Author: Darren Tucker +Date: Mon May 8 20:14:46 2023 +1000 + + Skip agent-peereid test on macos13. - OpenBSD-Commit-ID: 165a15db52f75b31e1804b043480c36af09f3411 + sudo -S nobody doesn't work on the github runners (probably a + permission issue) so skip that test. -commit 51875897b81b5c21b80c256a29597916edbde454 -Author: guenther@openbsd.org -Date: Wed Mar 8 04:43:12 2023 +0000 +commit b356b8e91678ea295bcf44df5248c3fbf499fdcf +Author: Darren Tucker +Date: Mon May 8 20:14:28 2023 +1000 - upstream: Delete obsolete /* ARGSUSED */ lint comments. + Include config.guess in debug output. + +commit b7afd8a4ecaca8afd3179b55e9db79c0ff210237 +Author: Darren Tucker +Date: Mon May 8 20:12:59 2023 +1000 + + Handle OpenSSL >=3 ABI compatibility. - ok miod@ millert@ + Beyond OpenSSL 3.0, the ABI compatibility guarantees are wider (only + major must match instead of major and minor in earlier versions). + bz#3548, ok djm@ + +commit 0e9e2663eb2c6e9c3e10d15d70418312ae67e542 +Author: dtucker@openbsd.org +Date: Mon May 1 08:57:29 2023 +0000 + + upstream: Import regenerated moduli. - OpenBSD-Commit-ID: 7be168a570264d59e96a7d2d22e927d45fee0e4c + OpenBSD-Commit-ID: 3d5f811cfcaed8cc4a97e1db49ac61bdf118113c -commit a76085bda883c2104afb33ab0334eca190927362 +commit d9687f49682e1e93383fc15ab2018850b2ef38c3 Author: Darren Tucker -Date: Wed Mar 8 17:25:37 2023 +1100 +Date: Mon May 1 11:45:14 2023 +1000 - Extra brackets to prevent warning. + Add macos-13 test target. + + Also flatten OS list for clarity. -commit 147ae57d4dfa0508109f93b78a7d8b92819e1f83 +commit aacfd6767497b8fa6d41ecdd3f8e265d1e9ef1f6 Author: djm@openbsd.org -Date: Wed Mar 8 00:05:58 2023 +0000 +Date: Sun Apr 30 22:54:22 2023 +0000 - upstream: use RSA/SHA256 when testing usability of private key in + upstream: adjust ftruncate() logic to handle servers that reorder - agent; with/ok dtucker + requests. - OpenBSD-Commit-ID: fe1382e2fdf23fcae631308e72342bad56066a56 + sftp/scp will ftruncate the destination file after a transfer completes, + to deal with the case where a longer destination file already existed. + We tracked the highest contiguous block transferred to deal with this + case, but our naive tracking doesn't deal with servers that reorder + requests - a misfeature strictly permitted by the protocol but seldom + implemented. + + Adjust the logic to ftruncate() at the highest absolute block received + when the transfer is successful. feedback deraadt@ ok markus@ + + prompted by https://github.com/openssh/openssh-portable/commit/9b733#commitcomment-110679778 + + OpenBSD-Commit-ID: 4af7fac75958ad8507b4fea58706f3ff0cfddb1b -commit 27fd251bc906a763e70ce0f27c8abdf8bbd1e416 +commit c8eb3941758615c8284a48fff47872db926da63c Author: djm@openbsd.org -Date: Wed Mar 8 00:05:37 2023 +0000 +Date: Wed Apr 26 01:36:03 2023 +0000 - upstream: use RSA/SHA256 when testing usability of private key; + upstream: Check for ProxyJump=none in CanonicalizeHostname logic. - based on fix in bz3546 by Dmitry Belyavskiy; with/ok dtucker + Previously ssh would incorrectly refuse to canonicalise the hostname + if ProxyJump was explicitly set to "none" when CanonicalizeHostname=yes - OpenBSD-Commit-ID: 0ef414cc363a832f9fab92a5da0234448bce2eba + bz3567; ok dtucker + + OpenBSD-Commit-ID: 80a58e43c3a32f97361282f756ec8d3f37989efd -commit eee9f3fc3d52ae7d2106929bb06b7f291fb0b81a -Author: djm@openbsd.org -Date: Tue Mar 7 21:47:42 2023 +0000 +commit ac383f3a5c6f529a2e8a5bc44af79a08c7da294e +Author: jsg@openbsd.org +Date: Wed Apr 12 14:22:04 2023 +0000 - upstream: refactor to be more readable top to bottom. Prompted by + upstream: remove duplicate signal.h include - Coverity CID 405048 which was a false-positive fd leak; ok dtucker@ + OpenBSD-Commit-ID: 30c0a34d74d91ddd0e6992525da70d3293392f70 + +commit 740dafa20f3f3d325f6f5d44e990b8c8a6d3d816 +Author: jsg@openbsd.org +Date: Wed Apr 12 08:53:54 2023 +0000 + + upstream: fix double words ok dtucker@ - OpenBSD-Commit-ID: fc55ec2af622a017defb9b768bf26faefc792c00 + OpenBSD-Commit-ID: 44d3223902fbce5276422bdc8063ab72a4078489 -commit 42a06b29a4c99272bf690f9b3be520b08b448dc5 +commit 6452f89577ec4f22440c31b8e19b061d1a7c4b2a Author: Darren Tucker -Date: Tue Mar 7 18:34:41 2023 +1100 +Date: Tue Apr 11 16:49:19 2023 +1000 - Add header changes missed in previous. + Test against LibreSSL 3.7.2. -commit 4710077096edff2e6926dd5b15bf586491d317db -Author: dtucker@openbsd.org -Date: Tue Mar 7 06:09:14 2023 +0000 +commit 2138f6be595ca106fe4805a1e3ab9c4d8acc697b +Author: Damien Miller +Date: Thu Apr 6 14:33:10 2023 +1000 - upstream: Fix mem leak in environment setup. - - From jjelen at redhat.com via bz#2687, ok djm@ + remove unused upper-case const strings in fmtfp - OpenBSD-Commit-ID: 9f9e4ba3cac003e6f81da3bcebd1b9ec43e7f353 + no float format that uses upper-case is supported nor are hex floats. + ok dtucker -commit 03acc50d0ccb78fc91d1570de1cd0fdfea646028 -Author: dtucker@openbsd.org -Date: Mon Mar 6 12:15:47 2023 +0000 +commit 484c5e6168fdb22cbcd73c4ff987cf9ca47989ca +Author: djm@openbsd.org +Date: Thu Apr 6 03:56:02 2023 +0000 - upstream: Unit test for kex_proposal_populate_entries. + upstream: simplify sshsig_find_principals() similar to what happened to - OpenBSD-Regress-ID: bdb211d80d572a08bf14b49fe2a58b9ff265c006 + sshsig_check_allowed_keys() in r1.31, removing some dead code + + OpenBSD-Commit-ID: a493e628d4d6c08f878c276d998f4313ba61702d -commit 3f9231c2e1f374ebb08016ba00ea97b47c0ed20b +commit 3a7b110fbc7e096423f8f7b459deffe4c65d70f4 Author: djm@openbsd.org -Date: Tue Mar 7 05:37:26 2023 +0000 +Date: Thu Apr 6 03:21:31 2023 +0000 - upstream: fix memory leak in process_read() path; Spotted by James + upstream: remove redundant ssh!=NULL check; we'd already - Robinson in GHPR363; ok markus@ + dereferenced it - OpenBSD-Commit-ID: cdc2d98e6478b7e7f3a36976845adae3820429d8 + OpenBSD-Commit-ID: 852bf12591ec5a9fb12dcbde9b1fd3945ad0df3c -commit c5e6e890839ec520ab9301a92cba56303749dea2 +commit 2519110659a1efac6c976895a86659d1b341c91b Author: djm@openbsd.org -Date: Tue Mar 7 01:30:52 2023 +0000 +Date: Thu Apr 6 03:19:32 2023 +0000 - upstream: correct size for array argument when changing + upstream: match_user() shouldn't be called with user==NULL unless - UMAC_OUTPUT_LEN Coverity CID 291845; ok dtucker@ + host and ipaddr are also NULL - OpenBSD-Commit-ID: 2eb017d10705bb623d4418691f961c930eafaec0 + OpenBSD-Commit-ID: fa3518346c21483e9e01a2e4b9436ae501daf8ea -commit 9641753e0fd146204d57b2a4165f552a81afade4 -Author: dtucker@openbsd.org -Date: Mon Mar 6 12:14:48 2023 +0000 +commit 3b9ceaad7ad63c1c03c2a89e148340ad3a62a482 +Author: djm@openbsd.org +Date: Thu Apr 6 03:12:32 2023 +0000 - upstream: Refactor creation of KEX proposal. + upstream: don't care about glob() return value here. - This adds kex_proposal_populate_entries (and corresponding free) which - populates the KEX proposal array with dynamically allocated strings. - This replaces the previous mix of static and dynamic that has been the - source of previous leaks and bugs. Remove unused compat functions. - With & ok djm@. - - OpenBSD-Commit-ID: f2f99da4aae2233cb18bf9c749320c5e040a9c7b + OpenBSD-Commit-ID: 85bb82fea90478a482e9f65a1bec0aa24227fd66 -commit aa59d6a489fb20973fa461d0fdb1110db412947b +commit 09d8da0849e2791b2500267cda333cd238f38754 Author: dtucker@openbsd.org -Date: Sun Mar 5 09:24:35 2023 +0000 +Date: Mon Apr 3 08:10:54 2023 +0000 - upstream: Fix mem and FILE leaks in moduli screening. + upstream: Move up null check and simplify process_escapes. - If multiple -Ocheckpoint= options are passed, the earlier ones would - be overwritten and leaked. If we use an input file that wasn't stdin, - close that. From Coverity CIDs 291884 and 291894. + Based on Coverity CID 291863 which points out we check the channel + pointer for NULLness after dereferencing it. Move this to the start + of the function, and while there simplify initialization of efc a bit. + ok djm@ - OpenBSD-Commit-ID: a4d9d15f572926f841788912e2b282485ad09e8b + OpenBSD-Commit-ID: de36e5ad6fde0fe263ca134e986b9095dc59380a -commit 23b8cb41767af99a1aac24589d1882d9c8c2c205 -Author: dtucker@openbsd.org -Date: Sun Mar 5 08:18:58 2023 +0000 +commit b36b162be5e6206f12b734222b7bc517c13a6bc8 +Author: Damien Miller +Date: Fri Mar 31 14:51:20 2023 +1100 - upstream: Plug mem leak in moduli checkpoint option parsing. - - From Coverity CID 291894. + need va_end() after va_copy(); ok dtucker - OpenBSD-Commit-ID: 9b1aba2d049741ae21c8dc4560a7e29ab17310f4 + spotted by Coverity -commit fc7f8f2188d4a4fc8ba77eddbe863c7665666db5 +commit f703757234a5c585553e72bba279b255a272750a Author: dtucker@openbsd.org -Date: Sun Mar 5 05:34:09 2023 +0000 +Date: Fri Mar 31 05:56:36 2023 +0000 - upstream: Remove unused compat.h includes. - - We've previously removed a lot of the really old compatibility code, - and with it went the need to include compat.h in most of the files that - have it. + upstream: Explicitly ignore return from waitpid here too. - OpenBSD-Commit-ID: 5af8baa194be00a3092d17598e88a5b29f7ea2b4 + OpenBSD-Commit-ID: eef2403df083c61028969fc679ee370373eacacb -commit 6c165c36246d8004c20e1df5cec4961a5ac422d6 +commit 6b73aa29035991d1448a1a76f63ac152a6bf931c Author: dtucker@openbsd.org -Date: Sat Mar 4 03:22:59 2023 +0000 +Date: Fri Mar 31 04:45:08 2023 +0000 - upstream: Use time_t for x11 timeout. + upstream: Explictly ignore return codes - Use time_t instead of u_int for remaining x11 timeout checks for 64bit - time_t safety. From Coverity CIDs 405197 and 405028, ok djm@ + where we don't check them. - OpenBSD-Commit-ID: 356685bfa1fc3d81bd95722d3fc47101cc1a4972 + OpenBSD-Commit-ID: 1ffb03038ba1b6b72667be50cf5e5e396b5f2740 -commit 4a3918f51bd2d968387e7aa87e33b32c78077fb4 +commit 6f0308a3e717ebe68eeb3f95253612fab5dbf20e Author: dtucker@openbsd.org -Date: Fri Mar 3 10:23:42 2023 +0000 +Date: Fri Mar 31 04:42:29 2023 +0000 - upstream: Ensure ms_remain is always initialized + upstream: Return immediately from get_sock_port - similar to what we do in ssh_packet_write_wait. bz#2687, from jjelen - at redhat.com. + if sock <0 so we don't call getsockname on a negative FD. From Coverity + CID 291840, ok djm@ - OpenBSD-Commit-ID: a50e0541cf823f8d1c72f71ccde925d3dbe6dfac + OpenBSD-Commit-ID: de1c1130646230c2eda559831fc6bfd1b61d9618 -commit e44846a4487d2885ac7f2610be09b1e2bf52249b -Author: dtucker@openbsd.org -Date: Fri Mar 3 09:48:51 2023 +0000 +commit 1c1124dc901fca1ea2cb762044b8f1a5793a2bed +Author: djm@openbsd.org +Date: Fri Mar 31 04:23:02 2023 +0000 - upstream: Check for non-NULL before string + upstream: don't leak arg2 on parse_pubkey_algos error path; ok - comparison. From jjelen at redhat.com via bz#2687. + dtucker@ - OpenBSD-Commit-ID: 0d9b2e0cac88a311b5766b1aef737082583c285f + OpenBSD-Commit-ID: 7d0270ad3dd102412ca76add2b3760518abdef75 -commit 1842d523fae63b862ce8e60725c9b606cddb86a6 +commit 8ba2d4764bb6a4701cd447d8b52604622ffe65f4 Author: djm@openbsd.org -Date: Fri Mar 3 05:00:34 2023 +0000 +Date: Fri Mar 31 04:22:27 2023 +0000 - upstream: guard against getsockname(-1, ...) from Coverity CID - - 291832 + upstream: clamp max number of GSSAPI mechanisms to 2048; ok dtucker - OpenBSD-Commit-ID: e58d5227327917d189229b7f0b37d2780f360d5f + OpenBSD-Commit-ID: ce66db603a913d3dd57063e330cb5494d70722c4 -commit 78571a5fe9847d40d7f220c92b707574ae9ec4ce +commit 1883841fc13d0eada8743cac5d3abe142ee2efa7 Author: djm@openbsd.org -Date: Fri Mar 3 04:36:20 2023 +0000 +Date: Fri Mar 31 04:21:56 2023 +0000 - upstream: some options are not first-match-wins. Mention that there + upstream: don't print key if printing hostname failed; with/ok - are exceptions at the start of the manpage and label some of them in the - option description. + dtucker@ - OpenBSD-Commit-ID: 3b74728446fa6fc8742769eeb8c3674e233e84c4 + OpenBSD-Commit-ID: ad42971a6ee5a46feab2d79f7f656f8cf4b119f3 -commit d1c1b3272e8895a96c4f5889bd6e07a8525bd9f1 +commit c6011129cafe4c411f6ef670a4cf271314708eb8 Author: djm@openbsd.org -Date: Fri Mar 3 04:34:49 2023 +0000 +Date: Fri Mar 31 04:04:15 2023 +0000 - upstream: actually print "channeltimeout none" in config dump mode; - - spotted via Coverity CID 405022 + upstream: remove redundant test - OpenBSD-Commit-ID: b074b52bf138b75f08264e8da15880b29c7a630f + OpenBSD-Commit-ID: 6a0b719f9b1ae9d42ad8c5b144c7962c93792f7c -commit 8bf61e95610b48192d4e1720cc15d9004617301d -Author: Darren Tucker -Date: Fri Mar 3 14:50:03 2023 +1100 +commit 4fb29eeafb40a2076c0dbe54e46b687c318f87aa +Author: djm@openbsd.org +Date: Fri Mar 31 04:00:37 2023 +0000 - Add Coverity badges. + upstream: don't attempt to decode a ridiculous number of + + attributes; harmless because of bounds elsewhere, but better to be explicit + + OpenBSD-Commit-ID: 1a34f4b6896155b80327d15dc7ccf294b538a9f2 -commit 93291bd723959adf462b1df958106cf07a7734dd -Author: dtucker@openbsd.org -Date: Fri Mar 3 03:12:24 2023 +0000 +commit fc437c154ef724621a4af236de9bc7e51a8381ae +Author: djm@openbsd.org +Date: Fri Mar 31 03:22:49 2023 +0000 - upstream: Check return values of dup2. Spotted by Coverity, ok djm@ + upstream: remove unused variable; prompted by Coverity CID 291879 - OpenBSD-Commit-ID: 19fb1b53072826d00c67df677731d2f6c1dd602b + OpenBSD-Commit-ID: 4c7d20ef776887b0ba1aabcfc1b14690e4ad0a40 -commit e37261dff33af23f37202cfce0848d36f5c1055c +commit 0eb8131e4a53b33a8fc9b9ab694e6b6778b87ade Author: dtucker@openbsd.org -Date: Fri Mar 3 02:37:58 2023 +0000 +Date: Fri Mar 31 00:44:29 2023 +0000 - upstream: Use time_t for x11_refuse_time timeout. We need + upstream: Check fd against >=0 instead of >0 in error path. The - SSH_TIME_T_MAX for this, so move from misc.c to misc.h so it's available. - Fixes a Coverity warning for 64bit time_t safety, ok djm@ + dup could in theory return fd 0 although currently it doesn't in practice. + From Dmitry Belyavskiy vi github PR#238. - OpenBSD-Commit-ID: c69c4c3152cdaab953706db4ccf4d5fd682f7d8d + OpenBSD-Commit-ID: 4a95f3f7330394dffee5c749d52713cbf3b54846 -commit 32755a98c29114b13f4c9d47454bbb265b932ad7 +commit 7174ba6f8a431ca4257767a260fc50e204068242 Author: dtucker@openbsd.org -Date: Fri Mar 3 02:34:29 2023 +0000 +Date: Thu Mar 30 07:19:50 2023 +0000 - upstream: Check return value from fctnl and warn on failure. + upstream: Ignore return value from muxclient(). It normally loops - Spotted by Coverity, ok djm@ + without returning, but it if returns on failure we immediately exit. + Coverity CID 405050. - OpenBSD-Commit-ID: 2097c7db3cf657f1e3a6c5077041bacc63143cab + OpenBSD-Commit-ID: ab3fde6da384ea588226037c38635a6b2e015295 -commit 5fc60e8246c36b8255f72a937ebe9787b39648c6 -Author: dtucker@openbsd.org -Date: Thu Mar 2 11:10:27 2023 +0000 +commit a4c1c2513e36f111eeaa1322c510067930e5e51e +Author: Damien Miller +Date: Fri Mar 31 14:17:22 2023 +1100 - upstream: Remove SUDO in proxy command wrapper. Anything that needs + don't call connect() on negative socket - sudo is already run by it, and it breaks if root isn't in sudoers. + Coverity CID 405037 + +commit 34ee842cdd981a759fe8f0d4a37521f9a1c63170 +Author: djm@openbsd.org +Date: Thu Mar 30 03:05:01 2023 +0000 + + upstream: return SSH_ERR_KEY_NOT_FOUND if the allowed_signers file - OpenBSD-Regress-ID: 6cf22fda32a89c16915f31a6ed9bbdbef2a3bac9 + is empty, not SSH_ERR_INTERNAL_ERROR. Also remove some dead code spotted + by Coverity; with/ok dtucker@ + + OpenBSD-Commit-ID: 898a1e817cda9869554b1f586a434f67bcc3b650 -commit 0d514659b23a257247491179cfbb53a6dd64e164 +commit f108e77a9dc9852e72215af1bf27731c48434557 Author: dtucker@openbsd.org -Date: Thu Mar 2 08:24:41 2023 +0000 +Date: Thu Mar 30 00:49:37 2023 +0000 - upstream: Fix breakage on dhgex test. + upstream: Remove dead code from inside if block. - This was due to the sshd logs being written to the wrong log file. - While there, make save_debug_logs less verbose, write the name of the - tarball to regress.log and use $SUDO to remove the old symlinks (which - shouldn't be needed, but won't hurt). Initial problem spotted by anton@. + The only way the if statement can be true is if both dup()s fail, and + in that case the tmp2 can never be set. Coverity CID 291805, ok djm@ - OpenBSD-Regress-ID: 9c44fb9cd418e6ff31165e7a6c1f9f11a6d19f5b + OpenBSD-Commit-ID: c0d6089b3fb725015462040cd94e23237449f0c8 -commit 860201201d4ae655702807966901682cff30a171 -Author: dtucker@openbsd.org -Date: Thu Mar 2 08:14:52 2023 +0000 +commit 05b8e88ebe23db690abbfb1a91111abea09cde08 +Author: Darren Tucker +Date: Thu Mar 30 13:53:29 2023 +1100 - upstream: Quote grep and log message better. + child_set_eng: verify both env pointer and count. - OpenBSD-Regress-ID: 3823d9063127169736aa274b1784cb28e15b64d4 + If child_set env was called with a NULL env pointer and a non-zero count + it would end up in a null deref, although we don't currently do this. + Prompted by Coverity CID 291850, tweak & ok djm@ -commit 03a03c6002525f5ad9c8fc874a5d5826a35d9858 +commit 28f1b8ef9b84b8cd2f6c9889a0c60aa4a90dadfa Author: dtucker@openbsd.org -Date: Thu Mar 2 06:41:56 2023 +0000 +Date: Wed Mar 29 01:07:48 2023 +0000 - upstream: Always call fclose on checkpoints. + upstream: Ignore return from sshpkt_disconnect - In the case of an fprintf failure we would not call fclose which would - leak the FILE pointer. While we're there, try to clean up the temp file - on failure. Spotted by Coverity, ok djm@ + since we set our own return value for the function. Coverity CID 291797, + ok djm@ - OpenBSD-Commit-ID: 73c7ccc5d4fcc235f54c6b20767a2815408525ef + OpenBSD-Commit-ID: 710b57ba954c139240895e23feea41f203201f04 -commit 13fe8f9785e6d90400ce548939a0b0ddc11fcb3c +commit c3da05d95922f5550bcc7815e799474d6a160175 Author: dtucker@openbsd.org -Date: Wed Mar 1 21:54:50 2023 +0000 +Date: Wed Mar 29 00:59:08 2023 +0000 - upstream: Remove old log symlinks + upstream: Plug potential mem leak in process_put. - before creating new ones. In -portable some platforms don't like - overwriting existing symlinks. + It allocates abs_dst inside a loop but only frees it on exit, so free + inside the loop if necessary. Coverity CID 291837, ok djm@ - OpenBSD-Regress-ID: 7e7ddc0beb73e945e1c4c58d51c8a125b518120f + OpenBSD-Commit-ID: a01616503a185519b16f00dde25d34ceaf4ae1a3 -commit 131fcbcaffd1e3bcf5ab766ec497b5d768955310 -Author: Darren Tucker -Date: Wed Mar 1 23:23:02 2023 +1100 +commit 13ae327eae598b1043e5ec30e4b170edb3c898a5 +Author: djm@openbsd.org +Date: Wed Mar 29 00:18:35 2023 +0000 - Adjust test jobs for new log directory. + upstream: fix memory leak; Coverity CID 291848 + + with/ok dtucker@ + + OpenBSD-Commit-ID: 37f80cb5d075ead5a00ad1b74175684ab1156ff8 -commit a6f4ac8a2baf77e5361cfa017d0dc250d1409bec +commit 9ffa76e1284c85bf459c3dcb8e995733a8967e1b Author: dtucker@openbsd.org -Date: Wed Mar 1 09:29:32 2023 +0000 +Date: Tue Mar 28 07:44:32 2023 +0000 - upstream: Rework logging for the regression tests. + upstream: Plug more mem leaks in sftp by making - Previously we would log to ssh.log and sshd.log, but that is insufficient - for tests that have more than one concurent ssh/sshd. + make_absolute_pwd_glob work in the same way as make_absolute: you + pass it a dynamically allocated string and it either returns it, or + frees it and allocates a new one. Patch from emaste at freebsd.org and + https://reviews.freebsd.org/D37253 ok djm@ - Instead, we'll log to separate datestamped files in a $OBJ/log/ and - leave a symlink at the previous location pointing at the most recent - instance with an entry in regress.log showing which files were created - at each point. This should be sufficient to reconstruct what happened - even for tests that use multiple instances of each program. If the test - fails, tar up all of the logs for later analysis. - - This will let us also capture the output from some of the other tools - which was previously sent to /dev/null although most of those will be - in future commits. - - OpenBSD-Regress-ID: f802aa9e7fa51d1a01225c05fb0412d015c33e24 + OpenBSD-Commit-ID: 85f7404e9d47fd28b222fbc412678f3361d2dffc -commit 8ead62ed5e86c7df597d8604f332f49cd1527b85 +commit 82b2b8326962b1a98af279bc5bbbbbcab15b3e45 Author: dtucker@openbsd.org -Date: Tue Feb 28 21:31:50 2023 +0000 +Date: Tue Mar 28 06:12:38 2023 +0000 - upstream: fatal out if allocating banner string fails to avoid + upstream: Remove compat code for OpenSSL < 1.1.* - potential null deref later in sscanf. Spotted by Coverity, ok deraadt@ + since -portable no longer supports them. - OpenBSD-Commit-ID: 74e8d228ac00552e96e9e968dfcccf8dd1f46ad5 + OpenBSD-Commit-ID: ea2893783331947cd29a67612b4e56f818f185ff -commit 44ca56ba0b3f531f1d85730cc701097cd49e6868 +commit b500afcf00ae1b6b73b2ccf171111dfbfeaef74d Author: dtucker@openbsd.org -Date: Tue Feb 28 08:45:24 2023 +0000 +Date: Mon Mar 27 23:56:54 2023 +0000 - upstream: Explicitly ignore return from fchmod + upstream: Remove compat code for OpenSSL 1.0.* - similar to other calls to prevent warning. + versions now that -portable has dropped support for those versions. - OpenBSD-Commit-ID: fdc5287dcee0860b5a493186414226c655b0eb0a + OpenBSD-Regress-ID: 82a8eacd87aec28e4aa19f17246ddde9d5ce7fe7 -commit 803392933a3a6f09f834aa5f0c2aab06a3b382f4 -Author: dtucker@openbsd.org -Date: Mon Feb 27 22:12:40 2023 +0000 +commit 727560e6011efcb36d2f3ac6910444bc775abaa1 +Author: Darren Tucker +Date: Tue Mar 28 18:06:42 2023 +1100 - upstream: Plug mem leak on globbed ls error path. - - Spotted by Coverity, ok deraadt@ + Prevent conflicts between Solaris SHA2 and OpenSSL. - OpenBSD-Commit-ID: de28476025db29820a9a2e56e98b964d8a02861c + We used to prevent conflicts between native SHA2 headers and OpenSSL's + by setting OPENSSL_NO_SHA but that was removed prior to OpenSSL 1.1.0 -commit aa33b4d396abf47a2a45f982f28d054fb1dcb5c3 +commit 46db8e14b7f186d32173dcdecd5b785334429b8b Author: Darren Tucker -Date: Mon Feb 27 21:04:22 2023 +1100 +Date: Tue Mar 28 12:44:03 2023 +1100 - Cast time_t's in debug output to long long. + Remove HEADER_SHA_H from previous... - Should fix Coverity warning about truncation of 64bit time_t. + since it causes more problems than it solves. -commit b0fd60a9de62a03189ad57d0c07f0ac51dc00e95 +commit 72bd68d37387aa5f81da928f6e82f1c88ed8f674 Author: Darren Tucker -Date: Mon Feb 27 17:28:59 2023 +1100 +Date: Tue Mar 28 10:35:18 2023 +1100 - Do shadow expiry calcs using "long long". + Replace OPENSSL_NO_SHA with HEADER_SHA_H. - Coverity flags these as potentially not 64bit time_t safe so use - long long for the calculations and debug output. ok djm@ + Since this test doesn't use OpenSSL's SHA2 and may cause conflicts we + don't want to include it, but OPENSSL_NO_SHA was removed beginning in + OpenSSL's 1.1 series. -commit 01dbeb3084d714bbd001ff9d03b9de542e8cdf58 -Author: Damien Miller -Date: Mon Feb 27 17:07:52 2023 +1100 +commit 99668f2e6e0deb833e46cfab56db59ff0fc28c7e +Author: Darren Tucker +Date: Tue Mar 28 09:50:06 2023 +1100 - avoid clash between for getopt's struct option - - Since we don't use getopt_long() nothing outside the getopt() - implementation itself uses this structure, so move it into the - source to remove it from visibility and clashes with libc's - - ok dtucker@ + Configure with --target instead of deprecated form. -commit eb88d07c43afe407094e7d609248d85a15e148ef +commit f751d9306c62cd1061f966e6a7483d9bab9c379b Author: Darren Tucker -Date: Sat Feb 25 14:45:41 2023 +1100 +Date: Mon Mar 27 22:05:29 2023 +1100 - Revert explicit chmods on private keys. - - This should no longer be needed on Cygwin test runners due to previous - commit. + Pass rpath when building 64bit Solaris. -commit 52b75db61030a6c8baf66b73644380cf3f58e26a +commit a64b935cd450ee8d04c26c9cd728629cf9ca5c91 Author: Darren Tucker -Date: Sat Feb 25 14:43:28 2023 +1100 +Date: Mon Mar 27 19:21:19 2023 +1100 - Remove extended ACLs from working dirs. + Explicitly disable OpenSSL on AIX test VM. + +commit 7ebc6f060fc2f70495a56e16d210baae6424cd96 +Author: dtucker@openbsd.org +Date: Mon Mar 27 03:56:50 2023 +0000 + + upstream: Add RevokedHostKeys to percent expansion test. - This should allow umask to work as expected and prevent tests from - failing due to excessive permissions on private keys. + OpenBSD-Regress-ID: c077fd12a38005dd53d878c5b944154dec88d2ff -commit 0c5d4c843df5605b043a758d69f9a611ef63c479 -Author: Darren Tucker -Date: Fri Feb 24 13:44:13 2023 +1100 +commit f1a17de150f8d309d0c52f9abfaebf11c51a8537 +Author: dtucker@openbsd.org +Date: Mon Mar 27 03:56:11 2023 +0000 - Explicitly set permissions on user and host keys. + upstream: Add tilde and environment variable expansion to - On cygwin, the umask might not be sufficient. Should fix tests on - Github runners. + RevokedHostKeys. bz#3552, ok djm@ + + OpenBSD-Commit-ID: ce5d8e0219b63cded594c17d4c2958c06918ec0d -commit 6c9fc9d7a9f7abf82c3294d74e6d4a25735862ce +commit 009eb4cb48a9708ab9174684dcbcc0f942907abe Author: djm@openbsd.org -Date: Wed Feb 22 03:56:43 2023 +0000 +Date: Mon Mar 27 03:31:05 2023 +0000 - upstream: fix progressmeter corruption on wide displays; bz3534 + upstream: fix test: getnameinfo returns a non-zero value on error, not - feedback/ok dtucker@ + (neccessarily) -1. From GHPR#384 - OpenBSD-Commit-ID: f4affee067cec7c182f3e0b307d758e0472762a3 + OpenBSD-Commit-ID: d35e2b71268f66f5543a7ea68751972b3ae22b25 -commit fe0bd3cde9665d364e5eedd2c2c2e60d4cdc3786 -Author: dtucker@openbsd.org -Date: Tue Feb 21 06:48:18 2023 +0000 +commit 4f0a676486700f10a4788f7e9426e94e39c1c89e +Author: djm@openbsd.org +Date: Mon Mar 27 03:25:08 2023 +0000 - upstream: fseek to end of known_hosts before writing to it. + upstream: scp: when copying local->remote, check that source file - POSIX and ANSI C require that applications call fseek or similar between - read and writing to a RW file. OpenBSD doesn't enforce this, but some - (System V derived) platforms need this to prevent it from writing a - spurious extra byte (in this case, a newline). ok djm@ deraadt@ + exists before opening SFTP connection to the server. Based on GHPR#370 ok + dtucker, markus - OpenBSD-Commit-ID: 33e680dcd8110582a93a40a8491024e961f45137 + OpenBSD-Commit-ID: b4dd68e15bfe22ce4fac9960a1066a2b721e54fb -commit 357fb8ae14c07cd025eeed66e73de91bab569849 +commit 154d8baf631327163571760c2c524bc93c37567c Author: Darren Tucker -Date: Tue Feb 21 17:51:09 2023 +1100 +Date: Mon Mar 27 12:22:30 2023 +1100 - Also run unit tests on AIX VMs. - - In the past these tests took too long, but these days it only adds - about 5 min to the run. + Also look for gdb error message from OpenIndiana. -commit 17781aaa5188ee1477f7779b280d105512e3dbed +commit fbd3811ddb2b6ce2e6dba91fde7352c8978e5412 Author: Darren Tucker -Date: Tue Feb 21 17:38:55 2023 +1100 +Date: Mon Mar 27 11:08:00 2023 +1100 - Wrap stdint.h inside ifdef. + Explicitly disable security key test on aix51 VM. + + We don't know how to build the shared objects required for the security + key tests so skip them. -commit ef798bad38505f7bf1b5fa5c0843dfc5a2b192b9 -Author: Mayank Sharma -Date: Mon Feb 20 17:37:15 2023 +0530 +commit 4922ac3be8a996780ef3dc220411da2e27c29d9c +Author: Darren Tucker +Date: Sun Mar 26 14:49:43 2023 +1100 - Add includes to ptimeout test. + Split libcrypto and other config flags. - Fixes test failures on AIX due to type mismatches. + This should allow the automatic OpenSSL version selection in the tests + to work better. -commit ab69dda05d5268454209f529fa80f477e60d846a +commit 4a948b1469f185e871160a2d70e2a0fce2858f9e Author: Darren Tucker -Date: Mon Feb 20 18:24:39 2023 +1100 +Date: Sun Mar 26 14:39:45 2023 +1100 - Always use the openssl binary configure tells us. + Specify test target if we build without OpenSSL. - This fixes tests on platforms that do not have the openssl tool - installed at all. + When we decide we can't use the versions of OpenSSL available, also + restrict the tests we run to avoid the ones that need OpenSSL. -commit 2a7e3449908571af601a4c2d12ab140096442e47 -Author: dtucker@openbsd.org -Date: Fri Feb 17 04:22:50 2023 +0000 +commit b308c636f5b5d89eecb98be00b3d56306a005a09 +Author: Darren Tucker +Date: Sun Mar 26 14:22:53 2023 +1100 - upstream: Remove now-unused compat bit SSH_BUG_RSASIGMD5. The code - - to set this was removed in OpenSSH 7.7 when support for SSH implementations - dating back to before RFC standardization were removed. "burn it all" djm@ + Find suitable OpenSSL version. - OpenBSD-Commit-ID: 6330935fbe23dd00be79891505e06d1ffdac7cda + Check the installed OpenSSL versions for a suitable one, and if there + isn't (and we don't have a specific version configured) then build + without OpenSSL. -commit 0833ccf2c8b7ae08b296c06f17bd53e3ab94b0b0 -Author: dtucker@openbsd.org -Date: Fri Feb 17 03:06:18 2023 +0000 +commit 021ea5c2860f133f44790970968e0e73208b3a87 +Author: Damien Miller +Date: Fri Mar 24 15:02:52 2023 +1100 - upstream: Remove now-unused compat bit SSH_BUG_BIGENDIANAES. This - - was previously set for OpenSSH 2.3 (released in 2000) but this check was - removed in OpenSSH 7.7 (2018). ok djm@ deraadt@ - - OpenBSD-Commit-ID: 326426ea328707fc9e83305291ab135c87f678af + Github testing support for BoringSSL -commit c81c2bea6e828d52b62b448b4ffdd3c163177975 +commit 9a97cd106466a2a9bda2bfaa4c48c4f1b2cc9c1b Author: Damien Miller -Date: Fri Feb 17 10:12:40 2023 +1100 +Date: Fri Mar 24 15:34:29 2023 +1100 - whitespace fixes + BoringSSL doesn't support EC_POINT_point2bn() + + so don't invoke it in unittest -commit 500f90b39db5f0014e6b0c49ff1f45c994b69293 +commit cc5969c033a032d126ff78e5d95cf20abbede4c7 Author: Damien Miller -Date: Fri Feb 17 10:02:08 2023 +1100 +Date: Fri Mar 24 15:34:05 2023 +1100 - whitespace at EOL + another ERR_load_CRYPTO_strings() vestige -commit 68350152406339170721c15e97afdf827a5e4001 -Author: dtucker@openbsd.org -Date: Thu Feb 16 10:10:00 2023 +0000 +commit 4974293899a068133e976f81d6693670d2b576ca +Author: Damien Miller +Date: Fri Mar 24 15:24:05 2023 +1100 - upstream: Remove SSH_BUG_PASSWORDPAD compat bit - - since it's no longer used. ok markus@ + don't use obsolete ERR_load_CRYPTO_strings() - OpenBSD-Commit-ID: b92c21f56fe4b7f9a54790d6a9650725c226820b + OpenSSL (and elsewhere in OpenSSH) uses ERR_load_crypto_strings() -commit 537cccd804eaf65f32bdce037cc31db4e0ab0f44 -Author: dtucker@openbsd.org -Date: Thu Feb 16 07:55:15 2023 +0000 +commit 3c527d55f906e6970d17c4cab6db90ae9e013235 +Author: Damien Miller +Date: Fri Mar 24 15:23:05 2023 +1100 - upstream: Remove SSH_BUG_IGNOREMSG compat flag - - since it's only applicable to SSH1 and thus no longer used. ok markus@ - "kill it with fire" djm@ - - OpenBSD-Commit-ID: ea13318b1937795d9db4790d3ce0a6ed01584dab + Allow building with BoringSSL -commit 285cf6cd4b91a0a0ce33193c358c99085af33e43 -Author: jmc@openbsd.org -Date: Fri Feb 10 06:41:53 2023 +0000 +commit b7e27cfd7f163fc16b4c5d041cc28ee488a5eeec +Author: Damien Miller +Date: Fri Mar 24 15:21:18 2023 +1100 - upstream: space between macro and punctuation; sort usage(); + put back SSLeay_version compat in configure test - OpenBSD-Commit-ID: 6141610cfca037700730e41f868d1d9124958f8c - -commit d39a96f70f81878c77336ed35f5c648c1804b71a -Author: jmc@openbsd.org -Date: Fri Feb 10 06:40:48 2023 +0000 + Needed to detect old versions and give good "your version is bad" + messages at configure time; spotted by dtucker@ - upstream: space between macro and punctuation; +commit 7280401bdd77ca54be6867a154cc01e0d72612e0 +Author: Damien Miller +Date: Fri Mar 24 13:56:25 2023 +1100 + + remove support for old libcrypto - OpenBSD-Commit-ID: abc95e550be9e6d9a7ff64b65c104c7be21ab19e + OpenSSH now requires LibreSSL 3.1.0 or greater or + OpenSSL 1.1.1 or greater + + with/ok dtucker@ -commit 16e82bf53fc34e43e3b948d43b68d5b27a7335e6 -Author: jmc@openbsd.org -Date: Fri Feb 10 06:39:27 2023 +0000 +commit abda22fb48302f2142233f71d27c74040288c518 +Author: Darren Tucker +Date: Sun Mar 19 15:36:13 2023 +1100 - upstream: sort SYNOPSIS; - - OpenBSD-Commit-ID: dacd9da33277d5669a51213d880632599c890c1e + Test latest OpenSSL 1.1, 3.0 and LibreSSL 3.7. -commit d9685121ff6d57b8797411f3cb123884a4b96e30 +commit 610ac1cb077cd5a1ebfc21612154bfa13d2ec825 Author: Darren Tucker -Date: Sat Feb 11 12:32:19 2023 +1100 +Date: Thu Mar 16 21:38:04 2023 +1100 - Improve seccomp compat on older systems. - - Check if flags to mmap and madvise are defined before using them. - Should fix problems building on older Linux systems that don't have - these. bz#3537, with & ok djm@. + Show 9.3 branch instead of 9.2. -commit 6180b0fa4f7996687678702806257e661fd5931e -Author: djm@openbsd.org -Date: Fri Feb 10 05:06:03 2023 +0000 +commit cb30fbdbee869f1ce11f06aa97e1cb8717a0b645 +Author: Damien Miller +Date: Thu Mar 16 08:28:19 2023 +1100 - upstream: test -Ohashalg=... and that the default output contains both - - specified hash algorithms; prompted by dtucker@ - - OpenBSD-Regress-ID: 26f309208c8d8b8fa9c5f419767b85f1e9b22f51 + depend -commit d651f5c9fe37e61491eee46c49ba9fa03dbc0e6a -Author: djm@openbsd.org -Date: Fri Feb 10 04:56:30 2023 +0000 +commit 1dba63eb10c40b6fda9f5012ed6ae87e2d3d028e +Author: Damien Miller +Date: Thu Mar 16 08:27:54 2023 +1100 - upstream: let ssh-keygen and ssh-keyscan accept - - -Ohashalg=sha1|sha256 when outputting SSHFP fingerprints to allow algorithm - selection. bz3493 ok dtucker@ - - OpenBSD-Commit-ID: e6e07fe21318a873bd877f333e189eb963a11b3d + crank version -commit 18938d11a90b74d63c20b2d3c965d5bd64786ab1 +commit ba7532d0dac9aaf0ad7270664c43837fc9f64a5f Author: djm@openbsd.org -Date: Fri Feb 10 04:47:19 2023 +0000 +Date: Wed Mar 15 21:19:57 2023 +0000 - upstream: add a `sshd -G` option that parses and prints the - - effective configuration without attempting to load private keys and perform - other checks. This allows usage of the option before keys have been - generated. - - bz3460 feedback/ok dtucker@ + upstream: openssh-9.3 - OpenBSD-Commit-ID: 774504f629023fc25a559ab1d95401adb3a7fb29 + OpenBSD-Commit-ID: 8011495f2449c1029bb316bd015eab2e00509848 -commit df7d3dbf7194db8e97730ee0425d4d9d7bdb8b10 -Author: djm@openbsd.org -Date: Fri Feb 10 04:40:28 2023 +0000 +commit 6fd4daafb949b66bf555f3100f715a9ec64c3390 +Author: dtucker@openbsd.org +Date: Tue Mar 14 07:28:47 2023 +0000 - upstream: make `ssh -Q CASignatureAlgorithms` work as the manpage says + upstream: Free KRL ptr in addition to its contents. - it should bz3532 + From Coverity CID 291841, ok djm@ - OpenBSD-Commit-ID: 0ddb17b3fcbd99bfb5baea4ac5e449620cbd3adc - -commit d3b8d4198b6595f23b5859d43dc8fc701f97429b -Author: Darren Tucker -Date: Fri Feb 10 14:26:44 2023 +1100 - - Add CentOS 7 test targets. + OpenBSD-Commit-ID: f146ba08b1b43af4e0d7ad8c4dae3748b4fa31b6 -commit 22efb01e355bba4755b730ed417f91c081445bfc +commit 1d270bd303afaf6d94e9098cbbf18e5e539e2088 Author: dtucker@openbsd.org -Date: Thu Feb 9 09:55:33 2023 +0000 +Date: Tue Mar 14 07:26:25 2023 +0000 - upstream: Test adding terminating newline to known_hosts. + upstream: Check pointer for NULL before deref. - OpenBSD-Regress-ID: 5fc3010ac450195b3fbdeb68e875564968800365 + None of the existing callers seem to do that, but it's worth checking. + From Coverity CID 291834, ok djm@ + + OpenBSD-Commit-ID: a0a97113f192a7cb1a2c97b932f677f573cda7a4 -commit caec6da1a583ed8c32c6ad3b81bbcaab46ac8b61 +commit d95af508e78c0cd3dce56b83853baaa59ae295cf Author: dtucker@openbsd.org -Date: Wed Feb 8 08:06:03 2023 +0000 +Date: Sun Mar 12 10:40:39 2023 +0000 - upstream: ssh-agent doesn't actually take -v, + upstream: Limit number of entries in SSH2_MSG_EXT_INFO - so the recently-added ones will result in the test not cleaning up - after itself. Patch from cjwatson at debian.org vi bz#3536. + request. This is already constrained by the maximum SSH packet size but this + makes it explicit. Prompted by Coverity CID 291868, ok djm@ markus@ - OpenBSD-Regress-ID: 1fc8283568f5bf2f918517c2c1e778072cf61b1a + OpenBSD-Commit-ID: aea023819aa44a2dcb9dd0fbec10561896fc3a09 -commit 3c379c9a849a635cc7f05cbe49fe473ccf469ef9 +commit 8f287ba60d342b3e2f750e7332d2131e3ec7ecd0 Author: dtucker@openbsd.org -Date: Thu Feb 9 09:54:11 2023 +0000 +Date: Sun Mar 12 09:41:18 2023 +0000 - upstream: Ensure that there is a terminating newline when adding a new + upstream: calloc can return NULL but xcalloc can't. - entry to known_hosts. bz#3529, with git+openssh at limpsquid.nl, ok deraadt@ - markus@ + From Coverity CID 291881, ok djm@ - OpenBSD-Commit-ID: fa8d90698da1886570512b96f051e266eac105e0 - -commit 95b6bbd2553547260b324b39d602061c88b774bc -Author: Darren Tucker -Date: Tue Feb 7 08:43:47 2023 +1100 - - Replace 9.1 with 9.2 on CI status page. + OpenBSD-Commit-ID: 50204b755f66b2ec7ac3cfe379d07d85ca161d2b -commit 195313dfe10a23c82e9d56d5fdd2f59beee1bdcf -Author: Damien Miller -Date: Fri Feb 3 16:33:09 2023 +1100 +commit 83a56a49fd50f4acf900f934279482e4ef329715 +Author: dtucker@openbsd.org +Date: Fri Mar 10 07:17:08 2023 +0000 - harden Linux seccomp sandbox - - Linux mmap(2) and madvise(2) syscalls support quite a number of funky - flags that we don't expect that sshd/libc will ever need. We can - exclude this kernel attack surface by filtering the mmap(2) flags - and the madvise(2) advice arguments. - - Similarly, the sandboxed process in sshd is a single-threaded program - that does not use shared memory for synchronisation or communication. - Therefore, there should be no reason for the advanced priority - inheritance futex(2) operations to be necessary. These can also be - excluded. + upstream: Explicitly ignore return from fcntl - Motivated by Jann Horn pointing out that there have been kernel bugs - in nearby Linux kernel code, e.g. CVE-2020-29368, CVE-2020-29374 and - CVE-2022-42703. + (... FD_CLOEXEC) here too. Coverity CID 291853. - Feedback Jann Horn, ok dtucker@ - -commit 6dfb65de949cdd0a5d198edee9a118f265924f33 -Author: Damien Miller -Date: Thu Feb 2 23:21:54 2023 +1100 - - crank versions in RPM specs + OpenBSD-Commit-ID: 99d8b3da9d0be1d07ca8dd8e98800a890349e9b5 -commit d07cfb11a0ca574eb68a3931d8c46fbe862a2021 +commit 0fda9d704d3bbf54a5e64ce02a6fecb11fe7f047 Author: Damien Miller -Date: Thu Feb 2 23:21:45 2023 +1100 +Date: Fri Mar 10 15:59:46 2023 +1100 - update version in README + bounds checking for getrrsetbyname() replacement; + + Spotted by Coverity in CID 405033; ok millert@ -commit 9fe207565b4ab0fe5d1ac5bb85e39188d96fb214 -Author: Damien Miller -Date: Thu Feb 2 23:17:49 2023 +1100 +commit 89b8df518f21677045599df0ad3e5dd0f39909b5 +Author: dtucker@openbsd.org +Date: Fri Mar 10 04:06:21 2023 +0000 - adapt compat_kex_proposal() test to portable + upstream: Plug mem leak on error path. Coverity CID 405026, ok djm@. + + OpenBSD-Commit-ID: 8212ca05d01966fb5e72205c592b2257708a2aac -commit 903c556b938fff2d7bff8da2cc460254430963c5 -Author: djm@openbsd.org -Date: Thu Feb 2 12:12:52 2023 +0000 +commit bf4dae0ad192c3e2f03f7223834b00d88ace3d3e +Author: Darren Tucker +Date: Fri Mar 10 14:46:57 2023 +1100 - upstream: test compat_kex_proposal(); by dtucker@ + Add prototypes for mkstemp replacements. - OpenBSD-Regress-ID: 0e404ee264db546f9fdbf53390689ab5f8d38bf2 + Should prevent warnings due to our wrapper function. -commit 405fba71962dec8409c0c962408e09049e5624b5 +commit 4e04d68d6a33cdc73b831fd4b5e6124175555d3d Author: dtucker@openbsd.org -Date: Thu Jan 19 07:53:45 2023 +0000 +Date: Fri Mar 10 03:01:51 2023 +0000 - upstream: Check if we can copy sshd or need to use sudo to do so + upstream: Expliticly ignore return code from fcntl(.. FD_CLOEXEC) since - during reexec test. Skip test if neither can work. Patch from anton@, tweaks - from me. + there's not much we can do anyway. From Coverity CID 291857, ok djm@ - OpenBSD-Regress-ID: 731b96ae74d02d5744e1f1a8e51d09877ffd9b6d + OpenBSD-Commit-ID: 051429dd07af8db3fec10d82cdc78d90bb051729 -commit b2a2a8f69fd7737ea17dc044353c514f2f962f35 +commit d6d38fd77cbe091c59e1bb720c3a494df4990640 Author: djm@openbsd.org -Date: Thu Feb 2 12:10:22 2023 +0000 +Date: Fri Mar 10 02:32:04 2023 +0000 - upstream: openssh-9.2 + upstream: Like sshd_config, some ssh_config options are not - OpenBSD-Commit-ID: f7389f32413c74d6e2055f05cf65e7082de03923 + first-match-wins. sshd_config.5 was fixed in r1.348, this is the same for + this file + + OpenBSD-Commit-ID: 7be55b9351cde449b136afcc52d07aa4113b215e -commit 12da7823336434a403f25c7cc0c2c6aed0737a35 -Author: djm@openbsd.org -Date: Thu Feb 2 12:10:05 2023 +0000 +commit 7187d3f86bf8f2066cc9941f217d23b0cacae25e +Author: dtucker@openbsd.org +Date: Fri Mar 10 02:24:56 2023 +0000 - upstream: fix double-free caused by compat_kex_proposal(); bz3522 + upstream: Remove no-op (int) > INT_MAX checks - by dtucker@, ok me + since they can never be true. From Coverity CID 405031, ok djm@ - OpenBSD-Commit-ID: 2bfc37cd2d41f67dad64c17a64cf2cd3806a5c80 + OpenBSD-Commit-ID: 9df3783b181e056595e2bb9edf7ed41d61cf8e84 -commit 79efd95ab5ff99f4cb3a955e2d713b3f54fb807e +commit 77adde4305542ebe3005dd456122624fe2347b01 Author: Darren Tucker -Date: Wed Feb 1 17:17:26 2023 +1100 +Date: Fri Mar 10 13:27:29 2023 +1100 - Skip connection-timeout test on minix3. + Wrap mkstemp calls with umask set/restore. - Minix 3's Unix domain sockets don't seem to work the way we expect, so - skip connection-timeout test on that platform. While there, group - together all similarly skipped tests and explicitly comment. + glibc versions 2.06 and earlier did not set a umask on files created by + mkstemp created the world-writable. Wrap mkstemp to set and restore + the umask. From Coverity (CIDs 291826 291886 291891), ok djm@ -commit 6b508c4e039619842bcf5a16f8a6b08dd6bec44a -Author: Damien Miller -Date: Wed Feb 1 12:12:05 2023 +1100 +commit 633d3dc2a1e9e2a013d019a0576a0771c8423713 +Author: jcs@openbsd.org +Date: Thu Mar 9 21:06:24 2023 +0000 - fix libfido2 detection without pkg-config + upstream: modify parentheses in conditionals to make it clearer what is - Place libfido2 before additional libraries (that it may depend upon) - and not after. bz3530 from James Zhang; ok dtucker@ - -commit 358e300fed5e6def233a2c06326e51e20ebed621 -Author: deraadt@openbsd.org -Date: Wed Jan 18 20:56:36 2023 +0000 - - upstream: delete useless dependency + being assigned and what is being checked - OpenBSD-Commit-ID: e1dc11143f83082e3154d6094f9136d0dc2637ad + ok djm dtucker + + OpenBSD-Commit-ID: 19c10baa46ae559474409f75a5cb3d0eade7a9b8 -commit a4cb9be1b021b511e281ee55c356f964487d9e82 -Author: deraadt@openbsd.org -Date: Wed Jan 18 20:43:15 2023 +0000 +commit 733030840c4772f858de95d5940ec0c37663e8b0 +Author: dtucker@openbsd.org +Date: Thu Mar 9 07:11:05 2023 +0000 - upstream: Create and install sshd random relink kit. + upstream: Re-split the merge of the reorder-hostkeys test. - ../Makefile.inc and Makfile are concatenated for reuse, which hopefully won't - be too fragile, we'll see if we need a different approach. The resulting sshd - binary is tested with the new sshd -V option before installation. As the - binary layout is now semi-unknown (meaning relative, fixed, and gadget - offsets are not precisely known), change the filesystem permissions to 511 to - prevent what I call "logged in BROP". I have ideas for improving this further - but this is a first step ok djm + In the kex_proposal_populate_entries change I merged the the check for + reordering hostkeys with the actual reordering, but kex_assemble_names + mutates options.hostkeyalgorithms which renders the check ineffective. + Put the check back where it was. Spotted and tested by jsg@, ok djm@ - OpenBSD-Commit-ID: 1e0a2692b7e20b126dda60bf04999d1d30d959d8 + OpenBSD-Commit-ID: a7469f25a738db5567395d1881e32479a7ffc9de -commit bc7de6f91a9a0ae2f148a9d31a4027d441a51999 -Author: jmc@openbsd.org -Date: Wed Jan 18 06:55:32 2023 +0000 +commit 54ac4ab2b53ce9fcb66b8250dee91c070e4167ed +Author: djm@openbsd.org +Date: Thu Mar 9 06:58:26 2023 +0000 - upstream: tweak previous; ok djm + upstream: include destination constraints for smartcard keys too. - OpenBSD-Commit-ID: df71ce4180c58202dfdc1d92626cfe900b91b7c3 + Spotted by Luci Stanescu; ok deraadt@ markus@ + + OpenBSD-Commit-ID: add879fac6903a1cb1d1e42c4309e5359c3d870f -commit a20b7e999773e6333c8aa9b0a7fa41966e63b037 +commit bfd1ad01d974a316b60622759ad17537fa2d92b4 Author: Darren Tucker -Date: Tue Jan 31 19:35:44 2023 +1100 +Date: Thu Mar 9 18:24:54 2023 +1100 - Skip connection-timeout test under Valgrind. + Limit the number of PAM environment variables. - Valgrind slows things down so much that the timeout test fails. Skip - this test until we figure out if we can make it work. + xcalloc has its own limits, but these are specific to PAM. From + Coverity CID 405198, ok djm@ -commit c3ffb54b4fc5e608206037921db6ccbc2f5ab25f +commit a231414970e01a35f45a295d5f93698fa1249b28 Author: Darren Tucker -Date: Wed Jan 25 21:58:40 2023 +1100 +Date: Thu Mar 9 18:19:44 2023 +1100 - Skip connection-timeout when missing FD passing. + Limit the number of PAM environment variables. - This tests uses multiplexing which uses file descriptor passing, so - skip it if we don't have that. Fixes test failures on Cygwin. + From Coverity CID 405194, tweaks and ok djm@ -commit 35253af01d8c0ab444c8377402121816e71c71f5 -Author: djm@openbsd.org -Date: Wed Jan 18 02:00:10 2023 +0000 +commit 36c6c3eff5e4a669ff414b9daf85f919666e8e03 +Author: dtucker@openbsd.org +Date: Wed Mar 8 06:21:32 2023 +0000 - upstream: when restoring non-blocking mode to stdio fds, restore - - exactly the flags that ssh started with and don't just clobber them with - zero, as this could also remove the append flag from the set; - - bz3523; ok dtucker@ + upstream: Plug mem leak. Coverity CID 405196, ok djm@ - OpenBSD-Commit-ID: 1336b03e881db7564a4b66014eb24c5230e9a0c0 + OpenBSD-Commit-ID: 175f09349387c292f626da68f65f334faaa085f2 -commit 7d17ea151c0b2519f023bd9cc7f141128833ac47 -Author: millert@openbsd.org -Date: Wed Jan 18 01:50:21 2023 +0000 +commit dfb9b736e1ccf9e6b03eea21cd961f4fd0634c98 +Author: tb@openbsd.org +Date: Wed Mar 8 05:33:53 2023 +0000 - upstream: Add a -V (version) option to sshd like the ssh client + upstream: ssh-pkcs11: synchronize error messages with errors - has. OK markus@ deraadt@ + A handful of error messages contained incorrect function names or + otherwise inaccurate descriptions. Fix them to match reality. - OpenBSD-Commit-ID: abe990ec3e636fb040132aab8cbbede98f0c413e + input/ok djm + + OpenBSD-Commit-ID: 165a15db52f75b31e1804b043480c36af09f3411 -commit 62360feb7f08f2a4c6fc36f3b3449309203c42c9 -Author: millert@openbsd.org -Date: Tue Jan 17 18:52:44 2023 +0000 +commit 51875897b81b5c21b80c256a29597916edbde454 +Author: guenther@openbsd.org +Date: Wed Mar 8 04:43:12 2023 +0000 - upstream: For "ssh -V" always exit 0, there is no need to check opt + upstream: Delete obsolete /* ARGSUSED */ lint comments. - again. This was missed when the fallthrough in the switch case above it was - removed. OK deraadt@ + ok miod@ millert@ - OpenBSD-Commit-ID: 5583e5d8f6d62a8a4215cfa95a69932f344c8120 + OpenBSD-Commit-ID: 7be168a570264d59e96a7d2d22e927d45fee0e4c -commit 12492c0abf1eb415d08a897cc1d8b9e789888230 +commit a76085bda883c2104afb33ab0334eca190927362 +Author: Darren Tucker +Date: Wed Mar 8 17:25:37 2023 +1100 + + Extra brackets to prevent warning. + +commit 147ae57d4dfa0508109f93b78a7d8b92819e1f83 Author: djm@openbsd.org -Date: Tue Jan 17 10:15:10 2023 +0000 +Date: Wed Mar 8 00:05:58 2023 +0000 - upstream: also check that an active session inhibits + upstream: use RSA/SHA256 when testing usability of private key in - UnusedConnectionTimeout idea markus@ + agent; with/ok dtucker - OpenBSD-Regress-ID: 55c0fb61f3bf9e092b0a53f9041d3d2012f14003 + OpenBSD-Commit-ID: fe1382e2fdf23fcae631308e72342bad56066a56 -commit cef2593c33ac46a58238ff998818754eabdf64ff +commit 27fd251bc906a763e70ce0f27c8abdf8bbd1e416 Author: djm@openbsd.org -Date: Tue Jan 17 10:02:34 2023 +0000 +Date: Wed Mar 8 00:05:37 2023 +0000 - upstream: regression test for UnusedConnectionTimeout + upstream: use RSA/SHA256 when testing usability of private key; - OpenBSD-Regress-ID: 7f29001374a68e71e5e078f69e4520cf4bcca084 + based on fix in bz3546 by Dmitry Belyavskiy; with/ok dtucker + + OpenBSD-Commit-ID: 0ef414cc363a832f9fab92a5da0234448bce2eba -commit aff9493a89c71d6a080419b49ac64eead9730491 +commit eee9f3fc3d52ae7d2106929bb06b7f291fb0b81a Author: djm@openbsd.org -Date: Mon Jan 16 04:11:29 2023 +0000 +Date: Tue Mar 7 21:47:42 2023 +0000 - upstream: unbreak test: cannot access shell positional parameters + upstream: refactor to be more readable top to bottom. Prompted by - past $9 without wrapping the position in braces (i.e. need ${10}, etc.) + Coverity CID 405048 which was a false-positive fd leak; ok dtucker@ - OpenBSD-Regress-ID: 3750ec98d5d409ce6a93406fedde6f220d2ea2ac + OpenBSD-Commit-ID: fc55ec2af622a017defb9b768bf26faefc792c00 -commit 0293c19807f83141cdf33b443154459f9ee471f6 -Author: djm@openbsd.org -Date: Tue Jan 17 09:44:48 2023 +0000 +commit 42a06b29a4c99272bf690f9b3be520b08b448dc5 +Author: Darren Tucker +Date: Tue Mar 7 18:34:41 2023 +1100 - upstream: Add a sshd_config UnusedConnectionTimeout option to terminate - - client connections that have no open channels for some length of time. This - complements the recently-added ChannelTimeout option that terminates inactive - channels after a timeout. + Add header changes missed in previous. + +commit 4710077096edff2e6926dd5b15bf586491d317db +Author: dtucker@openbsd.org +Date: Tue Mar 7 06:09:14 2023 +0000 + + upstream: Fix mem leak in environment setup. - ok markus@ + From jjelen at redhat.com via bz#2687, ok djm@ - OpenBSD-Commit-ID: ca983be74c0350364c11f8ba3bd692f6f24f5da9 + OpenBSD-Commit-ID: 9f9e4ba3cac003e6f81da3bcebd1b9ec43e7f353 -commit 8ec2e3123802d2beeca06c1644b0b647f6d36dab -Author: djm@openbsd.org -Date: Sun Jan 15 23:35:10 2023 +0000 +commit 03acc50d0ccb78fc91d1570de1cd0fdfea646028 +Author: dtucker@openbsd.org +Date: Mon Mar 6 12:15:47 2023 +0000 - upstream: adapt to ed25519 changes in src/usr.bin/ssh + upstream: Unit test for kex_proposal_populate_entries. - OpenBSD-Regress-ID: 4b3e7ba7ee486ae8a0b4790f8112eded2bb7dcd5 + OpenBSD-Regress-ID: bdb211d80d572a08bf14b49fe2a58b9ff265c006 -commit 9fbbfeca1ce4c7ec0001c827bbf4189a3ba0964b +commit 3f9231c2e1f374ebb08016ba00ea97b47c0ed20b Author: djm@openbsd.org -Date: Sun Jan 15 23:05:32 2023 +0000 +Date: Tue Mar 7 05:37:26 2023 +0000 - upstream: update OpenSSH's Ed25519 code to the last version of SUPERCOP - - (20221122) and change the import approach to the same one we use for - Streamlined NTRUPrime: use a shell script to extract the bits we need from - SUPERCOP, make some minor adjustments and squish them all into a single file. + upstream: fix memory leak in process_read() path; Spotted by James - ok tb@ tobhe@ + Robinson in GHPR363; ok markus@ - OpenBSD-Commit-ID: 1bc0fd624cb6af440905b8ba74ac7c03311b8e3b + OpenBSD-Commit-ID: cdc2d98e6478b7e7f3a36976845adae3820429d8 -commit 6283f4bd83eee714d0f5fc55802eff836b06fea8 -Author: Darren Tucker -Date: Sat Jan 14 22:02:44 2023 +1100 +commit c5e6e890839ec520ab9301a92cba56303749dea2 +Author: djm@openbsd.org +Date: Tue Mar 7 01:30:52 2023 +0000 - Allow writev is seccomp sandbox. + upstream: correct size for array argument when changing - This seems to be used by recent glibcs at least in some configurations. - From bz#3512, ok djm@ + UMAC_OUTPUT_LEN Coverity CID 291845; ok dtucker@ + + OpenBSD-Commit-ID: 2eb017d10705bb623d4418691f961c930eafaec0 -commit 923c3f437f439cfca238fba37e97a7041782f615 +commit 9641753e0fd146204d57b2a4165f552a81afade4 Author: dtucker@openbsd.org -Date: Sat Jan 14 10:05:54 2023 +0000 +Date: Mon Mar 6 12:14:48 2023 +0000 - upstream: Shell syntax fix. From ren mingshuai vi github PR#369. + upstream: Refactor creation of KEX proposal. - OpenBSD-Regress-ID: 6696b2eeefe128099fc3d7ea9f23252cc35156f9 + This adds kex_proposal_populate_entries (and corresponding free) which + populates the KEX proposal array with dynamically allocated strings. + This replaces the previous mix of static and dynamic that has been the + source of previous leaks and bugs. Remove unused compat functions. + With & ok djm@. + + OpenBSD-Commit-ID: f2f99da4aae2233cb18bf9c749320c5e040a9c7b -commit 4d87a00f704e0365e11c3c38b170c1275ec461fc +commit aa59d6a489fb20973fa461d0fdb1110db412947b Author: dtucker@openbsd.org -Date: Sat Jan 14 09:57:08 2023 +0000 +Date: Sun Mar 5 09:24:35 2023 +0000 - upstream: Instead of skipping the all-tokens test if we don't have + upstream: Fix mem and FILE leaks in moduli screening. - OpenSSL (since we use it to compute the hash), put the hash at the end and - just omit it if we don't have it. Prompted by bz#3521. + If multiple -Ocheckpoint= options are passed, the earlier ones would + be overwritten and leaked. If we use an input file that wasn't stdin, + close that. From Coverity CIDs 291884 and 291894. - OpenBSD-Regress-ID: c79ecba64250ed3b6417294b6c965e6b12ca5eea + OpenBSD-Commit-ID: a4d9d15f572926f841788912e2b282485ad09e8b -commit b05406d6f93b8c8ec11ec8b27e7c76cc7a5a55fb -Author: jmc@openbsd.org -Date: Fri Jan 13 07:13:40 2023 +0000 +commit 23b8cb41767af99a1aac24589d1882d9c8c2c205 +Author: dtucker@openbsd.org +Date: Sun Mar 5 08:18:58 2023 +0000 - upstream: fix double phrase in previous; + upstream: Plug mem leak in moduli checkpoint option parsing. - OpenBSD-Commit-ID: 671e6c8dc5e9230518b2bbfa143daaa88adc66c2 + From Coverity CID 291894. + + OpenBSD-Commit-ID: 9b1aba2d049741ae21c8dc4560a7e29ab17310f4 -commit 40564812b659c530eb1f4b62d09e85612aef3107 +commit fc7f8f2188d4a4fc8ba77eddbe863c7665666db5 Author: dtucker@openbsd.org -Date: Fri Jan 13 03:16:29 2023 +0000 +Date: Sun Mar 5 05:34:09 2023 +0000 - upstream: Document "UserKnownHostsFile none". ok djm@ + upstream: Remove unused compat.h includes. - OpenBSD-Commit-ID: f695742d39e34ecdcc3c861c3739a84648a4bce5 - -commit d03e245e034019a37388f6f5f893ce848ab6d2e2 -Author: Darren Tucker -Date: Fri Jan 13 23:02:34 2023 +1100 - - Retry package installation 3 times. + We've previously removed a lot of the really old compatibility code, + and with it went the need to include compat.h in most of the files that + have it. - When setting up the CI environment, retry package installation 3 times - before going up. Should help prevent spurious failures during - infrastructure issues. + OpenBSD-Commit-ID: 5af8baa194be00a3092d17598e88a5b29f7ea2b4 -commit 625f6bc39840167dafb3bf5b6a3e18503ac986e8 +commit 6c165c36246d8004c20e1df5cec4961a5ac422d6 Author: dtucker@openbsd.org -Date: Fri Jan 13 04:47:34 2023 +0000 +Date: Sat Mar 4 03:22:59 2023 +0000 - upstream: Move scp path setting to a helper function. The previous + upstream: Use time_t for x11 timeout. - commit to add scp to the test sshd's path causes the t-envpass test to fail - when the test scp is given using a fully qualified path. Put this in a - helper function and only call it from the scp tests. + Use time_t instead of u_int for remaining x11 timeout checks for 64bit + time_t safety. From Coverity CIDs 405197 and 405028, ok djm@ - OpenBSD-Regress-ID: 7533dc1c4265c1de716abb062957994195b36df4 + OpenBSD-Commit-ID: 356685bfa1fc3d81bd95722d3fc47101cc1a4972 -commit 6e6f88647042b3cde54a628545c2f5fb656a9327 +commit 4a3918f51bd2d968387e7aa87e33b32c78077fb4 Author: dtucker@openbsd.org -Date: Fri Jan 13 04:23:00 2023 +0000 +Date: Fri Mar 3 10:23:42 2023 +0000 - upstream: Add scp's path to test sshd's PATH. - - If the scp we're testing is fully qualified (eg it's not in the system - PATH) then add its path to the under-test sshd's PATH so we can find - it. Prompted by bz#3518. + upstream: Ensure ms_remain is always initialized - OpenBSD-Regress-ID: 7df4f5a0be3aa135495b7e5a6719d3cbc26cc4c0 - -commit 8a5e99a70fcf9b022a8aa175ebf6a71f58511da3 -Author: Darren Tucker -Date: Fri Jan 13 15:49:48 2023 +1100 - - Remove skipping test when scp not in path. + similar to what we do in ssh_packet_write_wait. bz#2687, from jjelen + at redhat.com. - An upcoming change renders this obsolete by adding scp's path to the - test sshd's PATH, and removing this first will make the subsequent sync - easier. + OpenBSD-Commit-ID: a50e0541cf823f8d1c72f71ccde925d3dbe6dfac -commit 41f36dd896c8fb8337d403fcf476762986976e9d +commit e44846a4487d2885ac7f2610be09b1e2bf52249b Author: dtucker@openbsd.org -Date: Fri Jan 13 02:58:20 2023 +0000 +Date: Fri Mar 3 09:48:51 2023 +0000 - upstream: Add a "Host" line to the output of ssh -G showing the + upstream: Check for non-NULL before string - original host arg. Inspired by patch from vincent at bernat.ch via bz#3343, - ok djm@ + comparison. From jjelen at redhat.com via bz#2687. - OpenBSD-Commit-ID: 59c0f60a222113a44d0650cd394376e3beecc883 + OpenBSD-Commit-ID: 0d9b2e0cac88a311b5766b1aef737082583c285f -commit f673b49f3be3eb51074fbb8a405beb6cd0f7d93e +commit 1842d523fae63b862ce8e60725c9b606cddb86a6 Author: djm@openbsd.org -Date: Fri Jan 13 02:44:02 2023 +0000 +Date: Fri Mar 3 05:00:34 2023 +0000 - upstream: avoid printf("%s", NULL) if using ssh + upstream: guard against getsockname(-1, ...) from Coverity CID - -oUserKnownHostsFile=none and a hostkey in one of the system known hosts file - changes; ok dtucker@ + 291832 - OpenBSD-Commit-ID: 7ca87614bfc6da491315536a7f2301434a9fe614 + OpenBSD-Commit-ID: e58d5227327917d189229b7f0b37d2780f360d5f -commit 93fc7c576563e3d88a1dc019dd213f65607784cc +commit 78571a5fe9847d40d7f220c92b707574ae9ec4ce Author: djm@openbsd.org -Date: Wed Jan 11 05:39:38 2023 +0000 +Date: Fri Mar 3 04:36:20 2023 +0000 - upstream: clamp the minimum buffer lengths and number of inflight + upstream: some options are not first-match-wins. Mention that there - requests too + are exceptions at the start of the manpage and label some of them in the + option description. - OpenBSD-Commit-ID: c4965f62fa0ba850940fd66ae3f60cf516bbcd56 + OpenBSD-Commit-ID: 3b74728446fa6fc8742769eeb8c3674e233e84c4 -commit 48bf234322e639d279c5a28435eae50155e9b514 +commit d1c1b3272e8895a96c4f5889bd6e07a8525bd9f1 Author: djm@openbsd.org -Date: Wed Jan 11 05:36:50 2023 +0000 +Date: Fri Mar 3 04:34:49 2023 +0000 - upstream: ignore bogus upload/download buffer lengths in the limits + upstream: actually print "channeltimeout none" in config dump mode; - extension + spotted via Coverity CID 405022 - OpenBSD-Commit-ID: c5b023e0954693ba9a5376e4280c739b5db575f8 + OpenBSD-Commit-ID: b074b52bf138b75f08264e8da15880b29c7a630f -commit 36b00d31833ca74cb0f7c7d8eda1bde55700f929 -Author: djm@openbsd.org -Date: Wed Jan 11 02:13:52 2023 +0000 +commit 8bf61e95610b48192d4e1720cc15d9004617301d +Author: Darren Tucker +Date: Fri Mar 3 14:50:03 2023 +1100 - upstream: remove whitespace at EOL from code extracted from SUPERCOP - - OpenBSD-Commit-ID: 1ec524ff2fbb9387d731601437c82008f35a60f4 + Add Coverity badges. -commit d888de06c5e4d7dbf2f2b85f2b5bf028c570cf78 -Author: djm@openbsd.org -Date: Wed Jan 11 00:51:27 2023 +0000 +commit 93291bd723959adf462b1df958106cf07a7734dd +Author: dtucker@openbsd.org +Date: Fri Mar 3 03:12:24 2023 +0000 - upstream: rewrite this test to use a multiplexed ssh session so we can - - control its lifecycle without risk of race conditions; fixes some of the - Github integration tests for openssh-portable + upstream: Check return values of dup2. Spotted by Coverity, ok djm@ - OpenBSD-Regress-ID: 5451cad59ba0d43ae9eeda48ec80f54405fee969 + OpenBSD-Commit-ID: 19fb1b53072826d00c67df677731d2f6c1dd602b -commit 4bcc737a35fdd9cc4af7423d6c23dfd0c7ef4786 -Author: Damien Miller -Date: Wed Jan 11 11:45:17 2023 +1100 +commit e37261dff33af23f37202cfce0848d36f5c1055c +Author: dtucker@openbsd.org +Date: Fri Mar 3 02:37:58 2023 +0000 - remove buffer len workaround for NetBSD 4.x + upstream: Use time_t for x11_refuse_time timeout. We need - Switching to from pipes to a socketpair for communicating with the - ssh process avoids the (kernel bug?) problem. - -commit f5154d2aac3e6a32a1b13dec23a701a087850cdc -Author: Damien Miller -Date: Wed Jan 11 11:44:19 2023 +1100 - - add back use of pipes in scp.c under USE_PIPES + SSH_TIME_T_MAX for this, so move from misc.c to misc.h so it's available. + Fixes a Coverity warning for 64bit time_t safety, ok djm@ - This matches sftp.c which prefers socketpair but uses pipes on - some older platforms. + OpenBSD-Commit-ID: c69c4c3152cdaab953706db4ccf4d5fd682f7d8d -commit eec737b59cf13841de46134967a206607000acd4 -Author: millert@openbsd.org -Date: Tue Jan 10 23:22:15 2023 +0000 +commit 32755a98c29114b13f4c9d47454bbb265b932ad7 +Author: dtucker@openbsd.org +Date: Fri Mar 3 02:34:29 2023 +0000 - upstream: Switch scp from using pipes to a socketpair for + upstream: Check return value from fctnl and warn on failure. - communication with it's ssh sub-processes. We no longer need to reserve two - descriptors to ensure that we don't end up using fd 0-2 unexpectedly, that is - handled by sanitise_stdfd() in main(). Based on an original diff from djm@. - OK deraadt@ djm@ + Spotted by Coverity, ok djm@ - OpenBSD-Commit-ID: b80c372faac462471e955ddeab9480d668a2e48d + OpenBSD-Commit-ID: 2097c7db3cf657f1e3a6c5077041bacc63143cab -commit d213d126a4a343abd3a1eb13687d39c1891fe5c8 -Author: jmc@openbsd.org -Date: Fri Jan 6 08:44:11 2023 +0000 +commit 5fc60e8246c36b8255f72a937ebe9787b39648c6 +Author: dtucker@openbsd.org +Date: Thu Mar 2 11:10:27 2023 +0000 - upstream: tweak previous; ok djm + upstream: Remove SUDO in proxy command wrapper. Anything that needs - OpenBSD-Commit-ID: 229c493452766d70a78b0f02f6ff9894f9028858 - -commit 4a5590a5ee47b7dfd49773e9fdba48ad3089fe64 -Author: Damien Miller -Date: Mon Jan 9 16:33:56 2023 +1100 - - try to improve logging for dynamic-forward test + sudo is already run by it, and it breaks if root isn't in sudoers. - previously the logs from the ssh used to exercise the forwarding - channel would clobber the logs from the ssh actually doing the - forwarding + OpenBSD-Regress-ID: 6cf22fda32a89c16915f31a6ed9bbdbef2a3bac9 -commit 715bc25dcfccf9fb2bee820155fe071d01a618db -Author: Darren Tucker -Date: Sat Jan 7 23:24:50 2023 +1100 +commit 0d514659b23a257247491179cfbb53a6dd64e164 +Author: dtucker@openbsd.org +Date: Thu Mar 2 08:24:41 2023 +0000 - Skip dynamic-forward test on minix3. + upstream: Fix breakage on dhgex test. - This test relies on loopback addresses which minix does not have. - Previously the test would not run at all since it also doesn't have - netcat, but now we use our own netcat it tries and fails. + This was due to the sshd logs being written to the wrong log file. + While there, make save_debug_logs less verbose, write the name of the + tarball to regress.log and use $SUDO to remove the old symlinks (which + shouldn't be needed, but won't hurt). Initial problem spotted by anton@. + + OpenBSD-Regress-ID: 9c44fb9cd418e6ff31165e7a6c1f9f11a6d19f5b -commit dd1249bd5c45128a908395c61b26996a70f82205 -Author: Damien Miller -Date: Sun Jan 8 12:08:59 2023 +1100 +commit 860201201d4ae655702807966901682cff30a171 +Author: dtucker@openbsd.org +Date: Thu Mar 2 08:14:52 2023 +0000 - don't test IPv6 addresses if platform lacks support + upstream: Quote grep and log message better. + + OpenBSD-Regress-ID: 3823d9063127169736aa274b1784cb28e15b64d4 -commit d77fc611a62f2dfee0b654c31a50a814b13310dd +commit 03a03c6002525f5ad9c8fc874a5d5826a35d9858 Author: dtucker@openbsd.org -Date: Fri Jan 6 12:33:33 2023 +0000 +Date: Thu Mar 2 06:41:56 2023 +0000 - upstream: When OpenSSL is not available, skip parts of percent test + upstream: Always call fclose on checkpoints. - that require it. Based on github pr#368 from ren mingshuai. + In the case of an fprintf failure we would not call fclose which would + leak the FILE pointer. While we're there, try to clean up the temp file + on failure. Spotted by Coverity, ok djm@ - OpenBSD-Regress-ID: 49a375b2cf61ccb95b52e75e2e025cd10988ebb2 + OpenBSD-Commit-ID: 73c7ccc5d4fcc235f54c6b20767a2815408525ef -commit 1cd2aac312af9172f1b5cb06c2e1cd090abb83cf -Author: Darren Tucker -Date: Sat Jan 7 23:01:11 2023 +1100 +commit 13fe8f9785e6d90400ce548939a0b0ddc11fcb3c +Author: dtucker@openbsd.org +Date: Wed Mar 1 21:54:50 2023 +0000 - Use our own netcat for dynamic-forward test. + upstream: Remove old log symlinks - That way we can be surer about its behaviour rather than trying to - second-guess the behaviour of various netcat implementations. - -commit 26cab41c05d7b0859d2a1ea5b6ed253d91848a80 -Author: Darren Tucker -Date: Sat Jan 7 14:30:43 2023 +1100 - - Use autoconf to find openssl binary. + before creating new ones. In -portable some platforms don't like + overwriting existing symlinks. - It's possible to install an OpenSSL in a path not in the system's - default library search path. OpenSSH can still use this (eg if you - specify an rpath) but the openssl binary there may not work. If one is - available on the system path just use that. + OpenBSD-Regress-ID: 7e7ddc0beb73e945e1c4c58d51c8a125b518120f -commit 5532e010a0eeb6aa264396514f9aed7948471538 +commit 131fcbcaffd1e3bcf5ab766ec497b5d768955310 Author: Darren Tucker -Date: Sat Jan 7 10:34:18 2023 +1100 +Date: Wed Mar 1 23:23:02 2023 +1100 - Check openssl_bin path is executable before using. + Adjust test jobs for new log directory. -commit 5d7b16cff48598d5908db970bfdc9ff9326142c8 -Author: Darren Tucker -Date: Fri Jan 6 23:19:07 2023 +1100 +commit a6f4ac8a2baf77e5361cfa017d0dc250d1409bec +Author: dtucker@openbsd.org +Date: Wed Mar 1 09:29:32 2023 +0000 - Set OPENSSL_BIN from OpenSSL directory. + upstream: Rework logging for the regression tests. + + Previously we would log to ssh.log and sshd.log, but that is insufficient + for tests that have more than one concurent ssh/sshd. + + Instead, we'll log to separate datestamped files in a $OBJ/log/ and + leave a symlink at the previous location pointing at the most recent + instance with an entry in regress.log showing which files were created + at each point. This should be sufficient to reconstruct what happened + even for tests that use multiple instances of each program. If the test + fails, tar up all of the logs for later analysis. + + This will let us also capture the output from some of the other tools + which was previously sent to /dev/null although most of those will be + in future commits. + + OpenBSD-Regress-ID: f802aa9e7fa51d1a01225c05fb0412d015c33e24 -commit 344a0e8240eaf08da5d46a5e3a9ecad6e4f64c35 +commit 8ead62ed5e86c7df597d8604f332f49cd1527b85 Author: dtucker@openbsd.org -Date: Fri Jan 6 08:50:33 2023 +0000 +Date: Tue Feb 28 21:31:50 2023 +0000 - upstream: Save debug logs from ssh for debugging purposes. + upstream: fatal out if allocating banner string fails to avoid - OpenBSD-Regress-ID: 109e40b06de1c006a3b8e0d8745b790b2c5870a0 + potential null deref later in sscanf. Spotted by Coverity, ok deraadt@ + + OpenBSD-Commit-ID: 74e8d228ac00552e96e9e968dfcccf8dd1f46ad5 -commit e1ef172646f7f49c80807eea90225ef5e0be55a8 -Author: djm@openbsd.org -Date: Fri Jan 6 08:07:39 2023 +0000 +commit 44ca56ba0b3f531f1d85730cc701097cd49e6868 +Author: dtucker@openbsd.org +Date: Tue Feb 28 08:45:24 2023 +0000 - upstream: regression test for ChannelTimeout + upstream: Explicitly ignore return from fchmod - OpenBSD-Regress-ID: 280bfbefcfa415428ad744e43f69a8dede8ad685 + similar to other calls to prevent warning. + + OpenBSD-Commit-ID: fdc5287dcee0860b5a493186414226c655b0eb0a -commit 2393ea8daf25853459eb07a528d7577688847777 -Author: djm@openbsd.org -Date: Fri Jan 6 07:18:18 2023 +0000 +commit 803392933a3a6f09f834aa5f0c2aab06a3b382f4 +Author: dtucker@openbsd.org +Date: Mon Feb 27 22:12:40 2023 +0000 - upstream: fix typo in verbose logging + upstream: Plug mem leak on globbed ls error path. - OpenBSD-Regress-ID: 0497cdb66e003b2f50ed77291a9104fba2e017e9 + Spotted by Coverity, ok deraadt@ + + OpenBSD-Commit-ID: de28476025db29820a9a2e56e98b964d8a02861c -commit 161a5378a3cc2e7aa3f9674cb7f4686ae6ce9586 -Author: djm@openbsd.org -Date: Fri Jan 6 02:59:50 2023 +0000 +commit aa33b4d396abf47a2a45f982f28d054fb1dcb5c3 +Author: Darren Tucker +Date: Mon Feb 27 21:04:22 2023 +1100 - upstream: unit tests for misc.c:ptimeout_* API + Cast time_t's in debug output to long long. - OpenBSD-Regress-ID: 01f8fb12d08e5aaadd4bd4e71f456b6588be9a94 + Should fix Coverity warning about truncation of 64bit time_t. -commit 018d671d78145f03d6f07ae9d64d51321da70325 -Author: tb@openbsd.org -Date: Wed Jan 4 22:48:57 2023 +0000 +commit b0fd60a9de62a03189ad57d0c07f0ac51dc00e95 +Author: Darren Tucker +Date: Mon Feb 27 17:28:59 2023 +1100 - upstream: Copy bytes from the_banana[] rather than banana() - - Fixes test failure due to segfault seen on arm64 with xonly snap. - - ok djm + Do shadow expiry calcs using "long long". - OpenBSD-Regress-ID: 86e2aa4bbd1dff1bc4ebb2969c0d6474485be046 + Coverity flags these as potentially not 64bit time_t safe so use + long long for the calculations and debug output. ok djm@ -commit ab6bb69e251faa8b24f81b25c72ec0120f20cad4 +commit 01dbeb3084d714bbd001ff9d03b9de542e8cdf58 Author: Damien Miller -Date: Fri Jan 6 19:13:36 2023 +1100 +Date: Mon Feb 27 17:07:52 2023 +1100 - unbreak scp on NetBSD 4.x - - e555d5cad5 effectively increased the default copy buffer size for SFTP - transfers. This caused NetBSD 4.x to hang during the "copy local file to - remote file in place" scp.sh regression test. + avoid clash between for getopt's struct option - This puts back the original 32KB copy buffer size until we can properly - figure out why. + Since we don't use getopt_long() nothing outside the getopt() + implementation itself uses this structure, so move it into the + source to remove it from visibility and clashes with libc's - lots of debugging assistance from dtucker@ + ok dtucker@ -commit 2d1ff2b9431393ad99ef496d5e3b9dd0d4f5ac8c -Author: djm@openbsd.org -Date: Fri Jan 6 02:47:18 2023 +0000 +commit eb88d07c43afe407094e7d609248d85a15e148ef +Author: Darren Tucker +Date: Sat Feb 25 14:45:41 2023 +1100 - upstream: Implement channel inactivity timeouts - - This adds a sshd_config ChannelTimeouts directive that allows channels that - have not seen traffic in a configurable interval to be automatically closed. - Different timeouts may be applied to session, X11, agent and TCP forwarding - channels. - - Note: this only affects channels over an opened SSH connection and not - the connection itself. Most clients close the connection when their channels - go away, with a notable exception being ssh(1) in multiplexing mode. - - ok markus dtucker + Revert explicit chmods on private keys. - OpenBSD-Commit-ID: ae8bba3ed9d9f95ff2e2dc8dcadfa36b48e6c0b8 + This should no longer be needed on Cygwin test runners due to previous + commit. -commit 0e34348d0bc0b1522f75d6212a53d6d1d1367980 -Author: djm@openbsd.org -Date: Fri Jan 6 02:42:34 2023 +0000 +commit 52b75db61030a6c8baf66b73644380cf3f58e26a +Author: Darren Tucker +Date: Sat Feb 25 14:43:28 2023 +1100 - upstream: Add channel_set_xtype() - - This sets an "extended" channel type after channel creation (e.g. - "session:subsystem:sftp") that will be used for setting channel inactivity - timeouts. - - ok markus dtucker + Remove extended ACLs from working dirs. - OpenBSD-Commit-ID: 42564aa92345045b4a74300528f960416a15d4ca + This should allow umask to work as expected and prevent tests from + failing due to excessive permissions on private keys. -commit ceedf09b2977f3a756c759a6e7eb8f8e9db86a18 -Author: djm@openbsd.org -Date: Fri Jan 6 02:41:49 2023 +0000 +commit 0c5d4c843df5605b043a758d69f9a611ef63c479 +Author: Darren Tucker +Date: Fri Feb 24 13:44:13 2023 +1100 - upstream: tweak channel ctype names - - These are now used by sshd_config:ChannelTimeouts to specify timeouts by - channel type, so force them all to use a similar format without whitespace. - - ok dtucker markus + Explicitly set permissions on user and host keys. - OpenBSD-Commit-ID: 66834765bb4ae14f96d2bb981ac98a7dae361b65 + On cygwin, the umask might not be sufficient. Should fix tests on + Github runners. -commit c60438158ad4b2f83d8504257aba1be7d0b0bb4b +commit 6c9fc9d7a9f7abf82c3294d74e6d4a25735862ce Author: djm@openbsd.org -Date: Fri Jan 6 02:39:59 2023 +0000 +Date: Wed Feb 22 03:56:43 2023 +0000 - upstream: Add channel_force_close() - - This will forcibly close an open channel by simulating read/write errors, - draining the IO buffers and calling the detach function. - - Previously the detach function was only ever called during channel garbage - collection, but there was no way to signal the user of a channel (e.g. - session.c) that its channel was being closed deliberately (vs. by the - usual state-machine logic). So this adds an extra "force" argument to the - channel cleanup callback to indicate this condition. + upstream: fix progressmeter corruption on wide displays; bz3534 - ok markus dtucker + feedback/ok dtucker@ - OpenBSD-Commit-ID: 23052707a42bdc62fda2508636e624afd466324b + OpenBSD-Commit-ID: f4affee067cec7c182f3e0b307d758e0472762a3 -commit d478cdc7ad6edd4b1bcd1e86fb2f23194ff33d5a -Author: djm@openbsd.org -Date: Fri Jan 6 02:38:23 2023 +0000 +commit fe0bd3cde9665d364e5eedd2c2c2e60d4cdc3786 +Author: dtucker@openbsd.org +Date: Tue Feb 21 06:48:18 2023 +0000 - upstream: replace manual poll/ppoll timeout math with ptimeout API + upstream: fseek to end of known_hosts before writing to it. - feedback markus / ok markus dtucker + POSIX and ANSI C require that applications call fseek or similar between + read and writing to a RW file. OpenBSD doesn't enforce this, but some + (System V derived) platforms need this to prevent it from writing a + spurious extra byte (in this case, a newline). ok djm@ deraadt@ - OpenBSD-Commit-ID: c5ec4f2d52684cdb788cd9cbc1bcf89464014be2 + OpenBSD-Commit-ID: 33e680dcd8110582a93a40a8491024e961f45137 -commit 4adf3817a24efe99b06e62630577d683c7cd8065 -Author: djm@openbsd.org -Date: Fri Jan 6 02:37:04 2023 +0000 +commit 357fb8ae14c07cd025eeed66e73de91bab569849 +Author: Darren Tucker +Date: Tue Feb 21 17:51:09 2023 +1100 - upstream: add ptimeout API for keeping track of poll/ppoll - - timeouts; ok dtucker markus + Also run unit tests on AIX VMs. - OpenBSD-Commit-ID: 3335268ca135b3ec15a947547d7cfbb8ff929ead + In the past these tests took too long, but these days it only adds + about 5 min to the run. -commit 8c7c69d32375d2f3ce9da0109c9bffc560842316 -Author: djm@openbsd.org -Date: Thu Jan 5 05:49:13 2023 +0000 +commit 17781aaa5188ee1477f7779b280d105512e3dbed +Author: Darren Tucker +Date: Tue Feb 21 17:38:55 2023 +1100 - upstream: suppress "Connection closed" message when in quiet mode - - OpenBSD-Commit-ID: 8a3ab7176764da55f60bfacfeae9b82d84e3908f + Wrap stdint.h inside ifdef. -commit 845ceecea2ac311b0c267f9ecbd34862e1876fc6 -Author: djm@openbsd.org -Date: Mon Jan 2 07:03:57 2023 +0000 +commit ef798bad38505f7bf1b5fa5c0843dfc5a2b192b9 +Author: Mayank Sharma +Date: Mon Feb 20 17:37:15 2023 +0530 - upstream: regression test for PermitRemoteOpen + Add includes to ptimeout test. - OpenBSD-Regress-ID: 8271aafbf5c21950cd5bf966f08e585cebfe630c + Fixes test failures on AIX due to type mismatches. -commit b3daa8dc582348d6ab8150bc1e571b7aa08c5388 -Author: djm@openbsd.org -Date: Mon Jan 2 07:03:30 2023 +0000 +commit ab69dda05d5268454209f529fa80f477e60d846a +Author: Darren Tucker +Date: Mon Feb 20 18:24:39 2023 +1100 - upstream: fix bug in PermitRemoteOpen which caused it to ignore its + Always use the openssl binary configure tells us. - first argument unless it was one of the special keywords "any" or "none". + This fixes tests on platforms that do not have the openssl tool + installed at all. + +commit 2a7e3449908571af601a4c2d12ab140096442e47 +Author: dtucker@openbsd.org +Date: Fri Feb 17 04:22:50 2023 +0000 + + upstream: Remove now-unused compat bit SSH_BUG_RSASIGMD5. The code - Reported by Georges Chaudy in bz3515; ok dtucker@ + to set this was removed in OpenSSH 7.7 when support for SSH implementations + dating back to before RFC standardization were removed. "burn it all" djm@ - OpenBSD-Commit-ID: c5678a39f1ff79993d5ae3cfac5746a4ae148ea5 + OpenBSD-Commit-ID: 6330935fbe23dd00be79891505e06d1ffdac7cda -commit 0872663a7be0301bcc3d49acdbc9b740a3d972d4 -Author: jmc@openbsd.org -Date: Mon Dec 26 19:16:03 2022 +0000 +commit 0833ccf2c8b7ae08b296c06f17bd53e3ab94b0b0 +Author: dtucker@openbsd.org +Date: Fri Feb 17 03:06:18 2023 +0000 - upstream: spelling fixes; from paul tagliamonte amendments to his + upstream: Remove now-unused compat bit SSH_BUG_BIGENDIANAES. This - diff are noted on tech + was previously set for OpenSSH 2.3 (released in 2000) but this check was + removed in OpenSSH 7.7 (2018). ok djm@ deraadt@ - OpenBSD-Commit-ID: d776dd03d0b882ca9c83b84f6b384f6f9bd7de4a + OpenBSD-Commit-ID: 326426ea328707fc9e83305291ab135c87f678af -commit 797da2812a71785b34890bb6eb44767a7d09cd34 -Author: djm@openbsd.org -Date: Fri Dec 16 07:13:22 2022 +0000 +commit c81c2bea6e828d52b62b448b4ffdd3c163177975 +Author: Damien Miller +Date: Fri Feb 17 10:12:40 2023 +1100 - upstream: Mention that scp uses the SFTP protocol and remove + whitespace fixes + +commit 500f90b39db5f0014e6b0c49ff1f45c994b69293 +Author: Damien Miller +Date: Fri Feb 17 10:02:08 2023 +1100 + + whitespace at EOL + +commit 68350152406339170721c15e97afdf827a5e4001 +Author: dtucker@openbsd.org +Date: Thu Feb 16 10:10:00 2023 +0000 + + upstream: Remove SSH_BUG_PASSWORDPAD compat bit - reference to legacy flag. Spotted by, feedback and ok jmc@ + since it's no longer used. ok markus@ - OpenBSD-Commit-ID: 9dfe04966f52e941966b46c7a2972147f95281b3 + OpenBSD-Commit-ID: b92c21f56fe4b7f9a54790d6a9650725c226820b -commit 93f2ce8c050a7a2a628646c00b40b9b53fef93ef -Author: djm@openbsd.org -Date: Fri Dec 16 06:56:47 2022 +0000 +commit 537cccd804eaf65f32bdce037cc31db4e0ab0f44 +Author: dtucker@openbsd.org +Date: Thu Feb 16 07:55:15 2023 +0000 - upstream: Clear signal mask early in main(); sshd may have been + upstream: Remove SSH_BUG_IGNOREMSG compat flag - started with one or more signals masked (sigprocmask(2) is not cleared - on fork/exec) and this could interfere with various things, e.g. the - login grace timer. + since it's only applicable to SSH1 and thus no longer used. ok markus@ + "kill it with fire" djm@ - Execution environments that fail to clear the signal mask before running - sshd are clearly broken, but apparently they do exist. + OpenBSD-Commit-ID: ea13318b1937795d9db4790d3ce0a6ed01584dab + +commit 285cf6cd4b91a0a0ce33193c358c99085af33e43 +Author: jmc@openbsd.org +Date: Fri Feb 10 06:41:53 2023 +0000 + + upstream: space between macro and punctuation; sort usage(); - Reported by Sreedhar Balasubramanian; ok dtucker@ + OpenBSD-Commit-ID: 6141610cfca037700730e41f868d1d9124958f8c + +commit d39a96f70f81878c77336ed35f5c648c1804b71a +Author: jmc@openbsd.org +Date: Fri Feb 10 06:40:48 2023 +0000 + + upstream: space between macro and punctuation; - OpenBSD-Commit-ID: 77078c0b1c53c780269fc0c416f121d05e3010ae + OpenBSD-Commit-ID: abc95e550be9e6d9a7ff64b65c104c7be21ab19e -commit 4acfaabfae41badb9d334a2ee88c5c6ad041c0d5 +commit 16e82bf53fc34e43e3b948d43b68d5b27a7335e6 Author: jmc@openbsd.org -Date: Fri Dec 16 06:52:48 2022 +0000 +Date: Fri Feb 10 06:39:27 2023 +0000 - upstream: add -X to usage(); + upstream: sort SYNOPSIS; - OpenBSD-Commit-ID: 1bdc3df7de11d766587b0428318336dbffe4a9d0 + OpenBSD-Commit-ID: dacd9da33277d5669a51213d880632599c890c1e -commit e555d5cad5afae7d5ef2bbc02ca591178fe16fed +commit d9685121ff6d57b8797411f3cb123884a4b96e30 +Author: Darren Tucker +Date: Sat Feb 11 12:32:19 2023 +1100 + + Improve seccomp compat on older systems. + + Check if flags to mmap and madvise are defined before using them. + Should fix problems building on older Linux systems that don't have + these. bz#3537, with & ok djm@. + +commit 6180b0fa4f7996687678702806257e661fd5931e Author: djm@openbsd.org -Date: Fri Dec 16 03:40:03 2022 +0000 +Date: Fri Feb 10 05:06:03 2023 +0000 - upstream: add a -X option to both scp(1) and sftp(1) to allow + upstream: test -Ohashalg=... and that the default output contains both - control over some SFTP protocol knobs: the copy buffer length and - the number of inflight requests, both of which are used during - upload/download. + specified hash algorithms; prompted by dtucker@ - Previously these could be controlled in sftp(1) using the -b/-R options. - This makes them available in both SFTP protocol clients using the same - option character sequence. + OpenBSD-Regress-ID: 26f309208c8d8b8fa9c5f419767b85f1e9b22f51 + +commit d651f5c9fe37e61491eee46c49ba9fa03dbc0e6a +Author: djm@openbsd.org +Date: Fri Feb 10 04:56:30 2023 +0000 + + upstream: let ssh-keygen and ssh-keyscan accept - ok dtucker@ + -Ohashalg=sha1|sha256 when outputting SSHFP fingerprints to allow algorithm + selection. bz3493 ok dtucker@ - OpenBSD-Commit-ID: 27502bffc589776f5da1f31df8cb51abe9a15f1c + OpenBSD-Commit-ID: e6e07fe21318a873bd877f333e189eb963a11b3d -commit 5a7a7acab2f466dc1d7467b5d05d35268c3137aa -Author: deraadt@openbsd.org -Date: Thu Dec 15 18:20:39 2022 +0000 +commit 18938d11a90b74d63c20b2d3c965d5bd64786ab1 +Author: djm@openbsd.org +Date: Fri Feb 10 04:47:19 2023 +0000 - upstream: The idiomatic way of coping with signed char vs unsigned + upstream: add a `sshd -G` option that parses and prints the - char (which did not come from stdio read functions) in the presence of - ctype macros, is to always cast to (unsigned char). casting to (int) - for a "macro" which is documented to take int, is weird. And sadly wrong, - because of the sing extension risk.. same diff from florian + effective configuration without attempting to load private keys and perform + other checks. This allows usage of the option before keys have been + generated. - OpenBSD-Commit-ID: 65b9a49a68e22ff3a0ebd593f363e9f22dd73fea + bz3460 feedback/ok dtucker@ + + OpenBSD-Commit-ID: 774504f629023fc25a559ab1d95401adb3a7fb29 -commit b0b58222c7cc62efd8212c4fb65a545f58ebb22d -Author: Darren Tucker -Date: Mon Dec 19 18:49:51 2022 +1100 +commit df7d3dbf7194db8e97730ee0425d4d9d7bdb8b10 +Author: djm@openbsd.org +Date: Fri Feb 10 04:40:28 2023 +0000 - Simply handling of SSH_CONNECTION PAM env var. + upstream: make `ssh -Q CASignatureAlgorithms` work as the manpage says - Prompted by bz#3508: there's no need to cache the value of - sshpam_conninfo so remove the global. While there, add check of - return value from pam_putenv. ok djm@ + it should bz3532 + + OpenBSD-Commit-ID: 0ddb17b3fcbd99bfb5baea4ac5e449620cbd3adc -commit ed8444572ae684fdb892f97bae342c6cb6456f04 +commit d3b8d4198b6595f23b5859d43dc8fc701f97429b Author: Darren Tucker -Date: Mon Dec 19 18:42:34 2022 +1100 +Date: Fri Feb 10 14:26:44 2023 +1100 - Add tests for LibreSSL 3.7.0 and OpenSSL 1.1.1s. + Add CentOS 7 test targets. -commit abb9a8aaddfcacbd12641f6e4f203da0fa85a287 -Author: Darren Tucker -Date: Sun Dec 18 21:36:25 2022 +1100 +commit 22efb01e355bba4755b730ed417f91c081445bfc +Author: dtucker@openbsd.org +Date: Thu Feb 9 09:55:33 2023 +0000 - Use sudo when resetting perms on directories. + upstream: Test adding terminating newline to known_hosts. + + OpenBSD-Regress-ID: 5fc3010ac450195b3fbdeb68e875564968800365 -commit 2f5664c5908d84697cbe91302d5d5c4d83cb2121 -Author: Darren Tucker -Date: Sun Dec 18 21:19:33 2022 +1100 +commit caec6da1a583ed8c32c6ad3b81bbcaab46ac8b61 +Author: dtucker@openbsd.org +Date: Wed Feb 8 08:06:03 2023 +0000 - Set group perms on regress dir. + upstream: ssh-agent doesn't actually take -v, - This ensures that the tests don't fail due to StrictMode checks. + so the recently-added ones will result in the test not cleaning up + after itself. Patch from cjwatson at debian.org vi bz#3536. + + OpenBSD-Regress-ID: 1fc8283568f5bf2f918517c2c1e778072cf61b1a -commit 137196300fc1540affadde880210f02ba6cb4abf -Author: Darren Tucker -Date: Sun Dec 18 21:13:42 2022 +1100 +commit 3c379c9a849a635cc7f05cbe49fe473ccf469ef9 +Author: dtucker@openbsd.org +Date: Thu Feb 9 09:54:11 2023 +0000 - Fetch regress logs from obj dir. + upstream: Ensure that there is a terminating newline when adding a new + + entry to known_hosts. bz#3529, with git+openssh at limpsquid.nl, ok deraadt@ + markus@ + + OpenBSD-Commit-ID: fa8d90698da1886570512b96f051e266eac105e0 -commit 5f93c4836527d9fda05de8944a1c7b4a205080c7 +commit 95b6bbd2553547260b324b39d602061c88b774bc Author: Darren Tucker -Date: Tue Dec 13 20:59:54 2022 +1100 +Date: Tue Feb 7 08:43:47 2023 +1100 - obsdsnap test VMs runs-on libvirt too. + Replace 9.1 with 9.2 on CI status page. -commit 8386886fb1ab7fda73069fb0db1dbe0e5a52f758 -Author: Darren Tucker -Date: Tue Dec 13 20:55:37 2022 +1100 +commit 195313dfe10a23c82e9d56d5fdd2f59beee1bdcf +Author: Damien Miller +Date: Fri Feb 3 16:33:09 2023 +1100 - Run upstream obsdsnap tests on ephemeral runners. + harden Linux seccomp sandbox + + Linux mmap(2) and madvise(2) syscalls support quite a number of funky + flags that we don't expect that sshd/libc will ever need. We can + exclude this kernel attack surface by filtering the mmap(2) flags + and the madvise(2) advice arguments. + + Similarly, the sandboxed process in sshd is a single-threaded program + that does not use shared memory for synchronisation or communication. + Therefore, there should be no reason for the advanced priority + inheritance futex(2) operations to be necessary. These can also be + excluded. + + Motivated by Jann Horn pointing out that there have been kernel bugs + in nearby Linux kernel code, e.g. CVE-2020-29368, CVE-2020-29374 and + CVE-2022-42703. + + Feedback Jann Horn, ok dtucker@ -commit b6e01459b55ece85d7f296b2bc719d1841e1009e -Author: Darren Tucker -Date: Tue Dec 13 20:48:56 2022 +1100 +commit 6dfb65de949cdd0a5d198edee9a118f265924f33 +Author: Damien Miller +Date: Thu Feb 2 23:21:54 2023 +1100 - Move obsdsnap test VMs to ephemeral runners. + crank versions in RPM specs -commit ea6fdf9a1aa71a411f7db218a986392c4fb55693 +commit d07cfb11a0ca574eb68a3931d8c46fbe862a2021 Author: Damien Miller -Date: Fri Dec 9 18:00:21 2022 +1100 +Date: Thu Feb 2 23:21:45 2023 +1100 - use calloc for allocating arc4random structs - - ok dtucker + update version in README -commit 4403b62f5548e91389cb3339d26a9d0c4bb07b34 -Author: dtucker@openbsd.org -Date: Fri Dec 9 00:22:29 2022 +0000 +commit 9fe207565b4ab0fe5d1ac5bb85e39188d96fb214 +Author: Damien Miller +Date: Thu Feb 2 23:17:49 2023 +1100 - upstream: Warn if no host keys for hostbased auth can be loaded. + adapt compat_kex_proposal() test to portable + +commit 903c556b938fff2d7bff8da2cc460254430963c5 +Author: djm@openbsd.org +Date: Thu Feb 2 12:12:52 2023 +0000 + + upstream: test compat_kex_proposal(); by dtucker@ - OpenBSD-Commit-ID: 2a0a13132000cf8d3593133c1b49768aa3c95977 + OpenBSD-Regress-ID: 0e404ee264db546f9fdbf53390689ab5f8d38bf2 -commit a6183e25e3f1842e21999fe88bc40bb99b121dc3 +commit 405fba71962dec8409c0c962408e09049e5624b5 Author: dtucker@openbsd.org -Date: Fri Dec 9 00:17:40 2022 +0000 +Date: Thu Jan 19 07:53:45 2023 +0000 - upstream: Add server debugging for hostbased auth. + upstream: Check if we can copy sshd or need to use sudo to do so - auth_debug_add queues messages about the auth process which is sent to - the client after successful authentication. This also sends those to - the server debug log to aid in debugging. From bz#3507, ok djm@ + during reexec test. Skip test if neither can work. Patch from anton@, tweaks + from me. - OpenBSD-Commit-ID: 46ff67518cccf9caf47e06393e2a121ee5aa258a + OpenBSD-Regress-ID: 731b96ae74d02d5744e1f1a8e51d09877ffd9b6d -commit b85c3581c16aaf6e83b9a797c80705a56b1f312e -Author: cheloha@openbsd.org -Date: Sun Dec 4 23:50:49 2022 +0000 +commit b2a2a8f69fd7737ea17dc044353c514f2f962f35 +Author: djm@openbsd.org +Date: Thu Feb 2 12:10:22 2023 +0000 - upstream: remove '?' from getopt(3) loops - - userspace: remove vestigial '?' cases from top-level getopt(3) loops - - getopt(3) returns '?' when it encounters a flag not present in the in - the optstring or if a flag is missing its option argument. We can - handle this case with the "default" failure case with no loss of - legibility. Hence, remove all the redundant "case '?':" lines. - - Prompted by dlg@. With help from dlg@ and millert@. - - Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2 - - ok naddy@ millert@ dlg@ + upstream: openssh-9.2 - OpenBSD-Commit-ID: b2f89346538ce4f5b33ab8011a23e0626a67e66e + OpenBSD-Commit-ID: f7389f32413c74d6e2055f05cf65e7082de03923 -commit 9a067e8d28a2249fd73f004961e30c113ee85e5d -Author: dtucker@openbsd.org -Date: Wed Dec 7 11:45:43 2022 +0000 +commit 12da7823336434a403f25c7cc0c2c6aed0737a35 +Author: djm@openbsd.org +Date: Thu Feb 2 12:10:05 2023 +0000 - upstream: Fix comment typo. + upstream: fix double-free caused by compat_kex_proposal(); bz3522 - OpenBSD-Regress-ID: 3b04faced6511bb5e74648c6a4ef4bf2c4decf03 + by dtucker@, ok me + + OpenBSD-Commit-ID: 2bfc37cd2d41f67dad64c17a64cf2cd3806a5c80 -commit ce3c3e78ce45d68a82c7c8dc89895f297a67f225 +commit 79efd95ab5ff99f4cb3a955e2d713b3f54fb807e Author: Darren Tucker -Date: Wed Dec 7 18:58:25 2022 +1100 +Date: Wed Feb 1 17:17:26 2023 +1100 - Add SANDBOX_DEBUG to the kitchensink test build. + Skip connection-timeout test on minix3. + + Minix 3's Unix domain sockets don't seem to work the way we expect, so + skip connection-timeout test on that platform. While there, group + together all similarly skipped tests and explicitly comment. -commit bc234605fa3eb10f56bf0d74c8ecb0d91ada9d05 +commit 6b508c4e039619842bcf5a16f8a6b08dd6bec44a Author: Damien Miller -Date: Wed Dec 7 18:38:25 2022 +1100 +Date: Wed Feb 1 12:12:05 2023 +1100 - disable SANDBOX_SECCOMP_FILTER_DEBUG + fix libfido2 detection without pkg-config - It was mistakenly enabled in 2580916e4872 + Place libfido2 before additional libraries (that it may depend upon) + and not after. bz3530 from James Zhang; ok dtucker@ + +commit 358e300fed5e6def233a2c06326e51e20ebed621 +Author: deraadt@openbsd.org +Date: Wed Jan 18 20:56:36 2023 +0000 + + upstream: delete useless dependency - Reported by Peter sec-openssh-com.22.fichtner AT 0sg.net + OpenBSD-Commit-ID: e1dc11143f83082e3154d6094f9136d0dc2637ad -commit b087c5cfa011b27992e01589314fec830266f99d -Author: Rose <83477269+AtariDreams@users.noreply.github.com> -Date: Tue Nov 29 15:12:54 2022 -0500 +commit a4cb9be1b021b511e281ee55c356f964487d9e82 +Author: deraadt@openbsd.org +Date: Wed Jan 18 20:43:15 2023 +0000 - Update autotools + upstream: Create and install sshd random relink kit. - Regenerate config files using latest autotools + ../Makefile.inc and Makfile are concatenated for reuse, which hopefully won't + be too fragile, we'll see if we need a different approach. The resulting sshd + binary is tested with the new sshd -V option before installation. As the + binary layout is now semi-unknown (meaning relative, fixed, and gadget + offsets are not precisely known), change the filesystem permissions to 511 to + prevent what I call "logged in BROP". I have ideas for improving this further + but this is a first step ok djm + + OpenBSD-Commit-ID: 1e0a2692b7e20b126dda60bf04999d1d30d959d8 -commit d63f5494978a185c7421d492b9c2f6f05bb54138 -Author: Darren Tucker -Date: Tue Dec 6 12:22:36 2022 +1100 +commit bc7de6f91a9a0ae2f148a9d31a4027d441a51999 +Author: jmc@openbsd.org +Date: Wed Jan 18 06:55:32 2023 +0000 - Fix typo in comment. Spotted by tim@ + upstream: tweak previous; ok djm + + OpenBSD-Commit-ID: df71ce4180c58202dfdc1d92626cfe900b91b7c3 -commit 73dcca12115aa12ed0d123b914d473c384e52651 -Author: dtucker@openbsd.org -Date: Sun Dec 4 11:03:11 2022 +0000 +commit a20b7e999773e6333c8aa9b0a7fa41966e63b037 +Author: Darren Tucker +Date: Tue Jan 31 19:35:44 2023 +1100 - upstream: Remove duplicate includes. + Skip connection-timeout test under Valgrind. - Patch from AtariDreams via github PR#364. + Valgrind slows things down so much that the timeout test fails. Skip + this test until we figure out if we can make it work. + +commit c3ffb54b4fc5e608206037921db6ccbc2f5ab25f +Author: Darren Tucker +Date: Wed Jan 25 21:58:40 2023 +1100 + + Skip connection-timeout when missing FD passing. - OpenBSD-Commit-ID: b9186638a05cb8b56ef7c0de521922b6723644ea + This tests uses multiplexing which uses file descriptor passing, so + skip it if we don't have that. Fixes test failures on Cygwin. -commit 3cec15543010bc8d6997d896b1717a650afb7e92 +commit 35253af01d8c0ab444c8377402121816e71c71f5 Author: djm@openbsd.org -Date: Fri Dec 2 04:40:27 2022 +0000 +Date: Wed Jan 18 02:00:10 2023 +0000 - upstream: make struct sshbuf private + upstream: when restoring non-blocking mode to stdio fds, restore - and remove an unused field; ok dtucker + exactly the flags that ssh started with and don't just clobber them with + zero, as this could also remove the append flag from the set; - OpenBSD-Commit-ID: c7a3d77c0b8c153d463398606a8d57569186a0c3 + bz3523; ok dtucker@ + + OpenBSD-Commit-ID: 1336b03e881db7564a4b66014eb24c5230e9a0c0 -commit 5796bf8ca9535f9fa7d01829a540d2550e05c860 -Author: Darren Tucker -Date: Fri Dec 2 11:43:36 2022 +1100 +commit 7d17ea151c0b2519f023bd9cc7f141128833ac47 +Author: millert@openbsd.org +Date: Wed Jan 18 01:50:21 2023 +0000 - Restore ssh-agent permissions on exit. + upstream: Add a -V (version) option to sshd like the ssh client - ...enough that subsequent builds can overwrite ssh-agent if necessary. + has. OK markus@ deraadt@ + + OpenBSD-Commit-ID: abe990ec3e636fb040132aab8cbbede98f0c413e -commit ccf5a13868cbb4659107458cac1e017c98abcbda -Author: dtucker@openbsd.org -Date: Thu Dec 1 02:22:13 2022 +0000 +commit 62360feb7f08f2a4c6fc36f3b3449309203c42c9 +Author: millert@openbsd.org +Date: Tue Jan 17 18:52:44 2023 +0000 - upstream: Clean up ssh-add and ssh-agent logs. + upstream: For "ssh -V" always exit 0, there is no need to check opt - OpenBSD-Regress-ID: 9eda8e4c3714d7f943ab2e73ed58a233bd29cd2c + again. This was missed when the fallthrough in the switch case above it was + removed. OK deraadt@ + + OpenBSD-Commit-ID: 5583e5d8f6d62a8a4215cfa95a69932f344c8120 -commit 7a8b40cf6a5eda80173140cc6750a6db8412fa87 -Author: dtucker@openbsd.org -Date: Thu Dec 1 02:19:29 2022 +0000 +commit 12492c0abf1eb415d08a897cc1d8b9e789888230 +Author: djm@openbsd.org +Date: Tue Jan 17 10:15:10 2023 +0000 - upstream: Log output of ssh-agent and ssh-add + upstream: also check that an active session inhibits - This should make debugging easier. + UnusedConnectionTimeout idea markus@ - OpenBSD-Regress-ID: 5974b02651f428d7e1079b41304c498ca7e306c8 + OpenBSD-Regress-ID: 55c0fb61f3bf9e092b0a53f9041d3d2012f14003 -commit 4a1805d532616233dd6072e5cd273b96dd3062e6 -Author: dtucker@openbsd.org -Date: Tue Nov 29 22:41:14 2022 +0000 +commit cef2593c33ac46a58238ff998818754eabdf64ff +Author: djm@openbsd.org +Date: Tue Jan 17 10:02:34 2023 +0000 - upstream: Add void to client_repledge args to fix compiler warning. ok djm@ + upstream: regression test for UnusedConnectionTimeout - OpenBSD-Commit-ID: 7e964a641ce4a0a0a11f047953b29929d7a4b866 + OpenBSD-Regress-ID: 7f29001374a68e71e5e078f69e4520cf4bcca084 -commit 815c4704930aa449edf6e812e99d69e9ffd31f01 +commit aff9493a89c71d6a080419b49ac64eead9730491 Author: djm@openbsd.org -Date: Mon Nov 28 01:38:22 2022 +0000 +Date: Mon Jan 16 04:11:29 2023 +0000 - upstream: tighten pledge(2) after session establishment + upstream: unbreak test: cannot access shell positional parameters - feedback, ok & testing in snaps deraadt@ + past $9 without wrapping the position in braces (i.e. need ${10}, etc.) - OpenBSD-Commit-ID: aecf4d49d28586dfbcc74328d9333398fef9eb58 + OpenBSD-Regress-ID: 3750ec98d5d409ce6a93406fedde6f220d2ea2ac -commit f7cebbbf407d772ed71403d314343766782fe540 +commit 0293c19807f83141cdf33b443154459f9ee471f6 Author: djm@openbsd.org -Date: Mon Nov 28 01:37:36 2022 +0000 +Date: Tue Jan 17 09:44:48 2023 +0000 - upstream: New EnableEscapeCommandline ssh_config(5) option + upstream: Add a sshd_config UnusedConnectionTimeout option to terminate - This option (default "no") controls whether the ~C escape is available. - Turning it off by default means we will soon be able to use a stricter - default pledge(2) in the client. + client connections that have no open channels for some length of time. This + complements the recently-added ChannelTimeout option that terminates inactive + channels after a timeout. - feedback deraadt@ dtucker@; tested in snaps for a while + ok markus@ - OpenBSD-Commit-ID: 7e277595d60acb8263118dcb66554472257b387a + OpenBSD-Commit-ID: ca983be74c0350364c11f8ba3bd692f6f24f5da9 -commit d323f7ecf52e3d4ec1f4939bf31693e02f891dca -Author: mbuhl@openbsd.org -Date: Fri Nov 18 19:47:40 2022 +0000 +commit 8ec2e3123802d2beeca06c1644b0b647f6d36dab +Author: djm@openbsd.org +Date: Sun Jan 15 23:35:10 2023 +0000 - upstream: In channel_request_remote_forwarding the parameters for - - permission_set_add are leaked as they are also duplicated in the call. Found - by CodeChecker. ok djm + upstream: adapt to ed25519 changes in src/usr.bin/ssh - OpenBSD-Commit-ID: 4aef50fa9be7c0b138188814c8fe3dccc196f61e + OpenBSD-Regress-ID: 4b3e7ba7ee486ae8a0b4790f8112eded2bb7dcd5 -commit 62cc33e6eed847aafdc29e34aa69e9bd82a0ee16 -Author: Darren Tucker -Date: Wed Nov 30 11:23:11 2022 +1100 +commit 9fbbfeca1ce4c7ec0001c827bbf4189a3ba0964b +Author: djm@openbsd.org +Date: Sun Jan 15 23:05:32 2023 +0000 - Use -fzero-call-used-regs=used on clang 15. + upstream: update OpenSSH's Ed25519 code to the last version of SUPERCOP - clang 15 seems to have a problem with -fzero-call-used-reg=all which - causes spurious "incorrect signature" failures with ED25519. On those - versions, use -fzero-call-used-regs=used instead. (We may add exceptions - later if specific versions prove to be OK). Also move the GCC version - check to match. + (20221122) and change the import approach to the same one we use for + Streamlined NTRUPrime: use a shell script to extract the bits we need from + SUPERCOP, make some minor adjustments and squish them all into a single file. - Initial investigation by Daniel Pouzzner (douzzer at mega nu), workaround - suggested by Bill Wendling (morbo at google com). bz#3475, ok djm@ + ok tb@ tobhe@ + + OpenBSD-Commit-ID: 1bc0fd624cb6af440905b8ba74ac7c03311b8e3b -commit f84b9cffd52c9c5c359a54a1929f9948e803ab1d +commit 6283f4bd83eee714d0f5fc55802eff836b06fea8 Author: Darren Tucker -Date: Mon Nov 28 21:09:28 2022 +1100 +Date: Sat Jan 14 22:02:44 2023 +1100 - Skip unit tests on slow riscv64 hardware. + Allow writev is seccomp sandbox. + + This seems to be used by recent glibcs at least in some configurations. + From bz#3512, ok djm@ -commit 9f2747e0bed3faca92679eae69aef10c95dc82f5 -Author: Darren Tucker -Date: Sun Nov 27 15:26:22 2022 +1100 +commit 923c3f437f439cfca238fba37e97a7041782f615 +Author: dtucker@openbsd.org +Date: Sat Jan 14 10:05:54 2023 +0000 - Rework how selfhosted tests interact with runners. + upstream: Shell syntax fix. From ren mingshuai vi github PR#369. - Previously there was one runner per test target (mostly VMs). This had - a few limitations: - - multiple tests that ran on the same target (eg multiple build - configs) were serialized on availability or that runner. - - it needed manual balancing of VMs over host machines. + OpenBSD-Regress-ID: 6696b2eeefe128099fc3d7ea9f23252cc35156f9 + +commit 4d87a00f704e0365e11c3c38b170c1275ec461fc +Author: dtucker@openbsd.org +Date: Sat Jan 14 09:57:08 2023 +0000 + + upstream: Instead of skipping the all-tokens test if we don't have - To address this, make VMs that use ephemeral disks (ie most of them) - all use a pool of runners with the "libvirt" label. This requires that - we distinguish between "host" and "target" for those. Native runners - and VMs with persistent disks (eg the constantly-updated snapshot ones) - specify the same host and target. + OpenSSL (since we use it to compute the hash), put the hash at the end and + just omit it if we don't have it. Prompted by bz#3521. - This should improve test throughput. + OpenBSD-Regress-ID: c79ecba64250ed3b6417294b6c965e6b12ca5eea -commit d664ddaec87bdc7385be8ef7f1337793e1679d48 -Author: Darren Tucker -Date: Sun Nov 27 12:19:37 2022 +1100 +commit b05406d6f93b8c8ec11ec8b27e7c76cc7a5a55fb +Author: jmc@openbsd.org +Date: Fri Jan 13 07:13:40 2023 +0000 - Run vmstartup from temp dir. + upstream: fix double phrase in previous; - This will allow us to create ephemeral disk images per-runner. + OpenBSD-Commit-ID: 671e6c8dc5e9230518b2bbfa143daaa88adc66c2 -commit 0fa16e952b1fc1c4cf65e3dd138b0e87003e2e45 -Author: Darren Tucker -Date: Sun Nov 27 12:14:00 2022 +1100 +commit 40564812b659c530eb1f4b62d09e85612aef3107 +Author: dtucker@openbsd.org +Date: Fri Jan 13 03:16:29 2023 +0000 - Make "config" in matrix singular and pass in env. + upstream: Document "UserKnownHostsFile none". ok djm@ - This will allow the startup scripts to adapt their behaviour based on - the type and config. + OpenBSD-Commit-ID: f695742d39e34ecdcc3c861c3739a84648a4bce5 -commit e8857043af54809187be1e8b06749db61112899f +commit d03e245e034019a37388f6f5f893ce848ab6d2e2 Author: Darren Tucker -Date: Sun Nov 27 11:42:22 2022 +1100 - - Add "libvirt" label to dfly30. +Date: Fri Jan 13 23:02:34 2023 +1100 -commit 9775473d84902dc37753686cd10ae71fbe67efda -Author: Darren Tucker -Date: Sun Nov 27 09:28:20 2022 +1100 - - Rename "os" in matrix to "target". + Retry package installation 3 times. - This is in preparation to distinguish this from the host that the runner - runs on in case where they are separate (eg VMs). + When setting up the CI environment, retry package installation 3 times + before going up. Should help prevent spurious failures during + infrastructure issues. -commit 04fd00ceff39f4544ced6f5342060abe584835d0 -Author: Darren Tucker -Date: Sun Nov 27 09:23:04 2022 +1100 +commit 625f6bc39840167dafb3bf5b6a3e18503ac986e8 +Author: dtucker@openbsd.org +Date: Fri Jan 13 04:47:34 2023 +0000 - Remove unused self-hosted test targets. + upstream: Move scp path setting to a helper function. The previous + + commit to add scp to the test sshd's path causes the t-envpass test to fail + when the test scp is given using a fully qualified path. Put this in a + helper function and only call it from the scp tests. + + OpenBSD-Regress-ID: 7533dc1c4265c1de716abb062957994195b36df4 -commit c9d9fcad2a11c1cd1550a541f44091d65f0b5584 -Author: Darren Tucker -Date: Sun Nov 27 09:16:15 2022 +1100 +commit 6e6f88647042b3cde54a628545c2f5fb656a9327 +Author: dtucker@openbsd.org +Date: Fri Jan 13 04:23:00 2023 +0000 - Remove explicit "default" test config argument. + upstream: Add scp's path to test sshd's PATH. - Not specifying the test config implicitly selects default args. + If the scp we're testing is fully qualified (eg it's not in the system + PATH) then add its path to the under-test sshd's PATH so we can find + it. Prompted by bz#3518. + + OpenBSD-Regress-ID: 7df4f5a0be3aa135495b7e5a6719d3cbc26cc4c0 -commit 15a01cf15f396f87c6d221c5a6af98331c818962 +commit 8a5e99a70fcf9b022a8aa175ebf6a71f58511da3 Author: Darren Tucker -Date: Wed Nov 23 13:18:54 2022 +1100 +Date: Fri Jan 13 15:49:48 2023 +1100 - Add fallback for old platforms w/out MAP_ANON. + Remove skipping test when scp not in path. + + An upcoming change renders this obsolete by adding scp's path to the + test sshd's PATH, and removing this first will make the subsequent sync + easier. -commit 6b9bbbfe8b26db6e9a30a7e08c223e85421aed98 -Author: Darren Tucker -Date: Wed Nov 23 13:09:11 2022 +1100 +commit 41f36dd896c8fb8337d403fcf476762986976e9d +Author: dtucker@openbsd.org +Date: Fri Jan 13 02:58:20 2023 +0000 - If we haven't found it yet, recheck for sys/stat.h. + upstream: Add a "Host" line to the output of ssh -G showing the - On some very old platforms, sys/stat.h needs sys/types.h, however - autoconf 2.71's AC_CHECK_INCLUDES_DEFAULT checks for them in the - opposite order, which in combination with modern autoconf's - "present but cannot be compiled" behaviour causes it to not be - detected. + original host arg. Inspired by patch from vincent at bernat.ch via bz#3343, + ok djm@ + + OpenBSD-Commit-ID: 59c0f60a222113a44d0650cd394376e3beecc883 -commit 8926956f22639132a9f2433fcd25224e01b900f5 -Author: Darren Tucker -Date: Fri Nov 11 11:25:37 2022 +1100 +commit f673b49f3be3eb51074fbb8a405beb6cd0f7d93e +Author: djm@openbsd.org +Date: Fri Jan 13 02:44:02 2023 +0000 - Add dfly62 test target. + upstream: avoid printf("%s", NULL) if using ssh + + -oUserKnownHostsFile=none and a hostkey in one of the system known hosts file + changes; ok dtucker@ + + OpenBSD-Commit-ID: 7ca87614bfc6da491315536a7f2301434a9fe614 -commit 650de7ecd3567b5a5dbf16dd1eb598bd8c20bca8 -Author: dtucker@openbsd.org -Date: Thu Nov 10 23:03:10 2022 +0000 +commit 93fc7c576563e3d88a1dc019dd213f65607784cc +Author: djm@openbsd.org +Date: Wed Jan 11 05:39:38 2023 +0000 - upstream: Handle dynamic remote port forwarding in escape commandline's + upstream: clamp the minimum buffer lengths and number of inflight - -R processing. bz#3499, ok djm@ + requests too - OpenBSD-Commit-ID: 194ee4cfe7ed0e2b8ad0727f493c798a50454208 + OpenBSD-Commit-ID: c4965f62fa0ba850940fd66ae3f60cf516bbcd56 -commit 5372db7e7985ba2c00f20fdff8942145ca99e033 -Author: Darren Tucker -Date: Thu Nov 10 12:44:51 2022 +1100 +commit 48bf234322e639d279c5a28435eae50155e9b514 +Author: djm@openbsd.org +Date: Wed Jan 11 05:36:50 2023 +0000 - Remove seed passing over reexec. + upstream: ignore bogus upload/download buffer lengths in the limits - This was added for the benefit of platforms using ssh-rand-helper to - prevent a delay on each connection as sshd reseeded itself. + extension - ssh-random-helper is long gone, and since the re-exec happens before the - chroot the re-execed sshd can reseed itself normally. ok djm@ + OpenBSD-Commit-ID: c5b023e0954693ba9a5376e4280c739b5db575f8 -commit ca98d3f8c64cfc51af81e1b01c36a919d5947ec2 -Author: Darren Tucker -Date: Wed Nov 9 20:59:20 2022 +1100 +commit 36b00d31833ca74cb0f7c7d8eda1bde55700f929 +Author: djm@openbsd.org +Date: Wed Jan 11 02:13:52 2023 +0000 - Skip reexec test on OpenSSL 1.1.1 specifically. + upstream: remove whitespace at EOL from code extracted from SUPERCOP - OpenSSL 1.1.1 has a bug in its RNG that breaks reexec fallback, so skip - that test. See bz#3483 for details. + OpenBSD-Commit-ID: 1ec524ff2fbb9387d731601437c82008f35a60f4 -commit 5ec4ebc2548e5f7f1b55b2a5cef5b67bdca8146f -Author: dtucker@openbsd.org -Date: Wed Nov 9 09:04:12 2022 +0000 +commit d888de06c5e4d7dbf2f2b85f2b5bf028c570cf78 +Author: djm@openbsd.org +Date: Wed Jan 11 00:51:27 2023 +0000 - upstream: Fix typo in fatal error message. + upstream: rewrite this test to use a multiplexed ssh session so we can - Patch from vapier at chromium.org. + control its lifecycle without risk of race conditions; fixes some of the + Github integration tests for openssh-portable - OpenBSD-Commit-ID: 8a0c164a6a25eef0eedfc30df95bfa27644e35cf + OpenBSD-Regress-ID: 5451cad59ba0d43ae9eeda48ec80f54405fee969 -commit e6abafe9a6d809422d3432b95b3f9747b0acaa71 -Author: dtucker@openbsd.org -Date: Wed Nov 9 09:01:52 2022 +0000 +commit 4bcc737a35fdd9cc4af7423d6c23dfd0c7ef4786 +Author: Damien Miller +Date: Wed Jan 11 11:45:17 2023 +1100 - upstream: Remove errant colon and simplify format + remove buffer len workaround for NetBSD 4.x - string in error messages. Patch from vapier at chromium.org. + Switching to from pipes to a socketpair for communicating with the + ssh process avoids the (kernel bug?) problem. + +commit f5154d2aac3e6a32a1b13dec23a701a087850cdc +Author: Damien Miller +Date: Wed Jan 11 11:44:19 2023 +1100 + + add back use of pipes in scp.c under USE_PIPES - OpenBSD-Commit-ID: fc28466ebc7b74e0072331947a89bdd239c160d3 + This matches sftp.c which prefers socketpair but uses pipes on + some older platforms. -commit db2027a687516f87c3fb141e87154bb3d8a7807c -Author: djm@openbsd.org -Date: Wed Nov 9 01:37:44 2022 +0000 +commit eec737b59cf13841de46134967a206607000acd4 +Author: millert@openbsd.org +Date: Tue Jan 10 23:22:15 2023 +0000 - upstream: rename client_global_hostkeys_private_confirm() to + upstream: Switch scp from using pipes to a socketpair for - client_global_hostkeys_prove_confirm(), as it handles the - "hostkeys-prove00@openssh.com" message; no functional change + communication with it's ssh sub-processes. We no longer need to reserve two + descriptors to ensure that we don't end up using fd 0-2 unexpectedly, that is + handled by sanitise_stdfd() in main(). Based on an original diff from djm@. + OK deraadt@ djm@ - OpenBSD-Commit-ID: 31e09bd3cca6eed26855b88fb8beed18e9bd026d + OpenBSD-Commit-ID: b80c372faac462471e955ddeab9480d668a2e48d -commit 1c2be7c2004cf1abcd172fee9fe3eab57cd4c426 -Author: djm@openbsd.org -Date: Wed Nov 9 00:15:59 2022 +0000 +commit d213d126a4a343abd3a1eb13687d39c1891fe5c8 +Author: jmc@openbsd.org +Date: Fri Jan 6 08:44:11 2023 +0000 - upstream: typo in comment + upstream: tweak previous; ok djm - OpenBSD-Commit-ID: 39c58f41e0f32d1ff31731fa6f5bbbc3ad25084a + OpenBSD-Commit-ID: 229c493452766d70a78b0f02f6ff9894f9028858 -commit cf1a9852d7fc93e4abc4168aed09529a57427cdc -Author: Darren Tucker -Date: Wed Nov 9 09:23:47 2022 +1100 +commit 4a5590a5ee47b7dfd49773e9fdba48ad3089fe64 +Author: Damien Miller +Date: Mon Jan 9 16:33:56 2023 +1100 - Defer seed_rng until after closefrom call. + try to improve logging for dynamic-forward test - seed_rng will initialize OpenSSL, and some engine providers (eg Intel's - QAT) will open descriptors for their own use. bz#3483, patch from - joel.d.schuetze at intel.com, ok djm@ + previously the logs from the ssh used to exercise the forwarding + channel would clobber the logs from the ssh actually doing the + forwarding -commit dffa64480163fbf76af7e4fb62c26bb0dd6642aa +commit 715bc25dcfccf9fb2bee820155fe071d01a618db Author: Darren Tucker -Date: Wed Nov 9 08:27:47 2022 +1100 +Date: Sat Jan 7 23:24:50 2023 +1100 - Fix comment text. From emaste at freebsd.org. + Skip dynamic-forward test on minix3. + + This test relies on loopback addresses which minix does not have. + Previously the test would not run at all since it also doesn't have + netcat, but now we use our own netcat it tries and fails. -commit d9df5689c29823ab830ec4f54c83c6cc3c0077ad -Author: Pierre Ossman -Date: Wed Jul 6 13:52:10 2022 +0200 +commit dd1249bd5c45128a908395c61b26996a70f82205 +Author: Damien Miller +Date: Sun Jan 8 12:08:59 2023 +1100 - Avoid assuming layout of fd_set + don't test IPv6 addresses if platform lacks support + +commit d77fc611a62f2dfee0b654c31a50a814b13310dd +Author: dtucker@openbsd.org +Date: Fri Jan 6 12:33:33 2023 +0000 + + upstream: When OpenSSL is not available, skip parts of percent test - POSIX doesn't specify the internal layout of the fd_set object, so let's - not assume it is just a bit mask. This increases compatibility with - systems that have a different layout. + that require it. Based on github pr#368 from ren mingshuai. - The assumption is also worthless as we already refuse to use file - descriptors over FD_SETSIZE anyway. Meaning that the default size of - fd_set is quite sufficient. + OpenBSD-Regress-ID: 49a375b2cf61ccb95b52e75e2e025cd10988ebb2 -commit 419aa8a312e8d8f491933ca3d5933e602cb05aae +commit 1cd2aac312af9172f1b5cb06c2e1cd090abb83cf Author: Darren Tucker -Date: Tue Nov 8 12:42:52 2022 +1100 +Date: Sat Jan 7 23:01:11 2023 +1100 - Shutdown any VM before trying to check out repo. + Use our own netcat for dynamic-forward test. - In the case where the previous run did not clean up, the checkout will - fail as it'll leave a stale mount. + That way we can be surer about its behaviour rather than trying to + second-guess the behaviour of various netcat implementations. -commit a32c07cbb78f65d8527642b96474a83b413f8108 +commit 26cab41c05d7b0859d2a1ea5b6ed253d91848a80 Author: Darren Tucker -Date: Tue Nov 8 11:33:25 2022 +1100 +Date: Sat Jan 7 14:30:43 2023 +1100 - Run vm startup and shutdown from runner temp dir. + Use autoconf to find openssl binary. - Should work even if the github workspace dir is on a stale sshfs mount. + It's possible to install an OpenSSL in a path not in the system's + default library search path. OpenSSH can still use this (eg if you + specify an rpath) but the openssl binary there may not work. If one is + available on the system path just use that. -commit 2b40a7dfcdb8e616155b9504145aa52b271455aa +commit 5532e010a0eeb6aa264396514f9aed7948471538 Author: Darren Tucker -Date: Tue Nov 8 11:03:31 2022 +1100 +Date: Sat Jan 7 10:34:18 2023 +1100 - Add valrind-5 test here too. + Check openssl_bin path is executable before using. -commit 2ea03d1f6d0a05ee2b63ed2dc0f2d54f1e4655a1 +commit 5d7b16cff48598d5908db970bfdc9ff9326142c8 Author: Darren Tucker -Date: Tue Nov 8 09:21:10 2022 +1100 +Date: Fri Jan 6 23:19:07 2023 +1100 - Update checkout and upload actions. - - Update actions/checkout and actions/upload-artifact to main branch for - compatibility with node.js v16. - -commit 4e316ff0f18a118232bb9ac6512ee62773a9e8ea -Author: Darren Tucker -Date: Tue Nov 8 09:17:04 2022 +1100 - - Split out rekey test since it runs the longest. - -commit 21625a6424258a92a96a3bb73ae6aabc5ed8a6b4 -Author: dtucker@openbsd.org -Date: Mon Nov 7 10:09:28 2022 +0000 - - upstream: The IdentityFile option in ssh_config can also be used to - - specify a public key file, as documented in ssh.1 for the -i option. Document - this also for IdentityFile in ssh_config.5, for documentation completeness. - From laalsaas at systemli.org via portable github PR#352, ok jmc@ djm@ - - OpenBSD-Commit-ID: 2f943be9f96e60ef81a9a4faa25b009999f9883b - -commit 747691604d3325ed2b62bad85b6fd8563ad32f6c -Author: dtucker@openbsd.org -Date: Mon Nov 7 10:05:38 2022 +0000 - - upstream: Remove some set but otherwise unused variables, spotted - - in -portable by clang 16's -Wunused-but-set-variable. ok djm@ - - OpenBSD-Commit-ID: 3d943ddf2369b38fbf89f5f19728e7dc1daf3982 - -commit 1d78d25653805aefc7a8dd9d86cd7359ada3823c -Author: dtucker@openbsd.org -Date: Mon Nov 7 10:02:59 2022 +0000 - - upstream: Check for and disallow MaxStartups values less than or - - equal to zero during config parsing, rather than faling later at runtime. - bz#3489, ok djm@ - - OpenBSD-Commit-ID: d79c2b7a8601eb9be493629a91245d761154308b - -commit a00f59a645072e5f5a8d207af15916a7b23e2642 -Author: djm@openbsd.org -Date: Mon Nov 7 04:04:40 2022 +0000 - - upstream: fix parsing of hex cert expiry time; was checking whether the - - start time began with "0x", not the expiry time. - - from Ed Maste - - OpenBSD-Commit-ID: 6269242c3e1a130b47c92cfca4d661df15f05739 - -commit f58acaf8c7315483f4ac87d46a1aa2142a713cd8 -Author: Darren Tucker -Date: Mon Nov 7 15:10:59 2022 +1100 - - Fix merge conflict. - -commit 162e5741020a8d996c0c12b988b118e71ed728e6 -Author: Darren Tucker -Date: Mon Nov 7 15:04:33 2022 +1100 - - Branch-specific links for master status badges. - -commit e4b7c12ab24579312aa3ed38ce7041a439ec2d56 -Author: Darren Tucker -Date: Mon Nov 7 14:46:38 2022 +1100 - - Add CIFuzz status badge. - -commit b496b9f831acd1e5bcd875e26e797488beef494a -Author: Darren Tucker -Date: Mon Nov 7 14:45:16 2022 +1100 - - Do not run CIFuzz on selfhosted tree. - - We already run it on the regular tree, no need to double up. - -commit 2138b1c4ddb300129a41a5104627b0d561184c7b -Author: Darren Tucker -Date: Mon Nov 7 14:41:58 2022 +1100 - - Whitespace change to trigger CIFuzz workflow. - -commit 4670b97ef87c7b0f21283c9b07c7191be88dda05 -Author: Darren Tucker -Date: Mon Nov 7 14:34:04 2022 +1100 - - Run cifuzz workflow on the actions as regular CI. - -commit 79391e66ce851ace1baf3c6a35e83a23f08ec2ba -Author: David Korczynski -Date: Tue Nov 30 11:45:20 2021 +0000 - - Add CIFuzz integration - -commit c1893364a0be243270014d7d34362a8101d55112 -Author: dtucker@openbsd.org -Date: Mon Nov 7 02:21:22 2022 +0000 - - upstream: Import regenerated moduli. - - OpenBSD-Commit-ID: b0e54ee4d703bd6929bbc624068666a7a42ecb1f - -commit 5c3f18fb994ef27e685b205ee2351851b80fdbd1 -Author: dtucker@openbsd.org -Date: Mon Nov 7 01:53:01 2022 +0000 - - upstream: Fix typo. From pablomh via -portable github PR#344. - - OpenBSD-Commit-ID: d056ee2e73691dc3ecdb44a6de68e6b88cd93827 - -commit e1c6fcc142066417c9832e634463faa3dd5d116c -Author: Darren Tucker -Date: Mon Nov 7 12:46:58 2022 +1100 - - Link to branch-specific queries for V_9_1 status. - -commit 4f4a5fad6d8892c3f8ee9cd81ec7de6458210c9f -Author: Darren Tucker -Date: Sun Nov 6 10:55:59 2022 +1100 - - Use "prohibit-password" in -portable comments. - - "without-password" is the deprecated alias for "prohibit-password", - so we should reference the latter. From emaste at freebsd.org. - -commit 0f7e1eba55259ec037f515000b4c4afbf446230a -Author: Darren Tucker -Date: Sun Nov 6 10:50:01 2022 +1100 - - Fix tracing disable on FreeBSD. - - Some versions of FreeBSD do not support using id 0 to refer to the - current pid for procctl, so pass getpid() explicitly. From - emaste at freebsd.org. - -commit 32fddb982fd61b11a2f218a115975a87ab126d43 -Author: Darren Tucker -Date: Mon Nov 7 10:39:01 2022 +1100 - - Fix setres*id checks to work with clang-16. - - glibc has the prototypes for setresuid and setresgid behind _GNU_SOURCE, - and clang 16 will error out on implicit function definitions, so add - _GNU_SOURCE and the required headers to the configure checks. From - sam at @gentoo.org via bz#3497. - -commit 12af712d116f42164bcfa56db901d06e4fa27199 -Author: Sam James -Date: Sun Nov 6 04:52:38 2022 +0000 - - configure.ac: Fix -Wstrict-prototypes - - Clang 16 now warns on this and it'll be removed in C23, so let's - just be future proof. It also reduces noise when doing general - Clang 16 porting work (which is a big job as it is). github PR#355. - - Signed-off-by: Sam James - -commit 40b0a5eb6e3edfa2886b60c09c7803353b0cc7f5 -Author: Sam James -Date: Sun Nov 6 04:47:35 2022 +0000 - - configure.ac: Add include for openpty - - Another Clang 16ish fix (which makes -Wimplicit-function-declaration - an error by default). github PR#355. - - See: 2efd71da49b9cfeab7987058cf5919e473ff466b - See: be197635329feb839865fdc738e34e24afd1fca8 - -commit 6b17e128879ec6cc32ca2c28b5d894b4aa72e32d -Author: Rochdi Nassah -Date: Fri Oct 28 01:26:31 2022 +0100 - - Fix broken zlib link. - -commit 99500df246ccb736ddbdd04160dcc82165d81a77 -Author: Darren Tucker -Date: Fri Nov 4 16:59:26 2022 +1100 - - Don't run openbsd-compat tests on Cygwin. - - Add "compat-tests" to the default TEST_TARGET so we can override as - necessary. Override TEST_TARGET for Cygwin as the tests don't currently - compile there. - -commit 3cae9f92a31897409666aa1e6f696f779759332b -Author: djm@openbsd.org -Date: Thu Nov 3 21:59:20 2022 +0000 - - upstream: replace recently-added valid_domain() check for hostnames - - going to known_hosts with a more relaxed check for bad characters; previous - commit broke address literals. Reported by/feedback from florian@ - - OpenBSD-Commit-ID: 10b86dc6a4b206adaa0c11b58b6d5933898d43e0 - -commit 9655217231c9056200bea7ae2dffcc9c0c3eb265 -Author: Darren Tucker -Date: Thu Nov 3 23:07:50 2022 +1100 - - Rerun tests on changes to Makefile.in in any dir. - -commit 3500f0405a3ab16b59a26f3508c4257a3fc3bce6 -Author: Darren Tucker -Date: Thu Nov 3 23:04:08 2022 +1100 - - Link libssh into compat tests. - - The cygwin compat code uses xmalloc, so add libssh.a so pick up that. - -commit ec59effcf65b8a4c85d47ff5a271123259dd0ab8 -Author: Darren Tucker -Date: Thu Nov 3 21:44:23 2022 +1100 - - Fix compat regress to work with non-GNU make. - -commit 73550a218e7dfbbd599534cbf856309bc924f6fd -Author: Darren Tucker -Date: Thu Nov 3 13:41:16 2022 +1100 - - Increase selfhosted job timeout. - - The default job timeout of 360 (6h) is not enough to complete the - regress tests for some of the slow VMs depending on the load on the host. - Increase to 600 (10h). - -commit db97d8d0b90c6ce52b94b153d6f8f5f7d3b11777 -Author: Darren Tucker -Date: Thu Nov 3 10:00:43 2022 +1100 - - Only run opensslver tests if built with OpenSSL. - -commit ba053709638dff2f6603df0c1f340352261d63ea -Author: Darren Tucker -Date: Wed Nov 2 14:16:04 2022 +1100 - - Add tests for OpenSSL 3.0.7 and LibreSSL 3.6.1. - -commit edd24101c7e17d1a8f6576e1aaf62233b47ad6f5 -Author: Darren Tucker -Date: Thu Nov 3 08:17:39 2022 +1100 - - Run compat regress tests too. - -commit fe88d67e7599b0bc73f6e4524add28d743e7f977 -Author: Darren Tucker -Date: Thu Nov 3 08:14:05 2022 +1100 - - Compat tests need libcrypto. - - This was moved to CHANNELLIBS during the libs refactor. Spotted by - rapier at psc.edu. - -commit 96b519726b7944eee3c23a54eee3d5c031ba1533 -Author: Darren Tucker -Date: Thu Nov 3 04:24:39 2022 +1100 - - Include time.h when defining timegm. - - Fixes build on some platforms eg recent AIX. - -commit da6038bd5cd55eb212eb2aec1fc8ae79bbf76156 -Author: Darren Tucker -Date: Tue Nov 1 19:10:30 2022 +1100 - - Always use compat getentropy. - - Have it call native getentropy and fall back as required. Should fix - issues of platforms where libc has getentropy but it is not implemented - in the kernel. Based on github PR#354 from simsergey. - -commit 5ebe18cab6be3247b44c807ac145164010465b82 -Author: Darren Tucker -Date: Wed Nov 2 10:51:48 2022 +1100 - - Check for sockaddr_in.sin_len. - - If found, set SOCK_HAS_LEN which is used in addr.c. Should fix keyscan - tests on platforms with this (eg old NetBSD). - -commit a1febadf426536612c2734168d409147c392e7cf -Author: dtucker@openbsd.org -Date: Sun Oct 30 18:42:07 2022 +0000 - - upstream: Use variable for diff options - - instead of unconditionally specifying "-rN". This will make life easier - in -portable where not all diff's understand -N. - - OpenBSD-Regress-ID: 8b8a407115546be1c6d72d350b1e4f1f960d3cd3 - -commit f6d3ed9a8a9280cbb68d6a499850cfe810e92bd0 -Author: Darren Tucker -Date: Mon Oct 31 05:13:02 2022 +1100 - - OpenSSL dev branch is 302 not 320. - - While there, also accept 301 which it shat it was previously. - -commit 25c8a2bbcc10c493d27faea57c42a6bf13fa51f2 -Author: djm@openbsd.org -Date: Fri Oct 28 02:47:04 2022 +0000 - - upstream: put sshkey_check_rsa_length() back in sshkey.c to unbreak - - OPENSSL=no builds - - OpenBSD-Commit-ID: 99eec58abe382ecd14b14043b195ee1babb9cf6e - -commit 1192588546c29ceec10775125f396555ea71850f -Author: djm@openbsd.org -Date: Fri Oct 28 02:29:34 2022 +0000 - - upstream: allow ssh-keyscan(1) to accept CIDR address ranges, e.g. - - ssh-keyscan 192.168.0.0/24 - - If a CIDR range is passed, then it will be expanded to all possible - addresses in the range including the all-0s and all-1s addresses. - - bz#976 feedback/ok markus@ - - OpenBSD-Commit-ID: ce6c5211f936ac0053fd4a2ddb415277931e6c4b - -commit 64af4209309461c79c39eda2d13f9d77816c6398 -Author: Damien Miller -Date: Fri Oct 28 12:54:35 2022 +1100 - - fix merge botch - -commit 27267642699342412964aa785b98afd69d952c88 -Author: djm@openbsd.org -Date: Fri Oct 28 00:44:44 2022 +0000 - - upstream: refactor sshkey_private_deserialize - - feedback/ok markus@ - - OpenBSD-Commit-ID: f5ca6932fdaf840a5e8250becb38315a29b5fc9f - -commit 2519a7077a9332f70935e5242ba91ee670ed6b87 -Author: djm@openbsd.org -Date: Fri Oct 28 00:44:17 2022 +0000 - - upstream: refactor sshkey_private_serialize_opt() - - feedback/ok markus@ - - OpenBSD-Commit-ID: 61e0fe989897901294efe7c3b6d670cefaf44cbd - -commit 11a768adf98371fe4e43f3b06014024c033385d5 -Author: djm@openbsd.org -Date: Fri Oct 28 00:43:30 2022 +0000 - - upstream: refactor certify - - feedback/ok markus@ - - OpenBSD-Commit-ID: 35d742992e223eaca3537e6fb3d3002c08eed4f6 - -commit 3fbc58bb249d967cc43ebdc554f6781bb73d4a58 -Author: djm@openbsd.org -Date: Fri Oct 28 00:43:08 2022 +0000 - - upstream: refactor sshkey_sign() and sshkey_verify() - - feedback/ok markus@ - - OpenBSD-Commit-ID: 368e662c128c99d05cc043b1308d2b6c71a4d3cc - -commit a1deb6cdbbe6afaab74ecb08fcb62db5739267be -Author: djm@openbsd.org -Date: Fri Oct 28 00:41:52 2022 +0000 - - upstream: refactor sshkey_from_blob_internal() - - feedback/ok markus@ - - OpenBSD-Commit-ID: 1f46c0cbb8060ee9666a02749594ad6658c8e283 - -commit 7d00799c935271ce89300494c5677190779f6453 -Author: djm@openbsd.org -Date: Fri Oct 28 00:41:17 2022 +0000 - - upstream: refactor sshkey_from_private() - - feedback/ok markus@ - - OpenBSD-Commit-ID: e5dbe7a3545930c50f70ee75c867a1e08b382b53 - -commit 262647c2e920492ca57f1b9320d74f4a0f6e482b -Author: djm@openbsd.org -Date: Fri Oct 28 00:39:29 2022 +0000 - - upstream: factor out key generation - - feedback/ok markus@ - - OpenBSD-Commit-ID: 5b4211bff4de8d9adb84bc72857a8c42c44e7ceb - -commit 401c74e7dc15eab60540653d2f94d9306a927bab -Author: djm@openbsd.org -Date: Fri Oct 28 00:38:58 2022 +0000 - - upstream: refactor and simplify sshkey_read() - - feedback/ok markus@ - - OpenBSD-Commit-ID: 0d93b7a56e31cd06a8bb0d2191d084ce254b0971 - -commit 591fed94e66a016acf87f4b7cd416ce812f2abe8 -Author: djm@openbsd.org -Date: Fri Oct 28 00:37:24 2022 +0000 - - upstream: factor out public key serialization - - feedback/ok markus@ - - OpenBSD-Commit-ID: a3570c4b97290c5662890aea7328d87f55939033 - -commit 1e78844ae2b2dc01ba735d5ae740904c57e13685 -Author: djm@openbsd.org -Date: Fri Oct 28 00:36:31 2022 +0000 - - upstream: factor out sshkey_equal_public() - - feedback/ok markus@ - - OpenBSD-Commit-ID: 1368ba114cb37732fe6ec3d89c7e6d27ea6fdc94 - -commit 25de1c01a8b9a2c8ab9b1da22444a03e89c982de -Author: djm@openbsd.org -Date: Fri Oct 28 00:35:40 2022 +0000 - - upstream: begin big refactor of sshkey - - Move keytype data and some of the type-specific code (allocation, - cleanup, etc) out into each key type's implementation. Subsequent - commits will move more, with the goal of having each key-*.c file - owning as much of its keytype's implementation as possible. - - lots of feedback + ok markus@ - - OpenBSD-Commit-ID: 0f2b4334f73914344e9e5b3d33522d41762a57ec - -commit 445363433ba20b8a3e655b113858c836da46a1cb -Author: djm@openbsd.org -Date: Mon Oct 24 22:43:36 2022 +0000 - - upstream: Be more paranoid with host/domain names coming from the - - never write a name with bad characters to a known_hosts file. - - reported by David Leadbeater, ok deraadt@ - - OpenBSD-Commit-ID: ba9b25fa8b5490b49398471e0c9657b0cbc7a5ad - -commit 7190154de2c9fe135f0cc1ad349cb2fa45152b89 -Author: djm@openbsd.org -Date: Mon Oct 24 21:52:50 2022 +0000 - - upstream: regress test for unmatched glob characters; fails before - - previous commit but passes now. bz3488; prodded by dtucker@ - - OpenBSD-Regress-ID: 0cc5cc9ea4a6fd170dc61b9212f15badaafb3bbd - -commit a4821a592456c3add3cd325db433110cdaaa3e5c -Author: djm@openbsd.org -Date: Mon Oct 24 21:51:55 2022 +0000 - - upstream: when scp(1) is using the SFTP protocol for transport (the - - default), better match scp/rcp's handling of globs that don't match the - globbed characters but do match literally (e.g. trying to transfer - "foo.[1]"). - - Previously scp(1) in SFTP mode would not match these pathnames but - legacy scp/rcp mode would. - - Reported by Michael Yagliyan in bz3488; ok dtucker@ - - OpenBSD-Commit-ID: d8a3773f53015ba811fddba7473769a2fd343e11 - -commit 18376847b8043ba967eabbe23692ef74c9a3fddc -Author: jsg@openbsd.org -Date: Thu Oct 13 09:09:28 2022 +0000 - - upstream: use correct type with sizeof ok djm@ - - OpenBSD-Commit-ID: d6c882c2e8a42ff831a5b3cbc2c961ecb2dd6143 - -commit 4a4883664d6b4e9e4e459a8cdc16bd8d4b735de9 -Author: jmc@openbsd.org -Date: Fri Oct 7 06:00:58 2022 +0000 - - upstream: ssh-agent.1: - use Nm not Xr for self-ref - while here, - - wrap a long line - - ssh-agent.c: - - add -O to usage() - - OpenBSD-Commit-ID: 855dac4695cef22e96d69c53436496bc408ca389 - -commit 9fd2441113fce2a83fc7470968c3b27809cc7f10 -Author: djm@openbsd.org -Date: Fri Oct 7 04:06:26 2022 +0000 - - upstream: document "-O no-restrict-websafe"; spotted by Ross L - - Richardson - - OpenBSD-Commit-ID: fe9eaa50237693a14ebe5b5614bf32a02145fe8b - -commit 614252b05d70f798a0929b1cd3d213030ad4d007 -Author: Darren Tucker -Date: Tue Oct 18 06:29:16 2022 +1100 - - OpenSSL dev branch now identifies as 3.2.0. - -commit 195e5a65fd793a738ea8451ebfdd1919db5aff3e -Author: Damien Miller -Date: Mon Oct 17 09:41:47 2022 +1100 - - revert c64b62338b4 and guard POLL* defines instead - - c64b62338b4 broke OSX builds, which do have poll.h but lack ppoll(2) - Spotted by dtucker - -commit bc2e480d99613bd59720edae244d1764636544c4 -Author: Damien Miller -Date: Fri Oct 14 14:52:22 2022 +1100 - - undef _get{short,long} before redefining - -commit 5eb796a369c64f18d55a6ae9b1fa9b35eea237fb -Author: Harmen Stoppels -Date: Thu Oct 13 16:08:46 2022 +0200 - - Fix snprintf configure test for clang 15 - - Clang 15 -Wimplicit-int defaults to an error in C99 mode and above. - A handful of tests have "main(..." and not "int main(..." which caused - the tests to produce incorrect results. - -commit c64b62338b46ffa08839f05f21ad69fa6234dc17 -Author: Damien Miller -Date: Mon Oct 10 12:32:43 2022 +1100 - - skip bsd-poll.h if poll.h found; ok dtucker - -commit 5ee2b8ccfcf4b606f450eb0ff2305e311f68b0be -Author: djm@openbsd.org -Date: Thu Oct 6 22:42:37 2022 +0000 - - upstream: honour user's umask if it is more restrictive then the ssh - - default (022); based on patch from Alex Henrie, ok dtucker@ deraadt@ - - OpenBSD-Commit-ID: fe1b9e15fc9a4f49fc338e848ce14d8727abe82d - -commit a75cffc2700cebd3e2dd9093f7f7388d2be95cb7 -Author: Darren Tucker -Date: Fri Oct 7 03:54:56 2022 +1100 - - Add LibreSSL 3.6.0 to test suite. - - While there, bump OpenSSL to latest 1.1.1q release. - -commit fcc0f0c0e96a30076683fea9a7c9eedc72931742 -Author: Darren Tucker -Date: Thu Oct 6 21:18:16 2022 +1100 - - Add 9.1 branch to CI status page. - -commit ef211eee63821d894a8bf81f22bfba9f6899d0fe -Author: Darren Tucker -Date: Tue Oct 4 23:20:23 2022 +1100 - - Test commits to all branches of portable. - - Only test OpenBSD upstream on commits to master since that's what it - tracks. - -commit fe646de03cafb6593ff4e4954bca9ec4b4b753a8 -Author: Damien Miller -Date: Wed Oct 5 03:47:26 2022 +1100 - - whitespace at EOL - -commit a6e1852d10c63a830196e82168dadd957aaf28ec -Author: Damien Miller -Date: Wed Oct 5 03:40:01 2022 +1100 - - mention libfido2 autodetection - -commit 7360c2c206f33d309edbaf64036c96fadf74d640 -Author: Damien Miller -Date: Wed Oct 5 03:37:36 2022 +1100 - - remove mention of --with-security-key-builtin - - it is enabled by default when libfido2 is installed - -commit 0ffb46f2ee2ffcc4daf45ee679e484da8fcf338c -Author: Damien Miller -Date: Tue Oct 4 01:51:42 2022 +1100 - - update .depend - -commit 657e676ff696c7bb787bffb0e249ea1be3b474e1 -Author: Damien Miller -Date: Tue Oct 4 01:45:52 2022 +1100 - - update release notes URL - -commit f059da2b29840c0f048448809c317ce2ae014da7 -Author: Damien Miller -Date: Tue Oct 4 01:45:41 2022 +1100 - - crank versions in RPM spec files - -commit b51f3f172d87cbdb80ca4eb7b2149e56a7647557 -Author: djm@openbsd.org -Date: Mon Sep 26 22:18:40 2022 +0000 - - upstream: openssh-9.1 - - OpenBSD-Commit-ID: 5a467b2ee81da01a86adf1ad93b62b1728494e56 + Set OPENSSL_BIN from OpenSSL directory. -commit 4cf8d0c0f3030f594a238bab21a0695735515487 +commit 344a0e8240eaf08da5d46a5e3a9ecad6e4f64c35 Author: dtucker@openbsd.org -Date: Wed Sep 21 22:26:50 2022 +0000 - - upstream: Fix typo. From AlexanderStohr via github PR#343. - - OpenBSD-Commit-ID: a134c9b4039e48803fc6a87f955b0f4a03181497 - -commit 8179fed3264d5919899900ed8881d5f9bb57ca33 -Author: djm@openbsd.org -Date: Mon Sep 19 21:39:16 2022 +0000 - - upstream: add RequiredRSASize to the list of keywords accepted by - - -o; spotted by jmc@ - - OpenBSD-Commit-ID: fe871408cf6f9d3699afeda876f8adbac86a035e - -commit 5f954929e9f173dd1e279e07d0e8b14fa845814d -Author: Damien Miller -Date: Mon Sep 19 20:59:34 2022 +1000 - - no need for glob.h here - - it also causes portability problems - -commit 03d94a47207d58b3db37eba4f87eb6ae5a63168a -Author: Damien Miller -Date: Mon Sep 19 20:59:04 2022 +1000 - - avoid Wuninitialized false positive in gcc-12ish - -commit 9d952529113831fb3071ab6e408d2726fd72e771 -Author: djm@openbsd.org -Date: Mon Sep 19 10:46:00 2022 +0000 - - upstream: use users-groups-by-id@openssh.com sftp-server extension - - (when available) to fill in user/group names for directory listings. - Implement a client-side cache of see uid/gid=>user/group names. ok markus@ - - OpenBSD-Commit-ID: f239aeeadfa925a37ceee36ee8b256b8ccf4466e - -commit 8ff680368b0bccf88ae85d4c99de69387fbad7a6 -Author: djm@openbsd.org -Date: Mon Sep 19 10:43:12 2022 +0000 - - upstream: sftp client library support for - - users-groups-by-id@openssh.com; ok markus@ - - OpenBSD-Commit-ID: ddb2f33a2da6349a9a89a8b5bcb9ca7c999394de - -commit 488f6e1c582212c2374a4bf8cd1b703d2e70fb8b -Author: djm@openbsd.org -Date: Mon Sep 19 10:41:58 2022 +0000 - - upstream: extend sftp-common.c:extend ls_file() to support supplied - - user/group names; ok markus@ - - OpenBSD-Commit-ID: c70c70498b1fdcf158531117e405b6245863bfb0 - -commit 74b77f7497dba3a58315c8f308883de448078057 -Author: djm@openbsd.org -Date: Mon Sep 19 10:40:52 2022 +0000 - - upstream: sftp-server(8): add a "users-groups-by-id@openssh.com" - - extension request that allows the client to obtain user/group names that - correspond to a set of uids/gids. - - Will be used to make directory listings more useful and consistent - in sftp(1). - - ok markus@ - - OpenBSD-Commit-ID: 7ebabde0bcb95ef949c4840fe89e697e30df47d3 - -commit 231a346c0c67cc7ca098360f9a554fa7d4f1eddb -Author: djm@openbsd.org -Date: Mon Sep 19 08:49:50 2022 +0000 - - upstream: better debugging for connect_next() - - OpenBSD-Commit-ID: d16a307a0711499c971807f324484ed3a6036640 - -commit 1875042c52a3b950ae5963c9ca3774a4cc7f0380 -Author: djm@openbsd.org -Date: Sat Sep 17 10:34:29 2022 +0000 - - upstream: Add RequiredRSASize for sshd(8); RSA keys that fall - - beneath this limit will be ignored for user and host-based authentication. - - Feedback deraadt@ ok markus@ - - OpenBSD-Commit-ID: 187931dfc19d51873df5930a04f2d972adf1f7f1 - -commit 54b333d12e55e6560b328c737d514ff3511f1afd -Author: djm@openbsd.org -Date: Sat Sep 17 10:33:18 2022 +0000 +Date: Fri Jan 6 08:50:33 2023 +0000 - upstream: add a RequiredRSASize for checking RSA key length in - - ssh(1). User authentication keys that fall beneath this limit will be - ignored. If a host presents a host key beneath this limit then the connection - will be terminated (unfortunately there are no fallbacks in the protocol for - host authentication). - - feedback deraadt, Dmitry Belyavskiy; ok markus@ + upstream: Save debug logs from ssh for debugging purposes. - OpenBSD-Commit-ID: 430e339b2a79fa9ecc63f2837b06fdd88a7da13a + OpenBSD-Regress-ID: 109e40b06de1c006a3b8e0d8745b790b2c5870a0 -commit 07d8771bacfefbcfb37fa8a6dc6103bcc097e0ab +commit e1ef172646f7f49c80807eea90225ef5e0be55a8 Author: djm@openbsd.org -Date: Sat Sep 17 10:30:45 2022 +0000 +Date: Fri Jan 6 08:07:39 2023 +0000 - upstream: Add a sshkey_check_rsa_length() call for checking the - - length of an RSA key; ok markus@ + upstream: regression test for ChannelTimeout - OpenBSD-Commit-ID: de77cd5b11594297eda82edc594b0d32b8535134 + OpenBSD-Regress-ID: 280bfbefcfa415428ad744e43f69a8dede8ad685 -commit 3991a0cf947cf3ae0f0373bcec5a90e86a7152f5 +commit 2393ea8daf25853459eb07a528d7577688847777 Author: djm@openbsd.org -Date: Sat Sep 17 10:11:29 2022 +0000 +Date: Fri Jan 6 07:18:18 2023 +0000 - upstream: actually hook up restrict_websafe; the command-line flag - - was never actually used. Spotted by Matthew Garrett + upstream: fix typo in verbose logging - OpenBSD-Commit-ID: 0b363518ac4c2819dbaa3dfad4028633ab9cdff1 + OpenBSD-Regress-ID: 0497cdb66e003b2f50ed77291a9104fba2e017e9 -commit 30b2a7e4291fb9e357f80a237931ff008d686d3b +commit 161a5378a3cc2e7aa3f9674cb7f4686ae6ce9586 Author: djm@openbsd.org -Date: Fri Sep 16 06:55:37 2022 +0000 +Date: Fri Jan 6 02:59:50 2023 +0000 - upstream: correct error value + upstream: unit tests for misc.c:ptimeout_* API - OpenBSD-Commit-ID: 780efcbad76281f11f14b2a5ff04eb6db3dfdad4 + OpenBSD-Regress-ID: 01f8fb12d08e5aaadd4bd4e71f456b6588be9a94 -commit ac1ec9545947d9f9657259f55d04cb49d3a94c8a -Author: djm@openbsd.org -Date: Fri Sep 16 03:33:14 2022 +0000 +commit 018d671d78145f03d6f07ae9d64d51321da70325 +Author: tb@openbsd.org +Date: Wed Jan 4 22:48:57 2023 +0000 - upstream: sftp: Be a bit more clever about completions - - There are commands (e.g. "get" or "put") that accept two - arguments, a local path and a remote path. However, the way - current completion is written doesn't take this distinction into - account and always completes remote or local paths. + upstream: Copy bytes from the_banana[] rather than banana() - By expanding CMD struct and "cmds" array this distinction can be - reflected and with small adjustment to completer code the correct - path can be completed. + Fixes test failure due to segfault seen on arm64 with xonly snap. - By Michal Privoznik, ok dtucker@ + ok djm - OpenBSD-Commit-ID: 1396d921c4eb1befd531f5c4a8ab47e7a74b610b + OpenBSD-Regress-ID: 86e2aa4bbd1dff1bc4ebb2969c0d6474485be046 -commit 590db83384f9d99fc51c84505792d26d1ef60df9 -Author: djm@openbsd.org -Date: Fri Sep 16 03:13:34 2022 +0000 +commit ab6bb69e251faa8b24f81b25c72ec0120f20cad4 +Author: Damien Miller +Date: Fri Jan 6 19:13:36 2023 +1100 - upstream: sftp: Don't attempt to complete arguments for - - non-existent commands + unbreak scp on NetBSD 4.x - If user entered a non-existent command (e.g. because they made a - typo) there is no point in trying to complete its arguments. Skip - calling complete_match() if that's the case. + e555d5cad5 effectively increased the default copy buffer size for SFTP + transfers. This caused NetBSD 4.x to hang during the "copy local file to + remote file in place" scp.sh regression test. - From Michal Privoznik + This puts back the original 32KB copy buffer size until we can properly + figure out why. - OpenBSD-Commit-ID: cf39c811a68cde2aeb98fc85addea4000ef6b07a + lots of debugging assistance from dtucker@ -commit ff9809fdfd1d9a91067bb14a77d176002edb153c +commit 2d1ff2b9431393ad99ef496d5e3b9dd0d4f5ac8c Author: djm@openbsd.org -Date: Wed Sep 14 00:14:37 2022 +0000 +Date: Fri Jan 6 02:47:18 2023 +0000 - upstream: sk_enroll: never drop SSH_SK_USER_VERIFICATION_REQD flag + upstream: Implement channel inactivity timeouts - from response + This adds a sshd_config ChannelTimeouts directive that allows channels that + have not seen traffic in a configurable interval to be automatically closed. + Different timeouts may be applied to session, X11, agent and TCP forwarding + channels. - Now that all FIDO signing calls attempt first without PIN and then - fall back to trying PIN only if that attempt fails, we can remove the - hack^wtrick that removed the UV flag from the keys returned during - enroll. + Note: this only affects channels over an opened SSH connection and not + the connection itself. Most clients close the connection when their channels + go away, with a notable exception being ssh(1) in multiplexing mode. - By Corinna Vinschen + ok markus dtucker - OpenBSD-Commit-ID: 684517608c8491503bf80cd175425f0178d91d7f + OpenBSD-Commit-ID: ae8bba3ed9d9f95ff2e2dc8dcadfa36b48e6c0b8 -commit 940dc10729cb5a95b7ee82c10184e2b9621c8a1d +commit 0e34348d0bc0b1522f75d6212a53d6d1d1367980 Author: djm@openbsd.org -Date: Wed Sep 14 00:13:13 2022 +0000 +Date: Fri Jan 6 02:42:34 2023 +0000 - upstream: a little extra debugging + upstream: Add channel_set_xtype() - OpenBSD-Commit-ID: edf1601c1d0905f6da4c713f4d9cecc7d1c0295a + This sets an "extended" channel type after channel creation (e.g. + "session:subsystem:sftp") that will be used for setting channel inactivity + timeouts. + + ok markus dtucker + + OpenBSD-Commit-ID: 42564aa92345045b4a74300528f960416a15d4ca -commit 4b5f91cb959358141181b934156513fcb8a6c1e3 +commit ceedf09b2977f3a756c759a6e7eb8f8e9db86a18 Author: djm@openbsd.org -Date: Wed Sep 14 00:02:03 2022 +0000 +Date: Fri Jan 6 02:41:49 2023 +0000 - upstream: ssh-agent: attempt FIDO key signing without PIN and use + upstream: tweak channel ctype names - the error to determine whether a PIN is required and prompt only if - necessary. from Corinna Vinschen + These are now used by sshd_config:ChannelTimeouts to specify timeouts by + channel type, so force them all to use a similar format without whitespace. - OpenBSD-Commit-ID: dd6be6a0b7148608e834ee737c3479b3270b00dd + ok dtucker markus + + OpenBSD-Commit-ID: 66834765bb4ae14f96d2bb981ac98a7dae361b65 -commit 113523bf0bc33600b07ebb083572c8c346b6fdf4 -Author: jmc@openbsd.org -Date: Sun Sep 11 06:38:11 2022 +0000 +commit c60438158ad4b2f83d8504257aba1be7d0b0bb4b +Author: djm@openbsd.org +Date: Fri Jan 6 02:39:59 2023 +0000 - upstream: .Li -> .Vt where appropriate; from josiah frentsos, + upstream: Add channel_force_close() - tweaked by schwarze + This will forcibly close an open channel by simulating read/write errors, + draining the IO buffers and calling the detach function. - ok schwarze + Previously the detach function was only ever called during channel garbage + collection, but there was no way to signal the user of a channel (e.g. + session.c) that its channel was being closed deliberately (vs. by the + usual state-machine logic). So this adds an extra "force" argument to the + channel cleanup callback to indicate this condition. - OpenBSD-Commit-ID: 565046e3ce68b46c2f440a93d67c2a92726de8ed - -commit 86af013b56cecb5ee58ae0bd9d495cd586fc5918 -Author: jsg@openbsd.org -Date: Sat Sep 10 08:50:53 2022 +0000 - - upstream: fix repeated words ok miod@ jmc@ + ok markus dtucker - OpenBSD-Commit-ID: 6765daefe26a6b648cc15cadbbe337596af709b7 + OpenBSD-Commit-ID: 23052707a42bdc62fda2508636e624afd466324b -commit 0ba39b93b326a7d5dfab776cc9b9d326161a9b16 +commit d478cdc7ad6edd4b1bcd1e86fb2f23194ff33d5a Author: djm@openbsd.org -Date: Fri Sep 9 03:31:42 2022 +0000 +Date: Fri Jan 6 02:38:23 2023 +0000 - upstream: notifier_complete(NULL, ...) is a noop, so no need to test + upstream: replace manual poll/ppoll timeout math with ptimeout API - that ctx!=NULL; from Corinna Vinschen + feedback markus / ok markus dtucker - OpenBSD-Commit-ID: ade2f2e9cc519d01a586800c25621d910bce384a + OpenBSD-Commit-ID: c5ec4f2d52684cdb788cd9cbc1bcf89464014be2 -commit be197635329feb839865fdc738e34e24afd1fca8 -Author: Sam James -Date: Thu Sep 8 02:49:29 2022 +0100 +commit 4adf3817a24efe99b06e62630577d683c7cd8065 +Author: djm@openbsd.org +Date: Fri Jan 6 02:37:04 2023 +0000 - openbsd-compat/bsd-asprintf: add include for vsnprintf + upstream: add ptimeout API for keeping track of poll/ppoll - Fixes the following build failure with Clang 15 on musl: - ``` - bsd-asprintf.c:51:8: error: call to undeclared library function 'vsnprintf' with type 'int (char *, unsigned long, const char *, struct __va_list_tag *)'; ISO C99 and laterclang -O2 -pipe -fdiagnostics-color=always -frecord-gcc-switches -pipe -Wunknown-warning-option -Qunused-arguments -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -Wmisleading-indentation -Wbitwise-instead-of-logical -fno-strict-aliasing -mretpoline -ftrapv -fzero-call-used-regs=all -fno-builtin-memset -fstack-protector-strong -fPIE -I. -I. -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -DSSHDIR=\"/etc/ssh\" -D_PATH_SSH_PROGRAM=\"/usr/bin/ssh\" -D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/lib/misc/ssh-askpass\" -D_PATH_SFTP_SERVER=\"/usr/lib/misc/sftp-server\" -D_PATH_SSH_KEY_SIGN=\"/usr/lib/misc/ssh-keysign\" -D_PATH_SSH_PKCS11_HELPER=\"/usr/lib/misc/ssh-pkcs11-helper\" -D_PATH_SSH_SK_HELPER=\"/usr/lib/misc/ssh-sk-helper\" -D_PATH_SSH_PIDDIR=\"/run\" -D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DHAVE_CONFIG_H -c cipher-aes.c -o cipher-aes.o - do not support - implicit function declarations [-Wimplicit-function-declaration] - ret = vsnprintf(string, INIT_SZ, fmt, ap2); - ^ - bsd-asprintf.c:51:8: note: include the header or explicitly provide a declaration for 'vsnprintf' - 1 error generated. - ``` - -commit 6cb6f660bb35f77a0456dd2581ddf39c29398a5e -Author: Darren Tucker -Date: Fri Sep 2 16:43:27 2022 +1000 - - Remove DEF_WEAK, it's already in defines.h. - -commit ce39e7d8b70c4726defde5d3bc4cb7d40d131153 -Author: Darren Tucker -Date: Fri Sep 2 14:28:14 2022 +1000 - - Resync arc4random with OpenBSD. + timeouts; ok dtucker markus - This brings us up to current, including djm's random-reseeding change, - as prompted by logan at cyberstorm.mu in bz#3467. It brings the - platform-specific hooks from LibreSSL Portable, simplified to match our - use case. ok djm@. + OpenBSD-Commit-ID: 3335268ca135b3ec15a947547d7cfbb8ff929ead -commit beaddde26f30e2195b8aa4f3193970e140e17305 -Author: Darren Tucker -Date: Fri Sep 2 14:20:04 2022 +1000 +commit 8c7c69d32375d2f3ce9da0109c9bffc560842316 +Author: djm@openbsd.org +Date: Thu Jan 5 05:49:13 2023 +0000 - Move OPENBSD ORIGINAL marker. + upstream: suppress "Connection closed" message when in quiet mode - Putting this after the copyright statement (which doesn't change) - instead of before the version identifier (which does) prevents merge - conflicts when resyncing changes. + OpenBSD-Commit-ID: 8a3ab7176764da55f60bfacfeae9b82d84e3908f -commit c83e467ead67a8cb48ef4bec8085d6fb880a2ff4 -Author: Darren Tucker -Date: Fri Sep 2 14:17:28 2022 +1000 +commit 845ceecea2ac311b0c267f9ecbd34862e1876fc6 +Author: djm@openbsd.org +Date: Mon Jan 2 07:03:57 2023 +0000 - Remove arc4random_uniform from arc4random.c + upstream: regression test for PermitRemoteOpen - This was previously moved into its own file (matching OpenBSD) which - prematurely committed in commit 73541f2. + OpenBSD-Regress-ID: 8271aafbf5c21950cd5bf966f08e585cebfe630c -commit 5f45c2395c60865e59fa44152ff1d003a128c5bc +commit b3daa8dc582348d6ab8150bc1e571b7aa08c5388 Author: djm@openbsd.org -Date: Fri Sep 2 04:20:02 2022 +0000 +Date: Mon Jan 2 07:03:30 2023 +0000 - upstream: sk-usbhid: fix key_lookup() on tokens with built-in UV + upstream: fix bug in PermitRemoteOpen which caused it to ignore its - explicitly test whether the token performs built-in UV (e.g. biometric - tokens) and enable UV in that case. From Pedro Martelletto via GHPR#388 + first argument unless it was one of the special keywords "any" or "none". - OpenBSD-Commit-ID: 007eb7e387d27cf3029ab06b88224e03eca62ccd - -commit 03277a4aa49b80af541a3e691f264c0c0d8f9cec -Author: Darren Tucker -Date: Wed Aug 31 20:26:30 2022 +1000 - - Move sftp from valgrind-2 to 3 to rebalance. - -commit fcf5365da69c516817321ba89c3a91df98d098df -Author: djm@openbsd.org -Date: Wed Aug 31 02:56:40 2022 +0000 - - upstream: whitespace + Reported by Georges Chaudy in bz3515; ok dtucker@ - OpenBSD-Commit-ID: c2bcbf93610d3d62ed206cdf9bf9ff98c6aaf232 - -commit e60136a3d7a223dd8e84ba8a6895bc3142360993 -Author: Damien Miller -Date: Mon Aug 29 13:27:45 2022 +1000 - - additional keys + OpenBSD-Commit-ID: c5678a39f1ff79993d5ae3cfac5746a4ae148ea5 -commit 2b02dcb505288c462d1b5dd1ac04e603d01340eb -Author: Damien Miller -Date: Mon Aug 29 13:23:43 2022 +1000 +commit 0872663a7be0301bcc3d49acdbc9b740a3d972d4 +Author: jmc@openbsd.org +Date: Mon Dec 26 19:16:03 2022 +0000 - cross-sign allowed_signers with PGP key + upstream: spelling fixes; from paul tagliamonte amendments to his - Provides continuity of trust from legacy PGP release key to - the SSHSIG signing keys that we will use henceforth for git - signing. + diff are noted on tech + + OpenBSD-Commit-ID: d776dd03d0b882ca9c83b84f6b384f6f9bd7de4a -commit 51b345f177ae981b8755f6bdf8358b1cc5e83d67 -Author: Darren Tucker -Date: Sat Aug 27 21:49:27 2022 +1000 +commit 797da2812a71785b34890bb6eb44767a7d09cd34 +Author: djm@openbsd.org +Date: Fri Dec 16 07:13:22 2022 +0000 - Add libcrypt-devel to cygwin-release deps. + upstream: Mention that scp uses the SFTP protocol and remove - Based on feedback from vinschen at redhat.com. + reference to legacy flag. Spotted by, feedback and ok jmc@ + + OpenBSD-Commit-ID: 9dfe04966f52e941966b46c7a2972147f95281b3 -commit 9f81736cf16dd8dda1c8942f1973a5f80b8cd78c -Author: Darren Tucker -Date: Sat Aug 27 09:37:40 2022 +1000 +commit 93f2ce8c050a7a2a628646c00b40b9b53fef93ef +Author: djm@openbsd.org +Date: Fri Dec 16 06:56:47 2022 +0000 - Add Windows 2022 test targets. + upstream: Clear signal mask early in main(); sshd may have been + + started with one or more signals masked (sigprocmask(2) is not cleared + on fork/exec) and this could interfere with various things, e.g. the + login grace timer. + + Execution environments that fail to clear the signal mask before running + sshd are clearly broken, but apparently they do exist. + + Reported by Sreedhar Balasubramanian; ok dtucker@ + + OpenBSD-Commit-ID: 77078c0b1c53c780269fc0c416f121d05e3010ae -commit 85e1a69243f12be8520438ad6a3cfdc0b7fcbb2d -Author: Darren Tucker -Date: Fri Aug 26 16:26:06 2022 +1000 +commit 4acfaabfae41badb9d334a2ee88c5c6ad041c0d5 +Author: jmc@openbsd.org +Date: Fri Dec 16 06:52:48 2022 +0000 - Add cygwin-release test target. + upstream: add -X to usage(); - This also moves the cygwin package install from the workflow file to - setup_ci.sh so that we can install different sets of Cygwin packages - for different test configs. + OpenBSD-Commit-ID: 1bdc3df7de11d766587b0428318336dbffe4a9d0 -commit 92382dbe8bf9ea1225b16858f9b9b208c15c7e8d +commit e555d5cad5afae7d5ef2bbc02ca591178fe16fed Author: djm@openbsd.org -Date: Fri Aug 26 08:16:27 2022 +0000 +Date: Fri Dec 16 03:40:03 2022 +0000 - upstream: whitespace + upstream: add a -X option to both scp(1) and sftp(1) to allow - OpenBSD-Commit-ID: a5d015efbfd228dc598ffdef612d2da3a579e5d8 + control over some SFTP protocol knobs: the copy buffer length and + the number of inflight requests, both of which are used during + upload/download. + + Previously these could be controlled in sftp(1) using the -b/-R options. + This makes them available in both SFTP protocol clients using the same + option character sequence. + + ok dtucker@ + + OpenBSD-Commit-ID: 27502bffc589776f5da1f31df8cb51abe9a15f1c -commit 70a5de0a50e84d7250eb4e4537f765599f64c4af -Author: djm@openbsd.org -Date: Fri Aug 26 08:12:56 2022 +0000 +commit 5a7a7acab2f466dc1d7467b5d05d35268c3137aa +Author: deraadt@openbsd.org +Date: Thu Dec 15 18:20:39 2022 +0000 - upstream: whitespace + upstream: The idiomatic way of coping with signed char vs unsigned - OpenBSD-Commit-ID: d297e4387935d4aef091c5e9432578c2e513f538 + char (which did not come from stdio read functions) in the presence of + ctype macros, is to always cast to (unsigned char). casting to (int) + for a "macro" which is documented to take int, is weird. And sadly wrong, + because of the sing extension risk.. same diff from florian + + OpenBSD-Commit-ID: 65b9a49a68e22ff3a0ebd593f363e9f22dd73fea -commit 3a683a19fd116ea15ebf8aa13d02646cceb302a9 -Author: Damien Miller -Date: Fri Aug 26 14:23:55 2022 +1000 +commit b0b58222c7cc62efd8212c4fb65a545f58ebb22d +Author: Darren Tucker +Date: Mon Dec 19 18:49:51 2022 +1100 - initial list of allowed signers + Simply handling of SSH_CONNECTION PAM env var. + + Prompted by bz#3508: there's no need to cache the value of + sshpam_conninfo so remove the global. While there, add check of + return value from pam_putenv. ok djm@ -commit 6851f4b8c3fc1b3e1114c56106e4dc31369c8513 +commit ed8444572ae684fdb892f97bae342c6cb6456f04 Author: Darren Tucker -Date: Fri Aug 19 17:22:18 2022 +1000 +Date: Mon Dec 19 18:42:34 2022 +1100 - Install Cygwin packages based on OS not config. + Add tests for LibreSSL 3.7.0 and OpenSSL 1.1.1s. -commit f96480906893ed93665df8cdf9065865c51c1475 -Author: djm@openbsd.org -Date: Fri Aug 19 06:07:47 2022 +0000 +commit abb9a8aaddfcacbd12641f6e4f203da0fa85a287 +Author: Darren Tucker +Date: Sun Dec 18 21:36:25 2022 +1100 - upstream: attemp FIDO key signing without PIN and use the error - - code returned to fall back only if necessary. Avoids PIN prompts for FIDO - tokens that don't require them; part of GHPR#302 - - OpenBSD-Commit-ID: 4f752aaf9f2e7c28bcaaf3d4f8fc290131bd038e + Use sudo when resetting perms on directories. -commit 5453333b5d28e313284cb9aae82899704103f98d -Author: djm@openbsd.org -Date: Fri Aug 19 05:53:28 2022 +0000 +commit 2f5664c5908d84697cbe91302d5d5c4d83cb2121 +Author: Darren Tucker +Date: Sun Dec 18 21:19:33 2022 +1100 - upstream: remove incorrect check that can break enrolling a - - resident key (introduced in r1.40) + Set group perms on regress dir. - OpenBSD-Commit-ID: 4cab364d518470e29e624af3d3f9ffa9c92b6f01 + This ensures that the tests don't fail due to StrictMode checks. -commit ff89b1bed80721295555bd083b173247a9c0484e -Author: dtucker@openbsd.org -Date: Fri Aug 19 04:02:46 2022 +0000 +commit 137196300fc1540affadde880210f02ba6cb4abf +Author: Darren Tucker +Date: Sun Dec 18 21:13:42 2022 +1100 - upstream: Strictly enforce the maximum allowed SSH2 banner size in - - ssh-keyscan and prevent a one-byte buffer overflow. Patch from Qualys, ok - djm@ - - OpenBSD-Commit-ID: 6ae664f9f4db6e8a0589425f74cd0bbf3aeef4e4 + Fetch regress logs from obj dir. -commit 1b470b9036639cef4f32fb303bb35ea0b711178d +commit 5f93c4836527d9fda05de8944a1c7b4a205080c7 Author: Darren Tucker -Date: Fri Aug 19 15:18:09 2022 +1000 +Date: Tue Dec 13 20:59:54 2022 +1100 - Fix cygwin conditional steps. + obsdsnap test VMs runs-on libvirt too. -commit fd6ee741ab16714b7035d60aca924123ba28135a +commit 8386886fb1ab7fda73069fb0db1dbe0e5a52f758 Author: Darren Tucker -Date: Fri Aug 19 15:12:57 2022 +1000 +Date: Tue Dec 13 20:55:37 2022 +1100 - Add a bit more debug output. + Run upstream obsdsnap tests on ephemeral runners. -commit a9305c4c739f4d91a3d3a92c0b6d4949404a36c5 +commit b6e01459b55ece85d7f296b2bc719d1841e1009e Author: Darren Tucker -Date: Fri Aug 12 15:08:47 2022 +1000 +Date: Tue Dec 13 20:48:56 2022 +1100 - Add Cygwin (on windows-2019) test target. - - In addition to installing the requisite Cygwin packages, we also need to - explicitly invoke "sh" for steps that run other scripts since the runner - environment doesn't understand #! paths. + Move obsdsnap test VMs to ephemeral runners. -commit 5062ad48814b06162511c4f5924a33d97b6b2566 -Author: djm@openbsd.org -Date: Fri Aug 19 03:06:30 2022 +0000 +commit ea6fdf9a1aa71a411f7db218a986392c4fb55693 +Author: Damien Miller +Date: Fri Dec 9 18:00:21 2022 +1100 - upstream: double free() in error path; from Eusgor via GHPR333 + use calloc for allocating arc4random structs - OpenBSD-Commit-ID: 39f35e16ba878c8d02b4d01d8826d9b321be26d4 + ok dtucker -commit 5a5c580b48fc6006bdfa731fc2f6d4945c2c0e4e -Author: Darren Tucker -Date: Thu Aug 18 21:36:39 2022 +1000 +commit 4403b62f5548e91389cb3339d26a9d0c4bb07b34 +Author: dtucker@openbsd.org +Date: Fri Dec 9 00:22:29 2022 +0000 - Check for perms to run agent-getpeereid test. + upstream: Warn if no host keys for hostbased auth can be loaded. - Ubuntu 22.04 defaults to private home dirs which prevents "nobody" - running ssh-add during the agent-getpeereid test. Check for this and - add the necessary permissions. + OpenBSD-Commit-ID: 2a0a13132000cf8d3593133c1b49768aa3c95977 -commit cd06a76b7ccc706e2bb4f1cc4aa9e9796a28a812 -Author: Damien Miller -Date: Wed Aug 17 16:04:16 2022 +1000 +commit a6183e25e3f1842e21999fe88bc40bb99b121dc3 +Author: dtucker@openbsd.org +Date: Fri Dec 9 00:17:40 2022 +0000 - on Cygwin, prefer WinHello FIDO device + upstream: Add server debugging for hostbased auth. - If no FIDO device was explictly specified, then prefer the - windows://hello FIDO device. An exception to this is when - probing resident FIDO keys, in which case hardware FIDO - devices are preferred. + auth_debug_add queues messages about the auth process which is sent to + the client after successful authentication. This also sends those to + the server debug log to aid in debugging. From bz#3507, ok djm@ + + OpenBSD-Commit-ID: 46ff67518cccf9caf47e06393e2a121ee5aa258a -commit 47f72f534ac5cc2cd3027675a3df7b00a8f77575 -Author: djm@openbsd.org -Date: Wed Aug 17 06:01:57 2022 +0000 +commit b85c3581c16aaf6e83b9a797c80705a56b1f312e +Author: cheloha@openbsd.org +Date: Sun Dec 4 23:50:49 2022 +0000 - upstream: add an extra flag to sk_probe() to indicate whether we're + upstream: remove '?' from getopt(3) loops - probing for a FIDO resident key or not. Unused here, but will make like - easier for portable + userspace: remove vestigial '?' cases from top-level getopt(3) loops - OpenBSD-Commit-ID: 432c8ff70e270378df9dbceb9bdeaa5b43b5a832 + getopt(3) returns '?' when it encounters a flag not present in the in + the optstring or if a flag is missing its option argument. We can + handle this case with the "default" failure case with no loss of + legibility. Hence, remove all the redundant "case '?':" lines. + + Prompted by dlg@. With help from dlg@ and millert@. + + Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2 + + ok naddy@ millert@ dlg@ + + OpenBSD-Commit-ID: b2f89346538ce4f5b33ab8011a23e0626a67e66e -commit edb0bcb3c79b16031dc87a8e57aecc3c4a3414f0 -Author: jmc@openbsd.org -Date: Tue Aug 16 20:24:08 2022 +0000 +commit 9a067e8d28a2249fd73f004961e30c113ee85e5d +Author: dtucker@openbsd.org +Date: Wed Dec 7 11:45:43 2022 +0000 - upstream: use .Cm for "sign"; from josiah frentsos + upstream: Fix comment typo. - OpenBSD-Commit-ID: 7f80a53d54857ac6ae49ea6ad93c5bd12231d1e4 + OpenBSD-Regress-ID: 3b04faced6511bb5e74648c6a4ef4bf2c4decf03 -commit cccb011e130cbbac538b1689d10e4a067298df8b -Author: Corinna Vinschen -Date: Thu Aug 11 20:19:35 2022 +0200 +commit ce3c3e78ce45d68a82c7c8dc89895f297a67f225 +Author: Darren Tucker +Date: Wed Dec 7 18:58:25 2022 +1100 - Revert "check_sk_options: add temporary WinHello workaround" + Add SANDBOX_DEBUG to the kitchensink test build. + +commit bc234605fa3eb10f56bf0d74c8ecb0d91ada9d05 +Author: Damien Miller +Date: Wed Dec 7 18:38:25 2022 +1100 + + disable SANDBOX_SECCOMP_FILTER_DEBUG - Cygwin now comes with libfido2 1.11.0, so this workaround - isn't required anymore. + It was mistakenly enabled in 2580916e4872 - This reverts commit 242c044ab111a37aad3b0775727c36a4c5f0102c. + Reported by Peter sec-openssh-com.22.fichtner AT 0sg.net + +commit b087c5cfa011b27992e01589314fec830266f99d +Author: Rose <83477269+AtariDreams@users.noreply.github.com> +Date: Tue Nov 29 15:12:54 2022 -0500 + + Update autotools - Signed-off-by: Corinna Vinschen + Regenerate config files using latest autotools -commit 9468cd7cf9d989dfa2ac20e2a0268ba6e93bfa5a -Author: Corinna Vinschen -Date: Thu Aug 11 20:18:17 2022 +0200 +commit d63f5494978a185c7421d492b9c2f6f05bb54138 +Author: Darren Tucker +Date: Tue Dec 6 12:22:36 2022 +1100 - fido_dev_is_winhello: return 0, not "false" + Fix typo in comment. Spotted by tim@ + +commit 73dcca12115aa12ed0d123b914d473c384e52651 +Author: dtucker@openbsd.org +Date: Sun Dec 4 11:03:11 2022 +0000 + + upstream: Remove duplicate includes. - "false" is not used anywhere in OpenSSH, so return 0 like - everywhere else. + Patch from AtariDreams via github PR#364. - Signed-off-by: Corinna Vinschen + OpenBSD-Commit-ID: b9186638a05cb8b56ef7c0de521922b6723644ea -commit 730a80609472ee0451c99482d75c9c41f3ebc42d +commit 3cec15543010bc8d6997d896b1717a650afb7e92 Author: djm@openbsd.org -Date: Fri Aug 12 05:20:28 2022 +0000 +Date: Fri Dec 2 04:40:27 2022 +0000 - upstream: sftp-server: support home-directory request - - Add support to the sftp-server for the home-directory extension defined - in draft-ietf-secsh-filexfer-extensions-00. This overlaps a bit with the - existing expand-path@openssh.com, but uses a more official protocol name, - and so is a bit more likely to be implemented by non-OpenSSH clients. + upstream: make struct sshbuf private - From Mike Frysinger, ok dtucker@ + and remove an unused field; ok dtucker - OpenBSD-Commit-ID: bfc580d05cc0c817831ae7ecbac4a481c23566ab + OpenBSD-Commit-ID: c7a3d77c0b8c153d463398606a8d57569186a0c3 -commit 5e820bf79ce3ce99ef7e98b0ab642b0a0a4f396c +commit 5796bf8ca9535f9fa7d01829a540d2550e05c860 Author: Darren Tucker -Date: Fri Aug 12 14:56:55 2022 +1000 +Date: Fri Dec 2 11:43:36 2022 +1100 - Replace deprecated ubuntu-18.04 runners with 22.04 + Restore ssh-agent permissions on exit. + + ...enough that subsequent builds can overwrite ssh-agent if necessary. -commit 87b0d9c1b789d3ff958ec45df2ac912e24461bae -Author: Darren Tucker -Date: Thu Aug 11 22:48:23 2022 +1000 +commit ccf5a13868cbb4659107458cac1e017c98abcbda +Author: dtucker@openbsd.org +Date: Thu Dec 1 02:22:13 2022 +0000 - Add a timegm implementation from Heimdal via Samba. + upstream: Clean up ssh-add and ssh-agent logs. - Fixes build on (at least Solaris 10). + OpenBSD-Regress-ID: 9eda8e4c3714d7f943ab2e73ed58a233bd29cd2c -commit d0c4fa58594577994921b593f10037c5282597ca -Author: Darren Tucker -Date: Thu Aug 11 14:23:58 2022 +1000 +commit 7a8b40cf6a5eda80173140cc6750a6db8412fa87 +Author: dtucker@openbsd.org +Date: Thu Dec 1 02:19:29 2022 +0000 - Rerun tests if any .github config file changes. + upstream: Log output of ssh-agent and ssh-add + + This should make debugging easier. + + OpenBSD-Regress-ID: 5974b02651f428d7e1079b41304c498ca7e306c8 -commit 113fe6c77ab43769fc61e953d07cb619fd7ea54b -Author: Darren Tucker -Date: Thu Aug 11 13:33:51 2022 +1000 +commit 4a1805d532616233dd6072e5cd273b96dd3062e6 +Author: dtucker@openbsd.org +Date: Tue Nov 29 22:41:14 2022 +0000 - Skip hostbased during Valgrind tests. - - Valgrind doesn't let ssh exec ssh-keysign (because it's setuid) so skip - it during the Valgrind based tests. + upstream: Add void to client_repledge args to fix compiler warning. ok djm@ - See https://bugs.kde.org/show_bug.cgi?id=119404 for a discussion of this - (ironically there the problematic binary was ssh(1) back when it could - still be setuid). + OpenBSD-Commit-ID: 7e964a641ce4a0a0a11f047953b29929d7a4b866 -commit b98a42afb69d60891eb0488935990df6ee571c4d +commit 815c4704930aa449edf6e812e99d69e9ffd31f01 Author: djm@openbsd.org -Date: Thu Aug 11 01:57:50 2022 +0000 +Date: Mon Nov 28 01:38:22 2022 +0000 - upstream: add some tests for parse_absolute_time(), including cases + upstream: tighten pledge(2) after session establishment - where it is forced to the UTC timezone. bz3468 ok dtucker + feedback, ok & testing in snaps deraadt@ - OpenBSD-Regress-ID: ea07ca31c2f3847a38df028ca632763ae44e8759 + OpenBSD-Commit-ID: aecf4d49d28586dfbcc74328d9333398fef9eb58 -commit ec1ddb72a146fd66d18df9cd423517453a5d8044 +commit f7cebbbf407d772ed71403d314343766782fe540 Author: djm@openbsd.org -Date: Thu Aug 11 01:56:51 2022 +0000 +Date: Mon Nov 28 01:37:36 2022 +0000 - upstream: allow certificate validity intervals, sshsig verification + upstream: New EnableEscapeCommandline ssh_config(5) option - times and authorized_keys expiry-time options to accept dates in the UTC time - zone in addition to the default of interpreting them in the system time zone. - YYYYMMDD and YYMMDDHHMM[SS] dates/times will be interpreted as UTC if - suffixed with a 'Z' character. + This option (default "no") controls whether the ~C escape is available. + Turning it off by default means we will soon be able to use a stricter + default pledge(2) in the client. - Also allow certificate validity intervals to be specified in raw - seconds-since-epoch as hex value, e.g. -V 0x1234:0x4567890. This - is intended for use by regress tests and other tools that call - ssh-keygen as part of a CA workflow. + feedback deraadt@ dtucker@; tested in snaps for a while - bz3468 ok dtucker + OpenBSD-Commit-ID: 7e277595d60acb8263118dcb66554472257b387a + +commit d323f7ecf52e3d4ec1f4939bf31693e02f891dca +Author: mbuhl@openbsd.org +Date: Fri Nov 18 19:47:40 2022 +0000 + + upstream: In channel_request_remote_forwarding the parameters for - OpenBSD-Commit-ID: 454db1cdffa9fa346aea5211223a2ce0588dfe13 + permission_set_add are leaked as they are also duplicated in the call. Found + by CodeChecker. ok djm + + OpenBSD-Commit-ID: 4aef50fa9be7c0b138188814c8fe3dccc196f61e -commit 4df246ec75751da7eb925e1880498300d8bda187 +commit 62cc33e6eed847aafdc29e34aa69e9bd82a0ee16 Author: Darren Tucker -Date: Thu Aug 11 10:23:55 2022 +1000 +Date: Wed Nov 30 11:23:11 2022 +1100 - Fix conditional for running hostbased tests. + Use -fzero-call-used-regs=used on clang 15. + + clang 15 seems to have a problem with -fzero-call-used-reg=all which + causes spurious "incorrect signature" failures with ED25519. On those + versions, use -fzero-call-used-regs=used instead. (We may add exceptions + later if specific versions prove to be OK). Also move the GCC version + check to match. + + Initial investigation by Daniel Pouzzner (douzzer at mega nu), workaround + suggested by Bill Wendling (morbo at google com). bz#3475, ok djm@ -commit 2580916e48721802220c61ce9e0df1297c00bc07 -Author: Damien Miller -Date: Thu Aug 11 08:58:28 2022 +1000 +commit f84b9cffd52c9c5c359a54a1929f9948e803ab1d +Author: Darren Tucker +Date: Mon Nov 28 21:09:28 2022 +1100 - fix SANDBOX_SECCOMP_FILTER_DEBUG + Skip unit tests on slow riscv64 hardware. -commit fdbd5bf507fc271ff813714fab8a72ff2c6cb5ca +commit 9f2747e0bed3faca92679eae69aef10c95dc82f5 Author: Darren Tucker -Date: Wed Aug 10 17:35:52 2022 +1000 +Date: Sun Nov 27 15:26:22 2022 +1100 - Test hostbased auth on github runners. + Rework how selfhosted tests interact with runners. + + Previously there was one runner per test target (mostly VMs). This had + a few limitations: + - multiple tests that ran on the same target (eg multiple build + configs) were serialized on availability or that runner. + - it needed manual balancing of VMs over host machines. + + To address this, make VMs that use ephemeral disks (ie most of them) + all use a pool of runners with the "libvirt" label. This requires that + we distinguish between "host" and "target" for those. Native runners + and VMs with persistent disks (eg the constantly-updated snapshot ones) + specify the same host and target. + + This should improve test throughput. -commit 7e2f51940ba48a1c0fae1107801ea643fa83c971 +commit d664ddaec87bdc7385be8ef7f1337793e1679d48 Author: Darren Tucker -Date: Wed Aug 10 17:25:24 2022 +1000 +Date: Sun Nov 27 12:19:37 2022 +1100 - Rename our getentropy to prevent possible loops. + Run vmstartup from temp dir. - Since arc4random seeds from getentropy, and we use OpenSSL for that - if enabled, there's the possibility that if we build on a system that - does not have getentropy then run on a system that does have it, then - OpenSSL could end up calling our getentropy and getting stuck in a loop. - Pointed out by deraadt@, ok djm@ + This will allow us to create ephemeral disk images per-runner. -commit 7a01f61be8d0aca0e975e7417f26371495fe7674 +commit 0fa16e952b1fc1c4cf65e3dd138b0e87003e2e45 Author: Darren Tucker -Date: Mon Aug 8 12:17:04 2022 +1000 +Date: Sun Nov 27 12:14:00 2022 +1100 - Actually put HAVE_STDINT_H around the stdint.h. + Make "config" in matrix singular and pass in env. + + This will allow the startup scripts to adapt their behaviour based on + the type and config. -commit 73541f29f0b50480da6c20dceb7a7191bd8ea7d3 +commit e8857043af54809187be1e8b06749db61112899f Author: Darren Tucker -Date: Mon Aug 8 10:30:34 2022 +1000 +Date: Sun Nov 27 11:42:22 2022 +1100 - Give unused param a name. - - Fixes builds on platforms that do have fido2 but don't have - fido_dev_is_winhello. + Add "libvirt" label to dfly30. -commit 2a108c0ea960381bd9b14ee0d84e818a23df4482 -Author: djm@openbsd.org -Date: Fri Aug 5 05:01:40 2022 +0000 +commit 9775473d84902dc37753686cd10ae71fbe67efda +Author: Darren Tucker +Date: Sun Nov 27 09:28:20 2022 +1100 - upstream: don't prompt for FIDO passphrase before attempting to enroll - - the credential, just let the enroll operating fail and we'll attempt to get a - PIN anyway. Might avoid some unneccessary PIN prompts. - - Part of GHPR#302 from Corinna Vinschen; ok dtucker@ + Rename "os" in matrix to "target". - OpenBSD-Commit-ID: bd5342ffc353ee37d39617906867c305564d1ce2 + This is in preparation to distinguish this from the host that the runner + runs on in case where they are separate (eg VMs). -commit 2886975c0ad9244e60dc5e4be34fde3aa573a4b5 -Author: Corinna Vinschen -Date: Fri Feb 11 14:33:41 2022 +0100 +commit 04fd00ceff39f4544ced6f5342060abe584835d0 +Author: Darren Tucker +Date: Sun Nov 27 09:23:04 2022 +1100 - sk_sign: set FIDO2 uv attribute explicitely for WinHello - - WinHello via libfido2 performs user verification by default. - However, if we stick to that, there's no way to differentiate - between keys created with or without "-O verify-required". - Set FIDO2 uv attribute explicitely to FIDO_OPT_FALSE, then check - if user verification has been requested. - - Signed-off-by: Corinna Vinschen + Remove unused self-hosted test targets. -commit 242c044ab111a37aad3b0775727c36a4c5f0102c -Author: Corinna Vinschen -Date: Tue Feb 15 11:28:08 2022 +0100 +commit c9d9fcad2a11c1cd1550a541f44091d65f0b5584 +Author: Darren Tucker +Date: Sun Nov 27 09:16:15 2022 +1100 - check_sk_options: add temporary WinHello workaround - - Up to libfido 1.10.0, WinHello advertises "clientPin" rather - than "uv" capability. This is fixed in 1.11.0. For the time - being, workaround it here. + Remove explicit "default" test config argument. - Signed-off-by: Corinna Vinschen + Not specifying the test config implicitly selects default args. -commit 78774c08cc4b4997382975b0f414a86e06b6780c -Author: Corinna Vinschen -Date: Thu Feb 10 18:19:29 2022 +0100 +commit 15a01cf15f396f87c6d221c5a6af98331c818962 +Author: Darren Tucker +Date: Wed Nov 23 13:18:54 2022 +1100 - compat code for fido_dev_is_winhello() - - Signed-off-by: Corinna Vinschen + Add fallback for old platforms w/out MAP_ANON. -commit 3d3a932a019aedfb891e0779bb4990cd5008a390 +commit 6b9bbbfe8b26db6e9a30a7e08c223e85421aed98 Author: Darren Tucker -Date: Fri Aug 5 13:12:27 2022 +1000 +Date: Wed Nov 23 13:09:11 2022 +1100 - Factor out getrnd() and rename to getentropy(). + If we haven't found it yet, recheck for sys/stat.h. - Factor out the arc4random seeding into its own file and change the - interface to match getentropy. Use native getentropy if available. - This will make it easier to resync OpenBSD changes to arc4random. - Prompted by bz#3467, ok djm@. + On some very old platforms, sys/stat.h needs sys/types.h, however + autoconf 2.71's AC_CHECK_INCLUDES_DEFAULT checks for them in the + opposite order, which in combination with modern autoconf's + "present but cannot be compiled" behaviour causes it to not be + detected. -commit 9385d277b787403be9dfcb229cf372202496d2f3 +commit 8926956f22639132a9f2433fcd25224e01b900f5 Author: Darren Tucker -Date: Thu Aug 4 18:55:48 2022 +1000 +Date: Fri Nov 11 11:25:37 2022 +1100 - Include CHANNEL and FIDO2 libs in configure output + Add dfly62 test target. -commit 141535b904b6fba01724444f38193a8599201f82 -Author: djm@openbsd.org -Date: Mon Aug 1 11:09:26 2022 +0000 +commit 650de7ecd3567b5a5dbf16dd1eb598bd8c20bca8 +Author: dtucker@openbsd.org +Date: Thu Nov 10 23:03:10 2022 +0000 - upstream: avoid double-free in error path introduced in r1.70; report + upstream: Handle dynamic remote port forwarding in escape commandline's - and fix based on GHPR#332 by v-rzh ok dtucker@ + -R processing. bz#3499, ok djm@ - OpenBSD-Commit-ID: 3d21aa127b1f37cfc5bdc21461db369a663a951f + OpenBSD-Commit-ID: 194ee4cfe7ed0e2b8ad0727f493c798a50454208 -commit dba7099ffcba3ca07b3946f017ba6a4c3158d9b1 +commit 5372db7e7985ba2c00f20fdff8942145ca99e033 Author: Darren Tucker -Date: Wed Jul 27 18:40:12 2022 +1000 +Date: Thu Nov 10 12:44:51 2022 +1100 - Remove deprecated MacOS 10.15 runners. + Remove seed passing over reexec. + + This was added for the benefit of platforms using ssh-rand-helper to + prevent a delay on each connection as sshd reseeded itself. + + ssh-random-helper is long gone, and since the re-exec happens before the + chroot the re-execed sshd can reseed itself normally. ok djm@ -commit 722a56439aa5972c830e4a9a724cf52aff4a950a +commit ca98d3f8c64cfc51af81e1b01c36a919d5947ec2 Author: Darren Tucker -Date: Wed Jul 27 18:31:14 2022 +1000 +Date: Wed Nov 9 20:59:20 2022 +1100 - Move stale-configure check as early as possible. + Skip reexec test on OpenSSL 1.1.1 specifically. - We added a check in Makefile to catch the case where configure needs to - be rebuilt, however this did not happen until a build was attempted in - which case all of the work done by configure was wasted. Move this check - to the start of configure to catch it as early as possible. ok djm@ + OpenSSL 1.1.1 has a bug in its RNG that breaks reexec fallback, so skip + that test. See bz#3483 for details. -commit 099d6b56288b421ba38531d26dc1bd6bb685e311 -Author: Darren Tucker -Date: Fri Jul 22 10:47:19 2022 +1000 +commit 5ec4ebc2548e5f7f1b55b2a5cef5b67bdca8146f +Author: dtucker@openbsd.org +Date: Wed Nov 9 09:04:12 2022 +0000 - Move libcrypto into CHANNELLIBS. + upstream: Fix typo in fatal error message. - This will result in sftp, sftp-server and scp no longer being linked - against libcrypto. ok djm@ + Patch from vapier at chromium.org. + + OpenBSD-Commit-ID: 8a0c164a6a25eef0eedfc30df95bfa27644e35cf -commit 1bdf86725b77733bb5f17c54888b88a10b2f6538 -Author: Darren Tucker -Date: Fri Jul 22 10:45:47 2022 +1000 +commit e6abafe9a6d809422d3432b95b3f9747b0acaa71 +Author: dtucker@openbsd.org +Date: Wed Nov 9 09:01:52 2022 +0000 - Remove seed_rng calls from scp, sftp, sftp-server. + upstream: Remove errant colon and simplify format - These binaries don't use OpenSSL's random functions. The next step - will be to stop linking them against libcrypto. ok djm@ + string in error messages. Patch from vapier at chromium.org. + + OpenBSD-Commit-ID: fc28466ebc7b74e0072331947a89bdd239c160d3 -commit d73f77b8cb9b422f1ac4facee7890aa10ff2bc21 -Author: Darren Tucker -Date: Fri Jul 22 09:51:51 2022 +1000 +commit db2027a687516f87c3fb141e87154bb3d8a7807c +Author: djm@openbsd.org +Date: Wed Nov 9 01:37:44 2022 +0000 - Group libcrypto and PRNGD checks together. + upstream: rename client_global_hostkeys_private_confirm() to - They're related more than the libcrypt or libiaf checks which are - currently between them. ok djm@ + client_global_hostkeys_prove_confirm(), as it handles the + "hostkeys-prove00@openssh.com" message; no functional change + + OpenBSD-Commit-ID: 31e09bd3cca6eed26855b88fb8beed18e9bd026d -commit f117e372b3f42f2fbdb0a578d063b2609ab58e1f -Author: Darren Tucker -Date: Fri Jul 22 09:24:45 2022 +1000 +commit 1c2be7c2004cf1abcd172fee9fe3eab57cd4c426 +Author: djm@openbsd.org +Date: Wed Nov 9 00:15:59 2022 +0000 - Do not link scp, sftp and sftp-server w/ zlib. + upstream: typo in comment - Some of our binaries (eg sftp, sftp-server, scp) do not interact with - the channels code and thus do use libraries such as zlib and libcrypto - although they are linked with them. This adds a CHANNELLIBS and starts - by moving zlib into it, which means the aformentioned binaries are no - longer linked against zlib. ok djm@ + OpenBSD-Commit-ID: 39c58f41e0f32d1ff31731fa6f5bbbc3ad25084a -commit 800c2483e68db38bd1566ff69677124be974aceb +commit cf1a9852d7fc93e4abc4168aed09529a57427cdc Author: Darren Tucker -Date: Mon Jul 25 21:49:04 2022 +1000 +Date: Wed Nov 9 09:23:47 2022 +1100 - Remove workarounds for OpenSSL missing AES-CTR. + Defer seed_rng until after closefrom call. - We have some compatibility hacks that were added to support OpenSSL - versions that do not support AES CTR mode. Since that time, however, - the minimum OpenSSL version that we support has moved to 1.0.1 which - *does* have CTR, so this is no longer needed. ok djm@ + seed_rng will initialize OpenSSL, and some engine providers (eg Intel's + QAT) will open descriptors for their own use. bz#3483, patch from + joel.d.schuetze at intel.com, ok djm@ -commit b7c56b65c12f51fe0dbae798d19c8f58224a5d95 +commit dffa64480163fbf76af7e4fb62c26bb0dd6642aa Author: Darren Tucker -Date: Mon Jul 25 21:43:00 2022 +1000 +Date: Wed Nov 9 08:27:47 2022 +1100 - Remove workarounds for OpenSSL missing AES-GCM. - - We have some compatibility hacks that were added to support OpenSSL - versions that do not support AES GCM mode. Since that time, however, - the minimum OpenSSL version that we support has moved to 1.0.1 which - *does* have GCM, so this is no longer needed. ok djm@ + Fix comment text. From emaste at freebsd.org. -commit 5a4a9f7a968fbf92cc1eac519c65638e79ae9f1f -Author: dtucker@openbsd.org -Date: Mon Jul 25 07:12:45 2022 +0000 +commit d9df5689c29823ab830ec4f54c83c6cc3c0077ad +Author: Pierre Ossman +Date: Wed Jul 6 13:52:10 2022 +0200 - upstream: Restore missing "!" in TEST_SSH_ELAPSED_TIMES test. + Avoid assuming layout of fd_set - OpenBSD-Regress-ID: 38783f9676ec348c5a792caecee9a16e354b37b0 + POSIX doesn't specify the internal layout of the fd_set object, so let's + not assume it is just a bit mask. This increases compatibility with + systems that have a different layout. + + The assumption is also worthless as we already refuse to use file + descriptors over FD_SETSIZE anyway. Meaning that the default size of + fd_set is quite sufficient. -commit 0ff886be132299386cc29d87c2aa16ff68a1aa08 -Author: dtucker@openbsd.org -Date: Sun Jul 24 23:29:10 2022 +0000 +commit 419aa8a312e8d8f491933ca3d5933e602cb05aae +Author: Darren Tucker +Date: Tue Nov 8 12:42:52 2022 +1100 - upstream: Test TEST_SSH_ELAPSED_TIMES for empty string not - - executable. No-op on most platforms but should prevent warnings in -portable - on systems that don't have 'date %s'. + Shutdown any VM before trying to check out repo. - OpenBSD-Regress-ID: e39d79867b8065e33d0c5926fa1a31f85659d2a4 + In the case where the previous run did not clean up, the checkout will + fail as it'll leave a stale mount. -commit f69319ad8ad1dd50f90bbcf5912e11cc8ed3e037 +commit a32c07cbb78f65d8527642b96474a83b413f8108 Author: Darren Tucker -Date: Sat Jul 23 14:38:22 2022 +1000 +Date: Tue Nov 8 11:33:25 2022 +1100 - Convert "have_prog" function into "which". + Run vm startup and shutdown from runner temp dir. - "which" and its behaviour is not standardized, so convert the existing - have_prog function into "which" so we can rely on it being available - and what its semantics are. Add a have_prog wrapper that maintains the - existing behaviour. + Should work even if the github workspace dir is on a stale sshfs mount. -commit ea7ecc2c3ae39fdf5c6ad97b7bc0b47a98847f43 +commit 2b40a7dfcdb8e616155b9504145aa52b271455aa Author: Darren Tucker -Date: Sat Jul 23 14:36:38 2022 +1000 +Date: Tue Nov 8 11:03:31 2022 +1100 - Skip scp3 test if there's no scp on remote path. + Add valrind-5 test here too. + +commit 2ea03d1f6d0a05ee2b63ed2dc0f2d54f1e4655a1 +Author: Darren Tucker +Date: Tue Nov 8 09:21:10 2022 +1100 + + Update checkout and upload actions. - scp -3 ends up using the scp that's in the remote path and will fail if - one is not available. Based on a patch from rapier at psc.edu. + Update actions/checkout and actions/upload-artifact to main branch for + compatibility with node.js v16. -commit c46f6fed419167c1671e4227459e108036c760f8 -Author: Damien Miller -Date: Wed Jul 20 13:39:14 2022 +1000 +commit 4e316ff0f18a118232bb9ac6512ee62773a9e8ea +Author: Darren Tucker +Date: Tue Nov 8 09:17:04 2022 +1100 - crank SSH_SK_VERSION_MAJOR in sk-dummy.so + Split out rekey test since it runs the longest. -commit f208e3b9ffb5ee76cf9c95df7ff967adc7f51c7d -Author: djm@openbsd.org -Date: Wed Jul 20 03:33:22 2022 +0000 +commit 21625a6424258a92a96a3bb73ae6aabc5ed8a6b4 +Author: dtucker@openbsd.org +Date: Mon Nov 7 10:09:28 2022 +0000 - upstream: ssh-keygen: fix touch prompt, pin retries; + upstream: The IdentityFile option in ssh_config can also be used to - part of GHPR329 from Pedro Martelletto + specify a public key file, as documented in ssh.1 for the -i option. Document + this also for IdentityFile in ssh_config.5, for documentation completeness. + From laalsaas at systemli.org via portable github PR#352, ok jmc@ djm@ - OpenBSD-Commit-ID: 75d1005bd2ef8f29fa834c90d2684e73556fffe8 + OpenBSD-Commit-ID: 2f943be9f96e60ef81a9a4faa25b009999f9883b -commit 8638a2ce7e90c8a51d9af3143404282126c524f8 -Author: djm@openbsd.org -Date: Wed Jul 20 03:31:42 2022 +0000 +commit 747691604d3325ed2b62bad85b6fd8563ad32f6c +Author: dtucker@openbsd.org +Date: Mon Nov 7 10:05:38 2022 +0000 - upstream: sk-usbhid: preserve error code returned by key_lookup() + upstream: Remove some set but otherwise unused variables, spotted - it conveys useful information, such as the supplied pin being wrong. + in -portable by clang 16's -Wunused-but-set-variable. ok djm@ - Part of GHPR329 from Pedro Martelletto + OpenBSD-Commit-ID: 3d943ddf2369b38fbf89f5f19728e7dc1daf3982 + +commit 1d78d25653805aefc7a8dd9d86cd7359ada3823c +Author: dtucker@openbsd.org +Date: Mon Nov 7 10:02:59 2022 +0000 + + upstream: Check for and disallow MaxStartups values less than or - OpenBSD-Commit-ID: c0647eb9290f793add363d81378439b273756c1b + equal to zero during config parsing, rather than faling later at runtime. + bz#3489, ok djm@ + + OpenBSD-Commit-ID: d79c2b7a8601eb9be493629a91245d761154308b -commit 9ab929ca2d820520327b41929372bcb9e261534c +commit a00f59a645072e5f5a8d207af15916a7b23e2642 Author: djm@openbsd.org -Date: Wed Jul 20 03:29:14 2022 +0000 +Date: Mon Nov 7 04:04:40 2022 +0000 - upstream: when enrolling a resident key on a security token, check - - if a credential with matching application and user ID strings already exists. - if so, prompt the user for confirmation before overwriting the credential. + upstream: fix parsing of hex cert expiry time; was checking whether the - patch from Pedro Martelletto via GHPR329 + start time began with "0x", not the expiry time. - NB. cranks SSH_SK_VERSION_MAJOR, so any third-party FIDO middleware - implementations will need to adjust + from Ed Maste - OpenBSD-Commit-ID: e45e9f1bf2b2f32d9850669e7a8dbd64acc5fca4 + OpenBSD-Commit-ID: 6269242c3e1a130b47c92cfca4d661df15f05739 -commit 5bcfc788b38d5b64e4c347bdc04bd9a01bbc36da -Author: djm@openbsd.org -Date: Wed Jul 20 03:13:04 2022 +0000 +commit f58acaf8c7315483f4ac87d46a1aa2142a713cd8 +Author: Darren Tucker +Date: Mon Nov 7 15:10:59 2022 +1100 - upstream: pull passphrase reading and confirmation into a separate - - function so it can be used for FIDO2 PINs; no functional change - - OpenBSD-Commit-ID: bf34f76b8283cc1d3f54633e0d4f13613d87bb2f + Fix merge conflict. -commit eb679e2959bdb15454eb94751930eb4c9110da94 +commit 162e5741020a8d996c0c12b988b118e71ed728e6 Author: Darren Tucker -Date: Fri Jul 15 21:31:48 2022 +1000 +Date: Mon Nov 7 15:04:33 2022 +1100 - Move vmshutdown to first step. - - If a previous run on a physical runner has failed to clean up, the next - run will fail because it'll try to check out the code to a broken - directory mount. Make cleanup the first step. + Branch-specific links for master status badges. -commit 46b91b70ff3cb9c147e2875ef5dc609fd64c0c96 +commit e4b7c12ab24579312aa3ed38ce7041a439ec2d56 Author: Darren Tucker -Date: Fri Jul 15 20:25:27 2022 +1000 +Date: Mon Nov 7 14:46:38 2022 +1100 - Rename bbone test target to ARM. + Add CIFuzz status badge. -commit 751d22cdeffed9fe921db78eedc32a29f9e80510 +commit b496b9f831acd1e5bcd875e26e797488beef494a Author: Darren Tucker -Date: Fri Jul 15 13:37:29 2022 +1000 +Date: Mon Nov 7 14:45:16 2022 +1100 - Add AUDIT_ARCH_PPC to supported seccomp arches. + Do not run CIFuzz on selfhosted tree. - Patch from dries.deschout at dodeco.eu. + We already run it on the regular tree, no need to double up. -commit a061792a6e8d235fc40a9b5d4c22a1762bb75a7b +commit 2138b1c4ddb300129a41a5104627b0d561184c7b Author: Darren Tucker -Date: Thu Jul 14 19:20:24 2022 +1000 +Date: Mon Nov 7 14:41:58 2022 +1100 - Remove unintended changes. - - I inadvertently included a couple of local changes with the OpenSSL - 3.0.4 change. Revert, anything that should be there will be committed - separately. + Whitespace change to trigger CIFuzz workflow. -commit 527cb43fa1b4e55df661feabbac51b8e608b6519 +commit 4670b97ef87c7b0f21283c9b07c7191be88dda05 Author: Darren Tucker -Date: Thu Jul 14 11:22:08 2022 +1000 +Date: Mon Nov 7 14:34:04 2022 +1100 - Return ERANGE from getcwd() if buffer size is 1. + Run cifuzz workflow on the actions as regular CI. + +commit 79391e66ce851ace1baf3c6a35e83a23f08ec2ba +Author: David Korczynski +Date: Tue Nov 30 11:45:20 2021 +0000 + + Add CIFuzz integration + +commit c1893364a0be243270014d7d34362a8101d55112 +Author: dtucker@openbsd.org +Date: Mon Nov 7 02:21:22 2022 +0000 + + upstream: Import regenerated moduli. - If getcwd() is supplied a buffer size of exactly 1 and a path of "/", it - could result in a nul byte being written out of array bounds. POSIX says - it should return ERANGE if the path will not fit in the available buffer - (with terminating nul). 1 byte cannot fit any possible path with its nul, - so immediately return ERANGE in that case. + OpenBSD-Commit-ID: b0e54ee4d703bd6929bbc624068666a7a42ecb1f + +commit 5c3f18fb994ef27e685b205ee2351851b80fdbd1 +Author: dtucker@openbsd.org +Date: Mon Nov 7 01:53:01 2022 +0000 + + upstream: Fix typo. From pablomh via -portable github PR#344. - OpenSSH never uses getcwd() with this buffer size, and all current - (and even quite old) platforms that we are currently known to work - on have a native getcwd() so this code is not used on those anyway. - Reported by Qualys, ok djm@ + OpenBSD-Commit-ID: d056ee2e73691dc3ecdb44a6de68e6b88cd93827 -commit 36857fefd8849c4b0e877cfd9d1eb22f79b76650 +commit e1c6fcc142066417c9832e634463faa3dd5d116c Author: Darren Tucker -Date: Thu Jul 14 10:02:35 2022 +1000 +Date: Mon Nov 7 12:46:58 2022 +1100 - Split README.platform into its own line. + Link to branch-specific queries for V_9_1 status. + +commit 4f4a5fad6d8892c3f8ee9cd81ec7de6458210c9f +Author: Darren Tucker +Date: Sun Nov 6 10:55:59 2022 +1100 + + Use "prohibit-password" in -portable comments. - README.platform has general platform-specific information, having it - following text about FIDO2 on the same line could imply that it only - has information about FIDO2. + "without-password" is the deprecated alias for "prohibit-password", + so we should reference the latter. From emaste at freebsd.org. -commit 00a496c6c14f2d41f2a9365714d494dd5f3aac9f +commit 0f7e1eba55259ec037f515000b4c4afbf446230a Author: Darren Tucker -Date: Thu Jul 14 09:56:01 2022 +1000 +Date: Sun Nov 6 10:50:01 2022 +1100 - Clarify README.md text. + Fix tracing disable on FreeBSD. - Clarify the text about the implications of building without OpenSSL, and - prefix the "configure --help" example command with a "./" so it's likely - to work as-is in more shells. From bz#3461. + Some versions of FreeBSD do not support using id 0 to refer to the + current pid for procctl, so pass getpid() explicitly. From + emaste at freebsd.org. -commit f40b52f21fbc52eb513279168a49d3285c65256c +commit 32fddb982fd61b11a2f218a115975a87ab126d43 Author: Darren Tucker -Date: Tue Jul 12 19:48:44 2022 +1000 +Date: Mon Nov 7 10:39:01 2022 +1100 - Remove special casing of crypt(). + Fix setres*id checks to work with clang-16. - Configure goes to some lengths to pick crypt() from either libcrypt - or OpenSSL's libcrypto because they can more or less featureful (eg - supporting md5-style passwords). + glibc has the prototypes for setresuid and setresgid behind _GNU_SOURCE, + and clang 16 will error out on implicit function definitions, so add + _GNU_SOURCE and the required headers to the configure checks. From + sam at @gentoo.org via bz#3497. + +commit 12af712d116f42164bcfa56db901d06e4fa27199 +Author: Sam James +Date: Sun Nov 6 04:52:38 2022 +0000 + + configure.ac: Fix -Wstrict-prototypes - OpenSSL removed its crypt() interface in 2002: - https://github.com/openssl/openssl/commit/69deec58 so these hijinks - should no longer be necessary. This also only links sshd with libcrypt - which is the only thing that needs it. ok djm@ + Clang 16 now warns on this and it'll be removed in C23, so let's + just be future proof. It also reduces noise when doing general + Clang 16 porting work (which is a big job as it is). github PR#355. + + Signed-off-by: Sam James -commit 76f4e48631d7b09fb243b47d7b393d100d3741b7 -Author: Darren Tucker -Date: Wed Jul 13 13:17:47 2022 +1000 +commit 40b0a5eb6e3edfa2886b60c09c7803353b0cc7f5 +Author: Sam James +Date: Sun Nov 6 04:47:35 2022 +0000 - Only refuse to use OpenSSL 3.0.4 on x86_64. + configure.ac: Add include for openpty - The potential RCE only impacts x86_64, so only refuse to use it if we're - targetting a potentially impacted architecture. ok djm@ + Another Clang 16ish fix (which makes -Wimplicit-function-declaration + an error by default). github PR#355. + + See: 2efd71da49b9cfeab7987058cf5919e473ff466b + See: be197635329feb839865fdc738e34e24afd1fca8 -commit e75bbc1d88491fa85e61b2cc8783d4bbd00cd131 -Author: Darren Tucker -Date: Tue Jul 12 14:37:15 2022 +1000 +commit 6b17e128879ec6cc32ca2c28b5d894b4aa72e32d +Author: Rochdi Nassah +Date: Fri Oct 28 01:26:31 2022 +0100 - Capture stderr output from configure. + Fix broken zlib link. -commit d9eaea4bea6271bcee6a2b9428f1271faf2d033b +commit 99500df246ccb736ddbdd04160dcc82165d81a77 Author: Darren Tucker -Date: Tue Jul 12 12:54:49 2022 +1000 +Date: Fri Nov 4 16:59:26 2022 +1100 - Refuse to use OpenSSL 3.0.4 due to potential RCE. + Don't run openbsd-compat tests on Cygwin. - OpenSSL has a potential RCE in its RSA implementation (CVE-2022-2274) - so refuse to use that specific version. + Add "compat-tests" to the default TEST_TARGET so we can override as + necessary. Override TEST_TARGET for Cygwin as the tests don't currently + compile there. -commit fb2f3a61bf3d28fff285524535f7ffcd177c9235 -Author: Darren Tucker -Date: Tue Jul 12 12:54:24 2022 +1000 +commit 3cae9f92a31897409666aa1e6f696f779759332b +Author: djm@openbsd.org +Date: Thu Nov 3 21:59:20 2022 +0000 - Move unset to before we set anything. + upstream: replace recently-added valid_domain() check for hostnames + + going to known_hosts with a more relaxed check for bad characters; previous + commit broke address literals. Reported by/feedback from florian@ + + OpenBSD-Commit-ID: 10b86dc6a4b206adaa0c11b58b6d5933898d43e0 -commit c483a5c0fb8e8b8915fad85c5f6113386a4341ca +commit 9655217231c9056200bea7ae2dffcc9c0c3eb265 Author: Darren Tucker -Date: Wed Jul 6 11:52:54 2022 +1000 +Date: Thu Nov 3 23:07:50 2022 +1100 - Test against openssl-3.0.5. + Rerun tests on changes to Makefile.in in any dir. -commit 669a56bcfe73f8b985f2bba476ba834d55253acf +commit 3500f0405a3ab16b59a26f3508c4257a3fc3bce6 Author: Darren Tucker -Date: Tue Jul 5 18:35:53 2022 +1000 +Date: Thu Nov 3 23:04:08 2022 +1100 - Update sanitizer test targets: + Link libssh into compat tests. - - remove clang-sanitize-memory for now. It takes so long that the test - times out. - - add gcc sanitize-address and sanitize-undefined test targets. + The cygwin compat code uses xmalloc, so add libssh.a so pick up that. -commit 48cc68b69118b3ce8d07fd4f82e00d58667d5379 +commit ec59effcf65b8a4c85d47ff5a271123259dd0ab8 Author: Darren Tucker -Date: Tue Jul 5 16:23:28 2022 +1000 +Date: Thu Nov 3 21:44:23 2022 +1100 - Add GCC address sanitizer build/test. + Fix compat regress to work with non-GNU make. -commit 55c60bdd39b82457e92efa77da8d16cfa6a49391 +commit 73550a218e7dfbbd599534cbf856309bc924f6fd Author: Darren Tucker -Date: Tue Jul 5 12:02:33 2022 +1000 - - Move sanitizer logs into regress for collection. - -commit 35ef2b3b6ef198f8574904a45780487ec2f17858 -Author: dtucker@openbsd.org -Date: Mon Jul 4 09:10:31 2022 +0000 +Date: Thu Nov 3 13:41:16 2022 +1100 - upstream: Add TEST_REGRESS_CACHE_DIR. - - If set, it is used to cache regress test names that have succeeded and - skip those on a re-run. + Increase selfhosted job timeout. - OpenBSD-Regress-ID: a7570dd29a58df59f2cca647c3c2ec989b49f247 + The default job timeout of 360 (6h) is not enough to complete the + regress tests for some of the slow VMs depending on the load on the host. + Increase to 600 (10h). -commit 7394ed80c4de8b228a43c8956cf2fa1b9c6b2622 +commit db97d8d0b90c6ce52b94b153d6f8f5f7d3b11777 Author: Darren Tucker -Date: Sun Jul 3 21:46:44 2022 +1000 +Date: Thu Nov 3 10:00:43 2022 +1100 - Add clang sanitizer tests. + Only run opensslver tests if built with OpenSSL. -commit bfce0e66b6017a9bfab450b9dc7d4b16f90de817 +commit ba053709638dff2f6603df0c1f340352261d63ea Author: Darren Tucker -Date: Sun Jul 3 18:14:09 2022 +1000 +Date: Wed Nov 2 14:16:04 2022 +1100 - Skip all rlimit tests when sandboxing disabled. - - The rlimit tests can hang when being run with some compiler sanitizers - so skip all of them if sandbox=no. + Add tests for OpenSSL 3.0.7 and LibreSSL 3.6.1. -commit 6208d611520f9ea94d5369f9da404b709930029d +commit edd24101c7e17d1a8f6576e1aaf62233b47ad6f5 Author: Darren Tucker -Date: Sun Jul 3 17:54:49 2022 +1000 - - Move checks for pollfd.fd and nfds_t. - - Move the checks for struct pollfd.fd and nfds_t to before the sandboxing - checks. This groups all the sandbox checks together so we can skip them - all when sandboxing is disabled. +Date: Thu Nov 3 08:17:39 2022 +1100 -commit 322964f8f2e9c321e77ebae1e4d2cd0ccc5c5a0b -Author: dtucker@openbsd.org -Date: Fri Jul 1 05:08:23 2022 +0000 + Run compat regress tests too. - upstream: Remove leftover line. - - Remove extra line leftover from merge conflict. ok djm@ +commit fe88d67e7599b0bc73f6e4524add28d743e7f977 +Author: Darren Tucker +Date: Thu Nov 3 08:14:05 2022 +1100 + + Compat tests need libcrypto. - OpenBSD-Commit-ID: 460e2290875d7ae64971a7e669c244b1d1c0ae2e + This was moved to CHANNELLIBS during the libs refactor. Spotted by + rapier at psc.edu. -commit 7ec81daad0e03a64e8d91c5590960c48c1a899a3 -Author: djm@openbsd.org -Date: Fri Jul 1 04:45:50 2022 +0000 +commit 96b519726b7944eee3c23a54eee3d5c031ba1533 +Author: Darren Tucker +Date: Thu Nov 3 04:24:39 2022 +1100 - upstream: use consistent field names (s/char/byte) - - in format description + Include time.h when defining timegm. - OpenBSD-Commit-ID: 3de33572733ee7fcfd7db33d37db23d2280254f0 + Fixes build on some platforms eg recent AIX. -commit 32e82a392d9f263485effdd606ff5862d289a4a0 +commit da6038bd5cd55eb212eb2aec1fc8ae79bbf76156 Author: Darren Tucker -Date: Fri Jul 1 13:55:19 2022 +1000 +Date: Tue Nov 1 19:10:30 2022 +1100 - Skip select+rlimit check if sandboxing is disabled + Always use compat getentropy. - It's not needed in that case, and the test can fail when being built - with some compiler memory sanitizer flags. bz#3441 + Have it call native getentropy and fall back as required. Should fix + issues of platforms where libc has getentropy but it is not implemented + in the kernel. Based on github PR#354 from simsergey. -commit 4be7184ebe2a2ccef175983517a35ee06766e1b4 -Author: djm@openbsd.org -Date: Fri Jul 1 03:52:57 2022 +0000 +commit 5ebe18cab6be3247b44c807ac145164010465b82 +Author: Darren Tucker +Date: Wed Nov 2 10:51:48 2022 +1100 - upstream: bump up loglevel from debug to info when unable to open - - authorized keys/principals file for errno != ENOENT; bz2042 ok dtucker + Check for sockaddr_in.sin_len. - OpenBSD-Commit-ID: e79aa550d91ade6a80f081bda689da24c086d66b + If found, set SOCK_HAS_LEN which is used in addr.c. Should fix keyscan + tests on platforms with this (eg old NetBSD). -commit 6c31ba10e97b6953c4f325f526f3e846dfea647a +commit a1febadf426536612c2734168d409147c392e7cf Author: dtucker@openbsd.org -Date: Fri Jul 1 03:39:44 2022 +0000 +Date: Sun Oct 30 18:42:07 2022 +0000 - upstream: Don't leak the strings allocated by order_hostkeyalgs() - - and list_hostkey_types() that are passed to compat_pkalg_proposal(). Part of - github PR#324 from ZoltanFridrich, ok djm@ + upstream: Use variable for diff options - This is a roll-forward of the previous rollback now that the required - changes in compat.c have been done. + instead of unconditionally specifying "-rN". This will make life easier + in -portable where not all diff's understand -N. - OpenBSD-Commit-ID: c7cd93730b3b9f53cdad3ae32462922834ef73eb + OpenBSD-Regress-ID: 8b8a407115546be1c6d72d350b1e4f1f960d3cd3 -commit 486c4dc3b83b4b67d663fb0fa62bc24138ec3946 -Author: dtucker@openbsd.org -Date: Fri Jul 1 03:35:45 2022 +0000 +commit f6d3ed9a8a9280cbb68d6a499850cfe810e92bd0 +Author: Darren Tucker +Date: Mon Oct 31 05:13:02 2022 +1100 - upstream: Always return allocated strings from the kex filtering so - - that we can free them later. Fix one leak in compat_kex_proposal. Based on - github PR#324 from ZoltanFridrich with some simplications by me. ok djm@ + OpenSSL dev branch is 302 not 320. - OpenBSD-Commit-ID: 9171616da3307612d0ede086fd511142f91246e4 + While there, also accept 301 which it shat it was previously. -commit 96faa0de6c673a2ce84736eba37fc9fb723d9e5c +commit 25c8a2bbcc10c493d27faea57c42a6bf13fa51f2 Author: djm@openbsd.org -Date: Fri Jul 1 00:36:30 2022 +0000 +Date: Fri Oct 28 02:47:04 2022 +0000 - upstream: ignore SIGPIPE earlier in main(), specifically before + upstream: put sshkey_check_rsa_length() back in sshkey.c to unbreak - muxclient() which performs operations that could cause one; Reported by Noam - Lewis via bz3454, ok dtucker@ + OPENSSL=no builds - OpenBSD-Commit-ID: 63d8e13276869eebac6d7a05d5a96307f9026e47 + OpenBSD-Commit-ID: 99eec58abe382ecd14b14043b195ee1babb9cf6e -commit 33efac790f6b09d54894ba6c3e17dfb08b6fc7e1 -Author: jmc@openbsd.org -Date: Tue Jun 28 06:09:14 2022 +0000 +commit 1192588546c29ceec10775125f396555ea71850f +Author: djm@openbsd.org +Date: Fri Oct 28 02:29:34 2022 +0000 - upstream: reflect the update to -D arg name in usage(); + upstream: allow ssh-keyscan(1) to accept CIDR address ranges, e.g. - OpenBSD-Commit-ID: abdcde4f92b1ef094ae44210ee99d3b0155aad9c + ssh-keyscan 192.168.0.0/24 + + If a CIDR range is passed, then it will be expanded to all possible + addresses in the range including the all-0s and all-1s addresses. + + bz#976 feedback/ok markus@ + + OpenBSD-Commit-ID: ce6c5211f936ac0053fd4a2ddb415277931e6c4b -commit c71a1442d02f0a3586109dfe2cb366de36dee08e -Author: Darren Tucker -Date: Wed Jun 29 18:28:47 2022 +1000 +commit 64af4209309461c79c39eda2d13f9d77816c6398 +Author: Damien Miller +Date: Fri Oct 28 12:54:35 2022 +1100 - Update OpenSSL tests to the most recent releases. + fix merge botch -commit 2a822f29300b2de7335fbff65f0b187a0c582304 +commit 27267642699342412964aa785b98afd69d952c88 Author: djm@openbsd.org -Date: Mon Jun 27 21:41:55 2022 +0000 +Date: Fri Oct 28 00:44:44 2022 +0000 - upstream: allow arguments to sftp -D option, e.g. sftp -D - - "/usr/libexec/sftp-server -el debug3" + upstream: refactor sshkey_private_deserialize - ok markus@ + feedback/ok markus@ - OpenBSD-Commit-ID: 5a002b9f3a7aef2731fc0ffa9c921cf15f38ecce + OpenBSD-Commit-ID: f5ca6932fdaf840a5e8250becb38315a29b5fc9f -commit 2369a2810187e08f2af5d58b343956062fb96ee8 -Author: dtucker@openbsd.org -Date: Fri Jun 24 10:45:06 2022 +0000 +commit 2519a7077a9332f70935e5242ba91ee670ed6b87 +Author: djm@openbsd.org +Date: Fri Oct 28 00:44:17 2022 +0000 - upstream: Roll back previous KEX changes as they aren't safe until + upstream: refactor sshkey_private_serialize_opt() - compat_pkalg_proposal and friends always allocate their returned strings. - Reported by Qualys. + feedback/ok markus@ - OpenBSD-Commit-ID: 1c7a88a0d5033f42f88ab9bec58ef1cf72c81ad0 + OpenBSD-Commit-ID: 61e0fe989897901294efe7c3b6d670cefaf44cbd -commit 646686136c34c2dbf6a01296dfaa9ebee029386d -Author: dtucker@openbsd.org -Date: Fri Jun 24 04:37:00 2022 +0000 +commit 11a768adf98371fe4e43f3b06014024c033385d5 +Author: djm@openbsd.org +Date: Fri Oct 28 00:43:30 2022 +0000 - upstream: Don't leak the strings allocated by order_hostkeyalgs() + upstream: refactor certify - and list_hostkey_types() that are passed to compat_pkalg_proposal(). Part of - github PR#324 from ZoltanFridrich, ok djm@ + feedback/ok markus@ - OpenBSD-Commit-ID: b2f6e5f60f2bba293b831654328a8a0035ef4a1b + OpenBSD-Commit-ID: 35d742992e223eaca3537e6fb3d3002c08eed4f6 -commit 193c6d8d905dde836b628fc07a7b9cf2d347e2a3 -Author: Darren Tucker -Date: Sat Jun 25 12:16:15 2022 +1000 +commit 3fbc58bb249d967cc43ebdc554f6781bb73d4a58 +Author: djm@openbsd.org +Date: Fri Oct 28 00:43:08 2022 +0000 - Zero out LIBFIDO2 when SK support not usable. + upstream: refactor sshkey_sign() and sshkey_verify() - Prevents us from trying to link them into ssh-sk-helper and failing to - build. - -commit 40f5d849d25c60b4ae21261e78484d435f5cfd51 -Author: Darren Tucker -Date: Sat Jun 25 11:47:28 2022 +1000 - - Disable SK support if FIDO libs not found. - -commit 5fd922ade1b25880fe8a8249f5c0385e413108f9 -Author: Damien Miller -Date: Fri Jun 24 14:43:54 2022 +1000 - - fix broken case statement in previous - -commit f51423bdaf0008d46b6af082bcfd7a22a87375f0 -Author: Damien Miller -Date: Fri Jun 24 14:40:42 2022 +1000 - - request 1.1x API compatibility for OpenSSL >=3.x + feedback/ok markus@ - idea/patch from Pedro Martelletto via GHPR#322; ok dtucker@ + OpenBSD-Commit-ID: 368e662c128c99d05cc043b1308d2b6c71a4d3cc -commit 455cee8d6c2e4c48c5af9faead3599c49948411e +commit a1deb6cdbbe6afaab74ecb08fcb62db5739267be Author: djm@openbsd.org -Date: Fri Jun 24 04:27:14 2022 +0000 +Date: Fri Oct 28 00:41:52 2022 +0000 - upstream: make it clear that RekeyLimit applies to both transmitted + upstream: refactor sshkey_from_blob_internal() - and received data. GHPR#328 from Jan Pazdziora + feedback/ok markus@ - OpenBSD-Commit-ID: d180a905fec9ff418a75c07bb96ea41c9308c3f9 + OpenBSD-Commit-ID: 1f46c0cbb8060ee9666a02749594ad6658c8e283 -commit 17904f05802988d0bb9ed3c8d1d37411e8f459c3 -Author: tobhe@openbsd.org -Date: Tue Jun 21 14:52:13 2022 +0000 +commit 7d00799c935271ce89300494c5677190779f6453 +Author: djm@openbsd.org +Date: Fri Oct 28 00:41:17 2022 +0000 - upstream: Make sure not to fclose() the same fd twice in case of an - - error. + upstream: refactor sshkey_from_private() - ok dtucker@ + feedback/ok markus@ - OpenBSD-Commit-ID: e384c4e05d5521e7866b3d53ca59acd2a86eef99 + OpenBSD-Commit-ID: e5dbe7a3545930c50f70ee75c867a1e08b382b53 -commit f29d6cf98c25bf044079032d22c1a57c63ab9d8e -Author: dtucker@openbsd.org -Date: Sat Jun 18 02:17:16 2022 +0000 +commit 262647c2e920492ca57f1b9320d74f4a0f6e482b +Author: djm@openbsd.org +Date: Fri Oct 28 00:39:29 2022 +0000 - upstream: Don't attempt to fprintf a null identity comment. From + upstream: factor out key generation - Martin Vahlensieck via tech@. + feedback/ok markus@ - OpenBSD-Commit-ID: 4c54d20a8e8e4e9912c38a7b4ef5bfc5ca2e05c2 + OpenBSD-Commit-ID: 5b4211bff4de8d9adb84bc72857a8c42c44e7ceb -commit ad1762173bb38716a106e8979806149fd0f2753e -Author: dtucker@openbsd.org -Date: Fri Jun 17 01:00:03 2022 +0000 +commit 401c74e7dc15eab60540653d2f94d9306a927bab +Author: djm@openbsd.org +Date: Fri Oct 28 00:38:58 2022 +0000 - upstream: Log an error if pipe() fails while accepting a + upstream: refactor and simplify sshkey_read() - connection. bz#3447, from vincent-openssh at vinc17 net, ok djm@ + feedback/ok markus@ - OpenBSD-Commit-ID: 9d59f19872b94900a5c79da2d57850241ac5df94 + OpenBSD-Commit-ID: 0d93b7a56e31cd06a8bb0d2191d084ce254b0971 -commit 9c59e7486cc8691401228b43b96a3edbb06e0412 -Author: Damien Miller -Date: Fri Jun 24 14:20:43 2022 +1000 +commit 591fed94e66a016acf87f4b7cd416ce812f2abe8 +Author: djm@openbsd.org +Date: Fri Oct 28 00:37:24 2022 +0000 - automatically enable built-in FIDO support + upstream: factor out public key serialization - If libfido2 is found and usable, then enable the built-in - security key support unless --without-security-key-builtin - was requested. + feedback/ok markus@ - ok dtucker@ + OpenBSD-Commit-ID: a3570c4b97290c5662890aea7328d87f55939033 -commit 7d25b37fb2a5ff4dadabcbdac6087a97479434f5 -Author: Damien Miller -Date: Fri Jun 24 13:46:39 2022 +1000 +commit 1e78844ae2b2dc01ba735d5ae740904c57e13685 +Author: djm@openbsd.org +Date: Fri Oct 28 00:36:31 2022 +0000 - fix possible NULL deref when built without FIDO + upstream: factor out sshkey_equal_public() - Analysis/fix from kircher in bz3443; ok dtucker@ + feedback/ok markus@ + + OpenBSD-Commit-ID: 1368ba114cb37732fe6ec3d89c7e6d27ea6fdc94 -commit f5ba85daddfc2da6a8dab6038269e02c0695be44 +commit 25de1c01a8b9a2c8ab9b1da22444a03e89c982de Author: djm@openbsd.org -Date: Wed Jun 15 16:08:25 2022 +0000 +Date: Fri Oct 28 00:35:40 2022 +0000 - upstream: make sure that UseDNS hostname lookup happens in the monitor + upstream: begin big refactor of sshkey + + Move keytype data and some of the type-specific code (allocation, + cleanup, etc) out into each key type's implementation. Subsequent + commits will move more, with the goal of having each key-*.c file + owning as much of its keytype's implementation as possible. - and not in the pledge(2)'d unprivileged process; fixes regression caused by - recent refactoring spotted by henning@ + lots of feedback + ok markus@ - OpenBSD-Commit-ID: a089870b95101cd8881a2dff65b2f1627d13e88d + OpenBSD-Commit-ID: 0f2b4334f73914344e9e5b3d33522d41762a57ec -commit acb2059febaddd71ee06c2ebf63dcf211d9ab9f2 +commit 445363433ba20b8a3e655b113858c836da46a1cb Author: djm@openbsd.org -Date: Fri Jun 3 04:47:21 2022 +0000 +Date: Mon Oct 24 22:43:36 2022 +0000 - upstream: move auth_openprincipals() and auth_openkeyfile() over to + upstream: Be more paranoid with host/domain names coming from the - auth2-pubkeyfile.c too; they make more sense there. + never write a name with bad characters to a known_hosts file. - OpenBSD-Commit-ID: 9970d99f900e1117fdaab13e9e910a621b7c60ee + reported by David Leadbeater, ok deraadt@ + + OpenBSD-Commit-ID: ba9b25fa8b5490b49398471e0c9657b0cbc7a5ad -commit 3d9b0845f34510111cc693bb99a667662ca50cd8 +commit 7190154de2c9fe135f0cc1ad349cb2fa45152b89 Author: djm@openbsd.org -Date: Fri Jun 3 04:31:54 2022 +0000 +Date: Mon Oct 24 21:52:50 2022 +0000 - upstream: test setenv in both client and server, test first-match-wins + upstream: regress test for unmatched glob characters; fails before - too + previous commit but passes now. bz3488; prodded by dtucker@ - OpenBSD-Regress-ID: 4c8804f9db38a02db480b9923317457b377fe34b + OpenBSD-Regress-ID: 0cc5cc9ea4a6fd170dc61b9212f15badaafb3bbd -commit 22e1a3a71ad6d108ff0c5f07f93c3fcbd30f8b40 +commit a4821a592456c3add3cd325db433110cdaaa3e5c Author: djm@openbsd.org -Date: Fri Jun 3 04:30:46 2022 +0000 +Date: Mon Oct 24 21:51:55 2022 +0000 - upstream: Make SetEnv directives first-match-wins in both + upstream: when scp(1) is using the SFTP protocol for transport (the - sshd_config and sshd_config; previously if the same name was reused then the - last would win (which is the opposite to how the config is supposed to work). + default), better match scp/rcp's handling of globs that don't match the + globbed characters but do match literally (e.g. trying to transfer + "foo.[1]"). - While there, make the ssh_config parsing more like sshd_config. + Previously scp(1) in SFTP mode would not match these pathnames but + legacy scp/rcp mode would. - bz3438, ok dtucker + Reported by Michael Yagliyan in bz3488; ok dtucker@ - OpenBSD-Commit-ID: 797909c1e0262c0d00e09280459d7ab00f18273b + OpenBSD-Commit-ID: d8a3773f53015ba811fddba7473769a2fd343e11 -commit 38ed6c57e9e592c08e020fa6e82b45b4e1040970 -Author: dtucker@openbsd.org -Date: Fri Jun 3 04:00:15 2022 +0000 +commit 18376847b8043ba967eabbe23692ef74c9a3fddc +Author: jsg@openbsd.org +Date: Thu Oct 13 09:09:28 2022 +0000 - upstream: Add missing *-sk types to ssh-keyscan manpage. From - - skazi0 via github PR#294. + upstream: use correct type with sizeof ok djm@ - OpenBSD-Commit-ID: fda2c869cdb871f3c90a89fb3f985370bb5d25c0 + OpenBSD-Commit-ID: d6c882c2e8a42ff831a5b3cbc2c961ecb2dd6143 -commit ea97ec98c41ec2b755dfab459347db674ff9a5de -Author: dtucker@openbsd.org -Date: Fri Jun 3 03:21:09 2022 +0000 +commit 4a4883664d6b4e9e4e459a8cdc16bd8d4b735de9 +Author: jmc@openbsd.org +Date: Fri Oct 7 06:00:58 2022 +0000 - upstream: Add period at end of "not known by any other names" + upstream: ssh-agent.1: - use Nm not Xr for self-ref - while here, - message. github PR#320 from jschauma, ok djm@ + wrap a long line - OpenBSD-Commit-ID: bd60809803c4bfd3ebb7c5c4d918b10e275266f2 + ssh-agent.c: + - add -O to usage() + + OpenBSD-Commit-ID: 855dac4695cef22e96d69c53436496bc408ca389 -commit 88e376fcd67478ad1660d94bc73ab348ac9f4527 -Author: dtucker@openbsd.org -Date: Fri Jun 3 03:17:42 2022 +0000 +commit 9fd2441113fce2a83fc7470968c3b27809cc7f10 +Author: djm@openbsd.org +Date: Fri Oct 7 04:06:26 2022 +0000 - upstream: ssh-keygen -A: do not generate DSA keys by default. + upstream: document "-O no-restrict-websafe"; spotted by Ross L - Based on github PR#303 from jsegitz with man page text from jmc@, ok markus@ - djm@ + Richardson - OpenBSD-Commit-ID: 5c4c57bdd7063ff03381cfb6696659dd3f9f5b9f + OpenBSD-Commit-ID: fe9eaa50237693a14ebe5b5614bf32a02145fe8b -commit 6b3fb624675082a1e5aa615d1b8479873d8b5731 -Author: naddy@openbsd.org -Date: Tue May 31 14:05:12 2022 +0000 +commit 614252b05d70f798a0929b1cd3d213030ad4d007 +Author: Darren Tucker +Date: Tue Oct 18 06:29:16 2022 +1100 - upstream: ssh-keygen: implement "verify-required" certificate option. - - This was already documented when support for user-verified FIDO - keys was added, but the ssh-keygen(1) code was missing. + OpenSSL dev branch now identifies as 3.2.0. + +commit 195e5a65fd793a738ea8451ebfdd1919db5aff3e +Author: Damien Miller +Date: Mon Oct 17 09:41:47 2022 +1100 + + revert c64b62338b4 and guard POLL* defines instead - ok djm@ + c64b62338b4 broke OSX builds, which do have poll.h but lack ppoll(2) + Spotted by dtucker + +commit bc2e480d99613bd59720edae244d1764636544c4 +Author: Damien Miller +Date: Fri Oct 14 14:52:22 2022 +1100 + + undef _get{short,long} before redefining + +commit 5eb796a369c64f18d55a6ae9b1fa9b35eea237fb +Author: Harmen Stoppels +Date: Thu Oct 13 16:08:46 2022 +0200 + + Fix snprintf configure test for clang 15 - OpenBSD-Commit-ID: f660f973391b593fea4b7b25913c9a15c3eb8a06 + Clang 15 -Wimplicit-int defaults to an error in C99 mode and above. + A handful of tests have "main(..." and not "int main(..." which caused + the tests to produce incorrect results. -commit b7f86ffc301be105bba9a3e0618b6fab3ae379bd -Author: jmc@openbsd.org -Date: Sat May 28 05:57:56 2022 +0000 +commit c64b62338b46ffa08839f05f21ad69fa6234dc17 +Author: Damien Miller +Date: Mon Oct 10 12:32:43 2022 +1100 - upstream: keywords ref ssh_config.5; + skip bsd-poll.h if poll.h found; ok dtucker + +commit 5ee2b8ccfcf4b606f450eb0ff2305e311f68b0be +Author: djm@openbsd.org +Date: Thu Oct 6 22:42:37 2022 +0000 + + upstream: honour user's umask if it is more restrictive then the ssh - from caspar schutijser + default (022); based on patch from Alex Henrie, ok dtucker@ deraadt@ - OpenBSD-Commit-ID: f146a19d7d5c9374c3b9c520da43b2732d7d1a4e + OpenBSD-Commit-ID: fe1b9e15fc9a4f49fc338e848ce14d8727abe82d -commit dc7bc52372f2744fa39191577be5306ee57aacd4 -Author: Damien Miller -Date: Mon May 30 09:29:09 2022 +1000 +commit a75cffc2700cebd3e2dd9093f7f7388d2be95cb7 +Author: Darren Tucker +Date: Fri Oct 7 03:54:56 2022 +1100 - fix some bugs in the fuzzer + Add LibreSSL 3.6.0 to test suite. + + While there, bump OpenSSL to latest 1.1.1q release. -commit 1781f507c113667613351c19898efaf1e311a865 +commit fcc0f0c0e96a30076683fea9a7c9eedc72931742 Author: Darren Tucker -Date: Fri May 27 18:19:48 2022 +1000 +Date: Thu Oct 6 21:18:16 2022 +1100 - Test against OpenSSL 1.1.1o and 3.0.3. + Add 9.1 branch to CI status page. -commit c53906e0c59e569691b4095d3e8db79cf78fa058 +commit ef211eee63821d894a8bf81f22bfba9f6899d0fe Author: Darren Tucker -Date: Fri May 27 18:18:31 2022 +1000 +Date: Tue Oct 4 23:20:23 2022 +1100 - Test against LibreSSL 3.5.3. + Test commits to all branches of portable. + + Only test OpenBSD upstream on commits to master since that's what it + tracks. -commit 9b3ad432ad2f19319bcc089370e356c6315d682f +commit fe646de03cafb6593ff4e4954bca9ec4b4b753a8 Author: Damien Miller -Date: Fri May 27 17:00:43 2022 +1000 +Date: Wed Oct 5 03:47:26 2022 +1100 - fuzzer for authorized_keys parsing - - mostly redundant to authopt_fuzz, but it's sensitive code so IMO it - makes sense to test this layer too + whitespace at EOL -commit c83d8c4d6f3ccceef84d46de107f6b71cda06359 -Author: djm@openbsd.org -Date: Fri May 27 05:02:46 2022 +0000 +commit a6e1852d10c63a830196e82168dadd957aaf28ec +Author: Damien Miller +Date: Wed Oct 5 03:40:01 2022 +1100 - upstream: split the low-level file handling functions out from - - auth2-pubkey.c - - Put them in a new auth2-pubkeyfile.c to make it easier to refer to them - (e.g. in unit/fuzz tests) without having to refer to everything else - pubkey auth brings in. - - ok dtucker@ - - OpenBSD-Commit-ID: 3fdca2c61ad97dc1b8d4a7346816f83dc4ce2217 + mention libfido2 autodetection -commit 3b0b142d2a0767d8cd838e2f3aefde8a0aaa41e1 -Author: djm@openbsd.org -Date: Fri May 27 05:01:25 2022 +0000 +commit 7360c2c206f33d309edbaf64036c96fadf74d640 +Author: Damien Miller +Date: Wed Oct 5 03:37:36 2022 +1100 - upstream: refactor authorized_keys/principals handling - - remove "struct ssh *" from arguments - this was only used to pass the - remote host/address. These can be passed in instead and the resulting - code is less tightly coupled to ssh_api.[ch] - - ok dtucker@ + remove mention of --with-security-key-builtin - OpenBSD-Commit-ID: 9d4373d013edc4cc4b5c21a599e1837ac31dda0d + it is enabled by default when libfido2 is installed -commit 2c334fd36f80cb91cc42e4b978b10aa35e0df236 -Author: dtucker@openbsd.org -Date: Fri May 27 04:29:40 2022 +0000 +commit 0ffb46f2ee2ffcc4daf45ee679e484da8fcf338c +Author: Damien Miller +Date: Tue Oct 4 01:51:42 2022 +1100 - upstream: f sshpkt functions fail, then password is not cleared - - with freezero. Unconditionally call freezero to guarantee that password is - removed from RAM. - - From tobias@ and c3h2_ctf via github PR#286, ok djm@ - - OpenBSD-Commit-ID: 6b093619c9515328e25b0f8093779c52402c89cd + update .depend -commit 5d3a77f4c5ae774c6796387266503f52c7cdc7c2 -Author: dtucker@openbsd.org -Date: Fri May 27 04:27:49 2022 +0000 +commit 657e676ff696c7bb787bffb0e249ea1be3b474e1 +Author: Damien Miller +Date: Tue Oct 4 01:45:52 2022 +1100 - upstream: Avoid kill with -1 argument. The out_ctx label can be - - reached before fork has been called. If this happens, then kill -1 would be - called, sending SIGTERM to all processes reachable by the current process. - - From tobias@ and c3h2_ctf via github PR#286, ok djm@ + update release notes URL + +commit f059da2b29840c0f048448809c317ce2ae014da7 +Author: Damien Miller +Date: Tue Oct 4 01:45:41 2022 +1100 + + crank versions in RPM spec files + +commit b51f3f172d87cbdb80ca4eb7b2149e56a7647557 +Author: djm@openbsd.org +Date: Mon Sep 26 22:18:40 2022 +0000 + + upstream: openssh-9.1 - OpenBSD-Commit-ID: 6277af1207d81202f5daffdccfeeaed4c763b1a8 + OpenBSD-Commit-ID: 5a467b2ee81da01a86adf1ad93b62b1728494e56 -commit 533b31cd08e4b97f455466f91c36915e2924c15a +commit 4cf8d0c0f3030f594a238bab21a0695735515487 Author: dtucker@openbsd.org -Date: Fri May 27 04:13:24 2022 +0000 +Date: Wed Sep 21 22:26:50 2022 +0000 - upstream: Note that ProxyJump also accepts the same tokens as - - ProxyCommand. From pallxk via github PR#305. + upstream: Fix typo. From AlexanderStohr via github PR#343. - OpenBSD-Commit-ID: 7115ac351b129205f1f1ffa6bbfd62abd76be7c5 + OpenBSD-Commit-ID: a134c9b4039e48803fc6a87f955b0f4a03181497 -commit 9d8c80f8a304babe61ca28f2e3fb5eb6dc9c39bf +commit 8179fed3264d5919899900ed8881d5f9bb57ca33 Author: djm@openbsd.org -Date: Wed May 25 06:03:44 2022 +0000 +Date: Mon Sep 19 21:39:16 2022 +0000 - upstream: revert previous; it was broken (spotted by Theo) + upstream: add RequiredRSASize to the list of keywords accepted by - OpenBSD-Commit-ID: 457c79afaca2f89ec2606405c1059b98b30d8b0d + -o; spotted by jmc@ + + OpenBSD-Commit-ID: fe871408cf6f9d3699afeda876f8adbac86a035e -commit 9e0d02ef7ce88b67643bfb1c2272c9f5f04cc680 -Author: djm@openbsd.org -Date: Wed May 25 00:31:13 2022 +0000 +commit 5f954929e9f173dd1e279e07d0e8b14fa845814d +Author: Damien Miller +Date: Mon Sep 19 20:59:34 2022 +1000 - upstream: make SSHBUF_DBG/SSHBUF_TELL (off by default and only enabled - - via #define) dump to stderr rather than stdout + no need for glob.h here - OpenBSD-Commit-ID: 10298513ee32db8390aecb0397d782d68cb14318 + it also causes portability problems -commit 2487163630f28be28b7e2396b4bd6511b98f1d3e -Author: Tim Rice -Date: Tue May 24 10:21:25 2022 -0700 +commit 03d94a47207d58b3db37eba4f87eb6ae5a63168a +Author: Damien Miller +Date: Mon Sep 19 20:59:04 2022 +1000 - configure.ac: Add missing AC_DEFINE for caph_cache_tzdata test causing - HAVE_CAPH_CACHE_TZDATA to be missing from config.h.in. - Spotted by Bryan Drewery + avoid Wuninitialized false positive in gcc-12ish -commit bedb93415b60db3dfd704a3d525e82adb14a2481 +commit 9d952529113831fb3071ab6e408d2726fd72e771 Author: djm@openbsd.org -Date: Sun May 15 23:48:07 2022 +0000 +Date: Mon Sep 19 10:46:00 2022 +0000 - upstream: regress test for in-place transfers and clobbering larger + upstream: use users-groups-by-id@openssh.com sftp-server extension - files with smaller ones; would have caught last regression in scp(1) + (when available) to fill in user/group names for directory listings. + Implement a client-side cache of see uid/gid=>user/group names. ok markus@ - OpenBSD-Regress-ID: 19de4e88dd3a4f7e5c1618c9be3c32415bd93bc2 + OpenBSD-Commit-ID: f239aeeadfa925a37ceee36ee8b256b8ccf4466e -commit b4f0d719c2548cb74da509fb65f384dada4ebd37 -Author: anton@openbsd.org -Date: Fri Apr 22 05:08:43 2022 +0000 +commit 8ff680368b0bccf88ae85d4c99de69387fbad7a6 +Author: djm@openbsd.org +Date: Mon Sep 19 10:43:12 2022 +0000 - upstream: Only run agent-ptrace.sh if gdb is available as all + upstream: sftp client library support for - architectures do not ship with gdb. + users-groups-by-id@openssh.com; ok markus@ - OpenBSD-Regress-ID: ec53e928803e6b87f9ac142d38888ca79a45348d + OpenBSD-Commit-ID: ddb2f33a2da6349a9a89a8b5bcb9ca7c999394de -commit 9b73345f80255a7f3048026462f2c0c6a241eeac +commit 488f6e1c582212c2374a4bf8cd1b703d2e70fb8b Author: djm@openbsd.org -Date: Sun May 15 23:47:21 2022 +0000 +Date: Mon Sep 19 10:41:58 2022 +0000 - upstream: fix in-place copies; r1.163 incorrectly skipped truncation in + upstream: extend sftp-common.c:extend ls_file() to support supplied - all cases, not just at the start of a transfer. This could cause overwrites - of larger files to leave junk at the end. Spotted by tb@ + user/group names; ok markus@ - OpenBSD-Commit-ID: b189f19cd68119548c8e24e39c79f61e115bf92c + OpenBSD-Commit-ID: c70c70498b1fdcf158531117e405b6245863bfb0 -commit 56a0697fe079ff3e1ba30a2d5c26b5e45f7b71f8 +commit 74b77f7497dba3a58315c8f308883de448078057 Author: djm@openbsd.org -Date: Fri May 13 06:31:50 2022 +0000 +Date: Mon Sep 19 10:40:52 2022 +0000 - upstream: arrange for scp, when in sftp mode, to not ftruncate(3) files + upstream: sftp-server(8): add a "users-groups-by-id@openssh.com" - early + extension request that allows the client to obtain user/group names that + correspond to a set of uids/gids. - previous behavious of unconditionally truncating the destination file - would cause "scp ~/foo localhost:" and "scp localhost:foo ~/" to - delete all the contents of their destination. + Will be used to make directory listings more useful and consistent + in sftp(1). - spotted by solene@ sthen@, also bz3431; ok dtucker@ + ok markus@ - OpenBSD-Commit-ID: ca39fdd39e0ec1466b9666f15cbcfddea6aaa179 + OpenBSD-Commit-ID: 7ebabde0bcb95ef949c4840fe89e697e30df47d3 -commit fbcef70c2832712f027bccea1aa9bc4b4103da93 -Author: dtucker@openbsd.org -Date: Mon May 9 08:25:27 2022 +0000 +commit 231a346c0c67cc7ca098360f9a554fa7d4f1eddb +Author: djm@openbsd.org +Date: Mon Sep 19 08:49:50 2022 +0000 - upstream: Remove errant apostrophe. From haruyama at queen-ml org. + upstream: better debugging for connect_next() - OpenBSD-Commit-ID: dc6b294567cb84b384ad6ced9ca469f2bbf0bd10 + OpenBSD-Commit-ID: d16a307a0711499c971807f324484ed3a6036640 -commit 0086a286ea6bbd11ca9b664ac3bb12b27443d6eb +commit 1875042c52a3b950ae5963c9ca3774a4cc7f0380 Author: djm@openbsd.org -Date: Mon May 9 03:09:53 2022 +0000 +Date: Sat Sep 17 10:34:29 2022 +0000 - upstream: Allow existing -U (use agent) flag to work with "-Y sign" + upstream: Add RequiredRSASize for sshd(8); RSA keys that fall - operations, where it will be interpreted to require that the private keys is - hosted in an agent; bz3429, suggested by Adam Szkoda; ok dtucker@ + beneath this limit will be ignored for user and host-based authentication. - OpenBSD-Commit-ID: a7bc69873b99c32c42c7628ed9ea91565ba08c2f + Feedback deraadt@ ok markus@ + + OpenBSD-Commit-ID: 187931dfc19d51873df5930a04f2d972adf1f7f1 -commit cb010744cc98f651b1029bb09efa986eb54e4ccf +commit 54b333d12e55e6560b328c737d514ff3511f1afd Author: djm@openbsd.org -Date: Sun May 8 22:58:35 2022 +0000 +Date: Sat Sep 17 10:33:18 2022 +0000 - upstream: improve error message when 'ssh-keygen -Y sign' is unable to + upstream: add a RequiredRSASize for checking RSA key length in - load a private key; bz3429, reported by Adam Szkoda ok dtucker@ + ssh(1). User authentication keys that fall beneath this limit will be + ignored. If a host presents a host key beneath this limit then the connection + will be terminated (unfortunately there are no fallbacks in the protocol for + host authentication). - OpenBSD-Commit-ID: bb57b285e67bea536ef81b1055467be2fc380e74 - -commit aa61fc82c63d309a90c22ca74fb1da6c6f4372fd -Author: Tobias Heider -Date: Mon May 9 02:00:01 2022 +0200 - - Remove duplicate bcrypt_pbkdf.o from Makefile + feedback deraadt, Dmitry Belyavskiy; ok markus@ - bcrypt_pbkdf.o is duplicated in the openbsd-compat Makefile's object - file list. + OpenBSD-Commit-ID: 430e339b2a79fa9ecc63f2837b06fdd88a7da13a -commit deb506d00da8d11fb04c1e7b9b1e1cc379c1705c +commit 07d8771bacfefbcfb37fa8a6dc6103bcc097e0ab Author: djm@openbsd.org -Date: Sun May 8 22:32:36 2022 +0000 +Date: Sat Sep 17 10:30:45 2022 +0000 - upstream: When performing operations that glob(3) a remote path, ensure - - that the implicit working directory used to construct that path escapes - glob(3) characters. - - This prevents glob characters from being processed in places they - shouldn't, e.g. "cd /tmp/a*/", "get *.txt" should have the get operation - treat the path "/tmp/a*" literally and not attempt to expand it. + upstream: Add a sshkey_check_rsa_length() call for checking the - Reported by Lusia Kundel; ok markus@ + length of an RSA key; ok markus@ - OpenBSD-Commit-ID: 4f647f58482cbad3d58b1eab7f6a1691433deeef - -commit f38cf74f20b5da113cfa823afd5bfb5c6ba65f3d -Author: Darren Tucker -Date: Fri May 6 14:50:18 2022 +1000 - - Also retest OpenBSD upstream on .yml changes. + OpenBSD-Commit-ID: de77cd5b11594297eda82edc594b0d32b8535134 -commit f87a132800ba3710ab130d703448a31ef1128d77 -Author: Darren Tucker -Date: Fri May 6 14:46:09 2022 +1000 +commit 3991a0cf947cf3ae0f0373bcec5a90e86a7152f5 +Author: djm@openbsd.org +Date: Sat Sep 17 10:11:29 2022 +0000 - Note that, for now, we need variadic macros. + upstream: actually hook up restrict_websafe; the command-line flag + + was never actually used. Spotted by Matthew Garrett + + OpenBSD-Commit-ID: 0b363518ac4c2819dbaa3dfad4028633ab9cdff1 -commit 217b518e0f7c52c4b909e935141a55344c61e644 -Author: Darren Tucker -Date: Fri May 6 14:39:34 2022 +1000 +commit 30b2a7e4291fb9e357f80a237931ff008d686d3b +Author: djm@openbsd.org +Date: Fri Sep 16 06:55:37 2022 +0000 - Add ubsan minimal testcase on OpenBSD. + upstream: correct error value - As suggested by djm@. + OpenBSD-Commit-ID: 780efcbad76281f11f14b2a5ff04eb6db3dfdad4 -commit 457dce2cfef6a48f5442591cd8b21c7e8cba13f8 +commit ac1ec9545947d9f9657259f55d04cb49d3a94c8a Author: djm@openbsd.org -Date: Thu May 5 01:04:14 2022 +0000 +Date: Fri Sep 16 03:33:14 2022 +0000 - upstream: sshkey_unshield_private() contains a exact duplicate of + upstream: sftp: Be a bit more clever about completions - the code in private2_check_padding(). Pull private2_check_padding() up so the - code can be reused. From Martin Vahlensieck, ok deraadt@ + There are commands (e.g. "get" or "put") that accept two + arguments, a local path and a remote path. However, the way + current completion is written doesn't take this distinction into + account and always completes remote or local paths. - OpenBSD-Commit-ID: 876884c3f0e62e8fd8d1594bab06900f971c9c85 + By expanding CMD struct and "cmds" array this distinction can be + reflected and with small adjustment to completer code the correct + path can be completed. + + By Michal Privoznik, ok dtucker@ + + OpenBSD-Commit-ID: 1396d921c4eb1befd531f5c4a8ab47e7a74b610b -commit 0e44db4d9cb313e68a59a44d27884af66c02356e +commit 590db83384f9d99fc51c84505792d26d1ef60df9 Author: djm@openbsd.org -Date: Thu May 5 00:56:58 2022 +0000 +Date: Fri Sep 16 03:13:34 2022 +0000 - upstream: channel_new no longer frees remote_name. So update the + upstream: sftp: Don't attempt to complete arguments for - comment accordingly. As remote_name is not modified, it can be const as - well. From Martin Vahlensieck + non-existent commands - OpenBSD-Commit-ID: e4e10dc8dc9f40c166ea5a8e991942bedc75a76a + If user entered a non-existent command (e.g. because they made a + typo) there is no point in trying to complete its arguments. Skip + calling complete_match() if that's the case. + + From Michal Privoznik + + OpenBSD-Commit-ID: cf39c811a68cde2aeb98fc85addea4000ef6b07a -commit 37b62fd5caf19c85a48241535277cefff65adace +commit ff9809fdfd1d9a91067bb14a77d176002edb153c Author: djm@openbsd.org -Date: Thu May 5 00:55:11 2022 +0000 +Date: Wed Sep 14 00:14:37 2022 +0000 - upstream: mux.c: mark argument as const; from Martin Vahlensieck + upstream: sk_enroll: never drop SSH_SK_USER_VERIFICATION_REQD flag - OpenBSD-Commit-ID: 69a1a93a55986c7c2ad9f733c093b46a47184341 - -commit f4e67c0ad259b4cf10177277a5827fa5545bac53 -Author: markus@openbsd.org -Date: Wed May 4 07:31:22 2022 +0000 - - upstream: make sure stdout is non-blocking; ok djm@ + from response - OpenBSD-Commit-ID: 64940fffbd1b882eda2d7c8c7a43c79368309c0d + Now that all FIDO signing calls attempt first without PIN and then + fall back to trying PIN only if that attempt fails, we can remove the + hack^wtrick that removed the UV flag from the keys returned during + enroll. + + By Corinna Vinschen + + OpenBSD-Commit-ID: 684517608c8491503bf80cd175425f0178d91d7f -commit e5c036d2092c00bef395e9161dc5ce42d4be9565 -Author: florian@openbsd.org -Date: Tue May 3 07:42:27 2022 +0000 +commit 940dc10729cb5a95b7ee82c10184e2b9621c8a1d +Author: djm@openbsd.org +Date: Wed Sep 14 00:13:13 2022 +0000 - upstream: Add FIDO AUTHENTICATOR section and explain a bit how FIDO + upstream: a little extra debugging - works. The wording came mostly from the 8.2 OpenSSH release notes, addapted - to fit the man page. Then move the -O bits into the new section as is already - done for CERTIFICATES and MODULI GENERATION. Finally we can explain the - trade-offs of resident keys. While here, consistently refer to the FIDO - thingies as "FIDO authenticators", not "FIDO tokens". + OpenBSD-Commit-ID: edf1601c1d0905f6da4c713f4d9cecc7d1c0295a + +commit 4b5f91cb959358141181b934156513fcb8a6c1e3 +Author: djm@openbsd.org +Date: Wed Sep 14 00:02:03 2022 +0000 + + upstream: ssh-agent: attempt FIDO key signing without PIN and use - input & OK jmc, naddy + the error to determine whether a PIN is required and prompt only if + necessary. from Corinna Vinschen - OpenBSD-Commit-ID: dd98748d7644df048f78dcf793b3b63db9ab1d25 + OpenBSD-Commit-ID: dd6be6a0b7148608e834ee737c3479b3270b00dd -commit 575771bf79bef7127be6aaccddc46031ea15529e +commit 113523bf0bc33600b07ebb083572c8c346b6fdf4 Author: jmc@openbsd.org -Date: Mon May 2 05:40:37 2022 +0000 +Date: Sun Sep 11 06:38:11 2022 +0000 - upstream: remove an obsolete rsa1 format example from an example; + upstream: .Li -> .Vt where appropriate; from josiah frentsos, - from megan batty - ok djm + tweaked by schwarze - OpenBSD-Commit-ID: db2c89879c29bf083df996bd830abfb1e70d62bf + ok schwarze + + OpenBSD-Commit-ID: 565046e3ce68b46c2f440a93d67c2a92726de8ed -commit 0bc6b4c8f04e292577bdb44d5dc6b630d3448087 -Author: djm@openbsd.org -Date: Sun May 1 23:20:30 2022 +0000 +commit 86af013b56cecb5ee58ae0bd9d495cd586fc5918 +Author: jsg@openbsd.org +Date: Sat Sep 10 08:50:53 2022 +0000 - upstream: fix some integer overflows in sieve_large() that show up when - - trying to generate modp groups > 16k bits. Reported via GHPR#306 by Bertram - Felgenhauer, but fixed in a different way. feedback/ok tb@ + upstream: fix repeated words ok miod@ jmc@ - OpenBSD-Commit-ID: 81cbc6dd3a21c57bd6fadea10e44afe37bca558e + OpenBSD-Commit-ID: 6765daefe26a6b648cc15cadbbe337596af709b7 -commit a45615cb172bc827e21ec76750de39dfb30ecc05 +commit 0ba39b93b326a7d5dfab776cc9b9d326161a9b16 Author: djm@openbsd.org -Date: Fri Apr 29 04:55:07 2022 +0000 +Date: Fri Sep 9 03:31:42 2022 +0000 - upstream: be stricter in which characters will be accepted in + upstream: notifier_complete(NULL, ...) is a noop, so no need to test - specifying a mask length; allow only 0-9. From khaleesicodes via GHPR#278; ok - dtucker@ + that ctx!=NULL; from Corinna Vinschen - OpenBSD-Commit-ID: e267746c047ea86665cdeccef795a8a56082eeb2 - -commit 4835544d2dd31de6ffc7dba59f92093aea98155b -Author: Darren Tucker -Date: Sat Apr 30 10:56:41 2022 +1000 - - Add Mac OS X 12 test target. + OpenBSD-Commit-ID: ade2f2e9cc519d01a586800c25621d910bce384a -commit 97a6a8b8c1f2da09712d0e72d0ef800e4edd34cd -Author: Darren Tucker -Date: Fri Apr 29 18:27:34 2022 +1000 +commit be197635329feb839865fdc738e34e24afd1fca8 +Author: Sam James +Date: Thu Sep 8 02:49:29 2022 +0100 - Only run tests when source files change. + openbsd-compat/bsd-asprintf: add include for vsnprintf - Also run tests on changes to V_9_0 branch. + Fixes the following build failure with Clang 15 on musl: + ``` + bsd-asprintf.c:51:8: error: call to undeclared library function 'vsnprintf' with type 'int (char *, unsigned long, const char *, struct __va_list_tag *)'; ISO C99 and laterclang -O2 -pipe -fdiagnostics-color=always -frecord-gcc-switches -pipe -Wunknown-warning-option -Qunused-arguments -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -Wmisleading-indentation -Wbitwise-instead-of-logical -fno-strict-aliasing -mretpoline -ftrapv -fzero-call-used-regs=all -fno-builtin-memset -fstack-protector-strong -fPIE -I. -I. -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -DSSHDIR=\"/etc/ssh\" -D_PATH_SSH_PROGRAM=\"/usr/bin/ssh\" -D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/lib/misc/ssh-askpass\" -D_PATH_SFTP_SERVER=\"/usr/lib/misc/sftp-server\" -D_PATH_SSH_KEY_SIGN=\"/usr/lib/misc/ssh-keysign\" -D_PATH_SSH_PKCS11_HELPER=\"/usr/lib/misc/ssh-pkcs11-helper\" -D_PATH_SSH_SK_HELPER=\"/usr/lib/misc/ssh-sk-helper\" -D_PATH_SSH_PIDDIR=\"/run\" -D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DHAVE_CONFIG_H -c cipher-aes.c -o cipher-aes.o + do not support + implicit function declarations [-Wimplicit-function-declaration] + ret = vsnprintf(string, INIT_SZ, fmt, ap2); + ^ + bsd-asprintf.c:51:8: note: include the header or explicitly provide a declaration for 'vsnprintf' + 1 error generated. + ``` -commit 6d0392b9ff4b50a56ac5685d1b9392e2cd432ca3 +commit 6cb6f660bb35f77a0456dd2581ddf39c29398a5e Author: Darren Tucker -Date: Fri Apr 29 18:22:34 2022 +1000 +Date: Fri Sep 2 16:43:27 2022 +1000 - Remove now-empty int32_minmax.inc. + Remove DEF_WEAK, it's already in defines.h. -commit af59463553b5ad52d3b42c4455ee3c5600158bb7 -Author: djm@openbsd.org -Date: Fri Apr 29 03:24:30 2022 +0000 +commit ce39e7d8b70c4726defde5d3bc4cb7d40d131153 +Author: Darren Tucker +Date: Fri Sep 2 14:28:14 2022 +1000 - upstream: mention that the helpers are used by ssh(1), ssh-agent(1) - - and ssh-keygen(1). Previously only ssh(1) was mentioned. From Pedro - Martelletto + Resync arc4random with OpenBSD. - OpenBSD-Commit-ID: 30f880f989d4b329589c1c404315685960a5f153 + This brings us up to current, including djm's random-reseeding change, + as prompted by logan at cyberstorm.mu in bz#3467. It brings the + platform-specific hooks from LibreSSL Portable, simplified to match our + use case. ok djm@. -commit 3e26b3a6eebcee27be177207cc0846fb844b7a56 -Author: dtucker@openbsd.org -Date: Fri Apr 29 03:16:48 2022 +0000 +commit beaddde26f30e2195b8aa4f3193970e140e17305 +Author: Darren Tucker +Date: Fri Sep 2 14:20:04 2022 +1000 - upstream: Don't leak SK device. Patch from Pedro Martelletto via - - github PR#316. ok djm@ + Move OPENBSD ORIGINAL marker. - OpenBSD-Commit-ID: 17d11327545022e727d95fd08b213171c5a4585d + Putting this after the copyright statement (which doesn't change) + instead of before the version identifier (which does) prevents merge + conflicts when resyncing changes. -commit 247082b5013f0d4fcae8f97453f2a2f01bcda811 -Author: djm@openbsd.org -Date: Fri Apr 29 03:13:32 2022 +0000 +commit c83e467ead67a8cb48ef4bec8085d6fb880a2ff4 +Author: Darren Tucker +Date: Fri Sep 2 14:17:28 2022 +1000 - upstream: fix memleak on session-bind path; from Pedro Martelletto, ok - - dtucker@ + Remove arc4random_uniform from arc4random.c - OpenBSD-Commit-ID: e85899a26ba402b4c0717b531317e8fc258f0a7e + This was previously moved into its own file (matching OpenBSD) which + prematurely committed in commit 73541f2. -commit e05522008092ceb86a87bdd4ad7878424315db89 +commit 5f45c2395c60865e59fa44152ff1d003a128c5bc Author: djm@openbsd.org -Date: Thu Apr 28 02:53:31 2022 +0000 +Date: Fri Sep 2 04:20:02 2022 +0000 - upstream: avoid printing hash algorithm twice; from lucas AT sexy.is + upstream: sk-usbhid: fix key_lookup() on tokens with built-in UV - OpenBSD-Commit-ID: 9d24671e10a84141b7c504396cabad600e47a941 - -commit 0979e29356915261d69a9517a1e0aaade7c9fc75 -Author: dtucker@openbsd.org -Date: Wed Apr 27 11:08:55 2022 +0000 - - upstream: Add authfd path to debug output. ok markus@ + explicitly test whether the token performs built-in UV (e.g. biometric + tokens) and enable UV in that case. From Pedro Martelletto via GHPR#388 - OpenBSD-Commit-ID: f735a17d1a6f2bee63bfc609d76ef8db8c090890 + OpenBSD-Commit-ID: 007eb7e387d27cf3029ab06b88224e03eca62ccd -commit 67b7c784769c74fd4d6b147d91e17e1ac1a8a96d -Author: dtucker@openbsd.org -Date: Tue Apr 26 07:41:44 2022 +0000 +commit 03277a4aa49b80af541a3e691f264c0c0d8f9cec +Author: Darren Tucker +Date: Wed Aug 31 20:26:30 2022 +1000 - upstream: Check sshauthopt_new() for NULL. bz#3425, from - - tessgauthier at microsoft.com. ok djm@ - - OpenBSD-Commit-ID: af0315bc3e44aa406daa7e0ae7c2d719a974483f + Move sftp from valgrind-2 to 3 to rebalance. -commit d571314d14b919fbd7c84a61f9bf2065fc0a6841 -Author: millert@openbsd.org -Date: Wed Apr 20 16:00:25 2022 +0000 +commit fcf5365da69c516817321ba89c3a91df98d098df +Author: djm@openbsd.org +Date: Wed Aug 31 02:56:40 2022 +0000 - upstream: Remove unnecessary includes: openssl/hmac.h and - - openssl/evp.h. From Martin Vahlensieck. + upstream: whitespace - OpenBSD-Commit-ID: a6debb5fb0c8a44e43e8d5ca7cc70ad2f3ea31c3 + OpenBSD-Commit-ID: c2bcbf93610d3d62ed206cdf9bf9ff98c6aaf232 -commit da8dddf8cc1f2516ff894b8183e83a7c5ba3ef80 -Author: millert@openbsd.org -Date: Wed Apr 20 15:59:18 2022 +0000 +commit e60136a3d7a223dd8e84ba8a6895bc3142360993 +Author: Damien Miller +Date: Mon Aug 29 13:27:45 2022 +1000 - upstream: Add missing includes of stdlib.h and stdint.h. We need - - stdlib.h for malloc(3) and stdint.h for SIZE_MAX. Unlike the other xmss - files, ssh-xmss.c does not include xmss_commons.h so ssh-xmss.c must include - those headers itself. From Martin Vahlensieck - - OpenBSD-Commit-ID: 70e28a9818cee3da1be2ef6503d4b396dd421e6b + additional keys -commit fe9d87a6800a7a33be08f4d5ab662a758055ced2 -Author: millert@openbsd.org -Date: Wed Apr 20 15:56:49 2022 +0000 +commit 2b02dcb505288c462d1b5dd1ac04e603d01340eb +Author: Damien Miller +Date: Mon Aug 29 13:23:43 2022 +1000 - upstream: Avoid an unnecessary xstrdup in rm_env() when matching - - patterns. Since match_pattern() doesn't modify its arguments (they are - const), there is no need to make an extra copy of the strings in - options->send_env. From Martin Vahlensieck + cross-sign allowed_signers with PGP key - OpenBSD-Commit-ID: 2c9db31e3f4d3403b49642c64ee048b2a0a39351 + Provides continuity of trust from legacy PGP release key to + the SSHSIG signing keys that we will use henceforth for git + signing. -commit 7bf2eb958fbb551e7d61e75c176bb3200383285d +commit 51b345f177ae981b8755f6bdf8358b1cc5e83d67 Author: Darren Tucker -Date: Tue Apr 26 23:30:59 2022 +1000 +Date: Sat Aug 27 21:49:27 2022 +1000 - Add debian-riscv64 test target. + Add libcrypt-devel to cygwin-release deps. + + Based on feedback from vinschen at redhat.com. -commit 3913c935523902482974c4c503bcff20bd850a6a +commit 9f81736cf16dd8dda1c8942f1973a5f80b8cd78c Author: Darren Tucker -Date: Mon Apr 25 17:20:06 2022 +1000 +Date: Sat Aug 27 09:37:40 2022 +1000 - Update OpenSSL and LibreSSL versions in tests. + Add Windows 2022 test targets. -commit dcd8dca29bcdb193ff6be35b96fc55e6e30d37d9 +commit 85e1a69243f12be8520438ad6a3cfdc0b7fcbb2d Author: Darren Tucker -Date: Sat Apr 23 20:40:28 2022 +1000 +Date: Fri Aug 26 16:26:06 2022 +1000 - Include stdlib.h for free() prototype. + Add cygwin-release test target. - ... which is used inside the CUSTOM_SYS_AUTH_GET_LASTLOGIN_MSG block. + This also moves the cygwin package install from the workflow file to + setup_ci.sh so that we can install different sets of Cygwin packages + for different test configs. -commit 4cc05de568e1c3edd7834ff3bd9d8214eb34861b -Author: Darren Tucker -Date: Sat Apr 23 20:17:26 2022 +1000 +commit 92382dbe8bf9ea1225b16858f9b9b208c15c7e8d +Author: djm@openbsd.org +Date: Fri Aug 26 08:16:27 2022 +0000 - Cache timezone data in capsicum sandbox. + upstream: whitespace - From emaste at freebsd.org, originally part of FreeBSD commit r339216 - / fc3c19a9 with autoconf bits added by me. + OpenBSD-Commit-ID: a5d015efbfd228dc598ffdef612d2da3a579e5d8 -commit c31404426d212e2964ff9e5e58e1d0fce3d83f27 -Author: dtucker@openbsd.org -Date: Thu Apr 21 01:36:46 2022 +0000 +commit 70a5de0a50e84d7250eb4e4537f765599f64c4af +Author: djm@openbsd.org +Date: Fri Aug 26 08:12:56 2022 +0000 - upstream: It looks like we can't completely avoid - - waiting for processes to exit so retrieve the pid via controlmaster and - use that. + upstream: whitespace - OpenBSD-Regress-ID: 8246f00f22b14e49d2ff1744c94897ead33d457b + OpenBSD-Commit-ID: d297e4387935d4aef091c5e9432578c2e513f538 -commit d19b21afab5c8e2f3df6bd8aee9766bdad3d8c58 -Author: dtucker@openbsd.org -Date: Wed Apr 20 13:25:55 2022 +0000 +commit 3a683a19fd116ea15ebf8aa13d02646cceb302a9 +Author: Damien Miller +Date: Fri Aug 26 14:23:55 2022 +1000 - upstream: Use ssh -f and ControlPersist .. - - to start up test forwards and ssh -O stop to shut them down intead of - sleep loops. This speeds up the test by an order of magnitude. - - OpenBSD-Regress-ID: eb3db5f805100919b092a3b2579c611fba3e83e7 + initial list of allowed signers + +commit 6851f4b8c3fc1b3e1114c56106e4dc31369c8513 +Author: Darren Tucker +Date: Fri Aug 19 17:22:18 2022 +1000 -commit 5f76286a126721fa005de6edf3d1c7a265555f19 -Author: dtucker@openbsd.org -Date: Wed Apr 20 05:24:13 2022 +0000 + Install Cygwin packages based on OS not config. - upstream: Simplify forward-control test. +commit f96480906893ed93665df8cdf9065865c51c1475 +Author: djm@openbsd.org +Date: Fri Aug 19 06:07:47 2022 +0000 + + upstream: attemp FIDO key signing without PIN and use the error - Since we no longer need to support SSH1 we don't need to run shell - commands on the other end of the connection and can use ssh -N instead. - This also makes the test less racy. + code returned to fall back only if necessary. Avoids PIN prompts for FIDO + tokens that don't require them; part of GHPR#302 - OpenBSD-Regress-ID: 32e94ce272820cc398f30b848b2b0f080d10302c + OpenBSD-Commit-ID: 4f752aaf9f2e7c28bcaaf3d4f8fc290131bd038e -commit 687bbf23572d8bdf25cbbcdf8ac583514e1ba710 +commit 5453333b5d28e313284cb9aae82899704103f98d Author: djm@openbsd.org -Date: Thu Mar 31 03:07:33 2022 +0000 +Date: Fri Aug 19 05:53:28 2022 +0000 - upstream: regression test for sftp cp command + upstream: remove incorrect check that can break enrolling a - OpenBSD-Regress-ID: c96bea9edde3a384b254785e7f9b2b24a81cdf82 + resident key (introduced in r1.40) + + OpenBSD-Commit-ID: 4cab364d518470e29e624af3d3f9ffa9c92b6f01 -commit f1233f19a6a9fe58f52946f50df4772f5b136761 +commit ff89b1bed80721295555bd083b173247a9c0484e Author: dtucker@openbsd.org -Date: Wed Apr 20 01:13:47 2022 +0000 +Date: Fri Aug 19 04:02:46 2022 +0000 - upstream: Import regenerated moduli + upstream: Strictly enforce the maximum allowed SSH2 banner size in - OpenBSD-Commit-ID: f9a0726d957cf10692a231996a1f34e7f9cdfeb0 + ssh-keyscan and prevent a one-byte buffer overflow. Patch from Qualys, ok + djm@ + + OpenBSD-Commit-ID: 6ae664f9f4db6e8a0589425f74cd0bbf3aeef4e4 -commit fec014785de198b9a325d1b94e324bb958c5fe7b -Author: djm@openbsd.org -Date: Wed Apr 20 04:19:11 2022 +0000 +commit 1b470b9036639cef4f32fb303bb35ea0b711178d +Author: Darren Tucker +Date: Fri Aug 19 15:18:09 2022 +1000 - upstream: Try to continue running local I/O for channels in state - - OPEN during SSH transport rekeying. The most visible benefit is that it - should make ~-escapes work in the client (e.g. to exit) if the connection - happened to have stalled during a rekey event. Based work by and ok dtucker@ - - OpenBSD-Commit-ID: a66e8f254e92edd4ce09c9f750883ec8f1ea5f45 + Fix cygwin conditional steps. -commit e68154b0d4f0f5085a050ea896955da1b1be6e30 -Author: dtucker@openbsd.org -Date: Wed Apr 20 01:13:47 2022 +0000 +commit fd6ee741ab16714b7035d60aca924123ba28135a +Author: Darren Tucker +Date: Fri Aug 19 15:12:57 2022 +1000 - upstream: Import regenerated moduli - - OpenBSD-Commit-ID: f9a0726d957cf10692a231996a1f34e7f9cdfeb0 + Add a bit more debug output. -commit 69928b106d8f0fa15b88cf3850d992ed81c44ae0 -Author: tj@openbsd.org -Date: Sat Apr 16 00:22:31 2022 +0000 +commit a9305c4c739f4d91a3d3a92c0b6d4949404a36c5 +Author: Darren Tucker +Date: Fri Aug 12 15:08:47 2022 +1000 - upstream: list the correct version number - - for when usage of the sftp protocol became default and fix a typo - from ed maste + Add Cygwin (on windows-2019) test target. - OpenBSD-Commit-ID: 24e1795ed2283fdeacf16413c2f07503bcdebb31 + In addition to installing the requisite Cygwin packages, we also need to + explicitly invoke "sh" for steps that run other scripts since the runner + environment doesn't understand #! paths. -commit 21042a05c0b304c16f655efeec97438249d2e2cc -Author: dtucker@openbsd.org -Date: Tue Apr 12 05:09:49 2022 +0000 +commit 5062ad48814b06162511c4f5924a33d97b6b2566 +Author: djm@openbsd.org +Date: Fri Aug 19 03:06:30 2022 +0000 - upstream: Correct path for system known hosts file in description - - of IgnoreUserKnownHosts. Patch from Martin Vahlensieck via tech@ + upstream: double free() in error path; from Eusgor via GHPR333 - OpenBSD-Commit-ID: 9b7784f054fa5aa4d63cb36bd563889477127215 + OpenBSD-Commit-ID: 39f35e16ba878c8d02b4d01d8826d9b321be26d4 -commit 53f4aff60a7c1a08a23917bd47496f8901c471f5 +commit 5a5c580b48fc6006bdfa731fc2f6d4945c2c0e4e Author: Darren Tucker -Date: Sat Apr 16 14:33:20 2022 +1000 +Date: Thu Aug 18 21:36:39 2022 +1000 - Resync moduli.5 with upstream. + Check for perms to run agent-getpeereid test. - 1.18: remove duplicate publication year; carsten dot kunze at arcor dot de - 1.19: ssh-keygen's -G/-T have been replaced with -M generate/screen. + Ubuntu 22.04 defaults to private home dirs which prevents "nobody" + running ssh-add during the agent-getpeereid test. Check for this and + add the necessary permissions. -commit d2b888762b9844eb0d8eb59909cdf5af5159f810 -Author: Darren Tucker -Date: Sat Apr 16 14:31:13 2022 +1000 +commit cd06a76b7ccc706e2bb4f1cc4aa9e9796a28a812 +Author: Damien Miller +Date: Wed Aug 17 16:04:16 2022 +1000 - Retire fbsd6 test VM. + on Cygwin, prefer WinHello FIDO device - It's long since out of support, relatively slow (it's i686) and the - compiler has trouble with PIE. + If no FIDO device was explictly specified, then prefer the + windows://hello FIDO device. An exception to this is when + probing resident FIDO keys, in which case hardware FIDO + devices are preferred. -commit cd1f70009860a154b51230d367c55ea5f9a4504e +commit 47f72f534ac5cc2cd3027675a3df7b00a8f77575 Author: djm@openbsd.org -Date: Mon Apr 11 22:52:08 2022 +0000 +Date: Wed Aug 17 06:01:57 2022 +0000 - upstream: clear io_want/io_ready flags at start of poll() cycle; + upstream: add an extra flag to sk_probe() to indicate whether we're - avoids plausible spin during rekeying if channel io_want flags are reused - across cycles. ok markus@ deraadt@ + probing for a FIDO resident key or not. Unused here, but will make like + easier for portable - OpenBSD-Commit-ID: 91034f855b7c73cd2591657c49ac30f10322b967 + OpenBSD-Commit-ID: 432c8ff70e270378df9dbceb9bdeaa5b43b5a832 -commit aa1920302778273f7f94c2091319aba199068ca0 -Author: dtucker@openbsd.org -Date: Fri Apr 8 05:43:39 2022 +0000 +commit edb0bcb3c79b16031dc87a8e57aecc3c4a3414f0 +Author: jmc@openbsd.org +Date: Tue Aug 16 20:24:08 2022 +0000 - upstream: Note that curve25519-sha256 was later published in - - RFC8731. ok djm@ + upstream: use .Cm for "sign"; from josiah frentsos - OpenBSD-Commit-ID: 2ac2b5d642d4cf5918eaec8653cad9a4460b2743 + OpenBSD-Commit-ID: 7f80a53d54857ac6ae49ea6ad93c5bd12231d1e4 -commit 4673fa8f2be983f2f88d5afd754adb1a2a39ec9e -Author: djm@openbsd.org -Date: Fri Apr 8 04:40:40 2022 +0000 +commit cccb011e130cbbac538b1689d10e4a067298df8b +Author: Corinna Vinschen +Date: Thu Aug 11 20:19:35 2022 +0200 - upstream: two defensive changes from Tobias Stoeckmann via GHPR287 + Revert "check_sk_options: add temporary WinHello workaround" - enforce stricter invarient for sshbuf_set_parent() - never allow - a buffer to have a previously-set parent changed. + Cygwin now comes with libfido2 1.11.0, so this workaround + isn't required anymore. - In sshbuf_reset(), if the reallocation fails, then zero the entire - buffer and not the (potentially smaller) default initial alloc size. + This reverts commit 242c044ab111a37aad3b0775727c36a4c5f0102c. - OpenBSD-Commit-ID: 14583203aa5d50ad38d2e209ae10abaf8955e6a9 + Signed-off-by: Corinna Vinschen -commit 26eef015e2d2254375e13afaaf753b78932b1bf5 -Author: Damien Miller -Date: Mon Apr 11 16:07:09 2022 +1000 +commit 9468cd7cf9d989dfa2ac20e2a0268ba6e93bfa5a +Author: Corinna Vinschen +Date: Thu Aug 11 20:18:17 2022 +0200 - Revert "update build-aux files to match autoconf-2.71" + fido_dev_is_winhello: return 0, not "false" - This reverts commit 0a8ca39fac6ad19096b6c263436f8b2dd51606f2. + "false" is not used anywhere in OpenSSH, so return 0 like + everywhere else. - It turns out that the checked-in copies of these files are actually newer - than autoconf-2.71's copies, so this was effectively a downgrade. - Spotted by Bo Anderson via github + Signed-off-by: Corinna Vinschen -commit 0a8ca39fac6ad19096b6c263436f8b2dd51606f2 -Author: Damien Miller -Date: Fri Apr 8 14:48:58 2022 +1000 +commit 730a80609472ee0451c99482d75c9c41f3ebc42d +Author: djm@openbsd.org +Date: Fri Aug 12 05:20:28 2022 +0000 - update build-aux files to match autoconf-2.71 + upstream: sftp-server: support home-directory request - i.e. config.guess, config.sub and install-sh + Add support to the sftp-server for the home-directory extension defined + in draft-ietf-secsh-filexfer-extensions-00. This overlaps a bit with the + existing expand-path@openssh.com, but uses a more official protocol name, + and so is a bit more likely to be implemented by non-OpenSSH clients. + + From Mike Frysinger, ok dtucker@ + + OpenBSD-Commit-ID: bfc580d05cc0c817831ae7ecbac4a481c23566ab -commit 94eb6858efecc1b4f02d8a6bd35e149f55c814c8 -Author: Damien Miller -Date: Wed Apr 6 10:47:48 2022 +1000 +commit 5e820bf79ce3ce99ef7e98b0ab642b0a0a4f396c +Author: Darren Tucker +Date: Fri Aug 12 14:56:55 2022 +1000 - update version numbers for release + Replace deprecated ubuntu-18.04 runners with 22.04 -commit 8e4a8eadf4fe74e65e6492f34250f8cf7d67e8da -Author: djm@openbsd.org -Date: Mon Apr 4 22:45:25 2022 +0000 +commit 87b0d9c1b789d3ff958ec45df2ac912e24461bae +Author: Darren Tucker +Date: Thu Aug 11 22:48:23 2022 +1000 - upstream: openssh-9.0 + Add a timegm implementation from Heimdal via Samba. - OpenBSD-Commit-ID: 0dfb461188f4513ec024c1534da8c1ce14c20b64 + Fixes build on (at least Solaris 10). -commit a9f23ea2e3227f406880c2634d066f6f50fa5eaa -Author: naddy@openbsd.org -Date: Thu Mar 31 17:58:44 2022 +0000 +commit d0c4fa58594577994921b593f10037c5282597ca +Author: Darren Tucker +Date: Thu Aug 11 14:23:58 2022 +1000 - upstream: ssh: document sntrup761x25519-sha512@openssh.com as - - default KEX - - OpenBSD-Commit-ID: 12545bfa10bcbf552d04d9d9520d0f4e98b0e171 + Rerun tests if any .github config file changes. -commit 9ec2713d122af79d66ebb9c1d6d9ae8621a8945f -Author: naddy@openbsd.org -Date: Thu Mar 31 17:27:27 2022 +0000 +commit 113fe6c77ab43769fc61e953d07cb619fd7ea54b +Author: Darren Tucker +Date: Thu Aug 11 13:33:51 2022 +1000 - upstream: man pages: add missing commas between subordinate and - - main clauses - - jmc@ dislikes a comma before "then" in a conditional, so leave those - untouched. + Skip hostbased during Valgrind tests. - ok jmc@ + Valgrind doesn't let ssh exec ssh-keysign (because it's setuid) so skip + it during the Valgrind based tests. - OpenBSD-Commit-ID: 9520801729bebcb3c9fe43ad7f9776ab4dd05ea3 - -commit 3741df98ffaaff92b474ee70d8ef276b5882f85a -Author: Darren Tucker -Date: Mon Apr 4 23:52:11 2022 +1000 - - Disable security key on fbsd6 test host. + See https://bugs.kde.org/show_bug.cgi?id=119404 for a discussion of this + (ironically there the problematic binary was ssh(1) back when it could + still be setuid). -commit 32c12236f27ae83bfe6d2983b67c9bc67a83a417 -Author: Darren Tucker -Date: Mon Apr 4 15:16:51 2022 +1000 +commit b98a42afb69d60891eb0488935990df6ee571c4d +Author: djm@openbsd.org +Date: Thu Aug 11 01:57:50 2022 +0000 - Specify TEST_SHELL=bash on AIX. + upstream: add some tests for parse_absolute_time(), including cases - The system shells cause the agent-restrict test to fail due to some - quoting so explicitly specify bash until we can get configure to - autmatically work around that. + where it is forced to the UTC timezone. bz3468 ok dtucker + + OpenBSD-Regress-ID: ea07ca31c2f3847a38df028ca632763ae44e8759 -commit 90452c8b69d065b7c7c285ff78b81418a75bcd76 -Author: Darren Tucker -Date: Fri Apr 1 23:38:44 2022 +1100 +commit ec1ddb72a146fd66d18df9cd423517453a5d8044 +Author: djm@openbsd.org +Date: Thu Aug 11 01:56:51 2022 +0000 - Only return events from ppoll that were requested. + upstream: allow certificate validity intervals, sshsig verification - If the underlying system's select() returns bits that were not in the - request set, our ppoll() implementation can return revents for events - not requested, which can apparently cause a hang. Only return revents - for activity in the requested event set. bz#3416, analysis and fix by - yaroslav.kuzmin at vmssoftware com, ok djm@ + times and authorized_keys expiry-time options to accept dates in the UTC time + zone in addition to the default of interpreting them in the system time zone. + YYYYMMDD and YYMMDDHHMM[SS] dates/times will be interpreted as UTC if + suffixed with a 'Z' character. + + Also allow certificate validity intervals to be specified in raw + seconds-since-epoch as hex value, e.g. -V 0x1234:0x4567890. This + is intended for use by regress tests and other tools that call + ssh-keygen as part of a CA workflow. + + bz3468 ok dtucker + + OpenBSD-Commit-ID: 454db1cdffa9fa346aea5211223a2ce0588dfe13 -commit 6c49eb5fabc56f4865164ed818aa5112d09c31a8 +commit 4df246ec75751da7eb925e1880498300d8bda187 Author: Darren Tucker -Date: Fri Apr 1 23:21:40 2022 +1100 +Date: Thu Aug 11 10:23:55 2022 +1000 - Only run regression tests on slow VMs. + Fix conditional for running hostbased tests. -commit f67e47903977b42cb6abcd5565a61bd7293e4dc3 -Author: Darren Tucker -Date: Fri Apr 1 23:21:06 2022 +1100 +commit 2580916e48721802220c61ce9e0df1297c00bc07 +Author: Damien Miller +Date: Thu Aug 11 08:58:28 2022 +1000 - Increase test timeout to allow slow VMs to finish + fix SANDBOX_SECCOMP_FILTER_DEBUG -commit 02488c1b54065ddc4f25835dbd2618b2a2fe21f5 +commit fdbd5bf507fc271ff813714fab8a72ff2c6cb5ca Author: Darren Tucker -Date: Fri Apr 1 16:27:38 2022 +1100 +Date: Wed Aug 10 17:35:52 2022 +1000 - Use bash or ksh if available for SH in Makefile. + Test hostbased auth on github runners. -commit 34c7018c316af4773e432066de28d0ef9d0888cd +commit 7e2f51940ba48a1c0fae1107801ea643fa83c971 Author: Darren Tucker -Date: Fri Apr 1 14:56:54 2022 +1100 +Date: Wed Aug 10 17:25:24 2022 +1000 - Set Makefile SHELL as determined by configure. + Rename our getentropy to prevent possible loops. - This should improve compatibility for users with non-POSIX shells. If - using Makefile.in directly (eg make -f Makefile.in distprep) then SHELL - will need to be specified on the command line (along with MANFMT in that - particular case). ok djm@ + Since arc4random seeds from getentropy, and we use OpenSSL for that + if enabled, there's the possibility that if we build on a system that + does not have getentropy then run on a system that does have it, then + OpenSSL could end up calling our getentropy and getting stuck in a loop. + Pointed out by deraadt@, ok djm@ -commit 5b054d76402faab38c48377efd112426469553a0 +commit 7a01f61be8d0aca0e975e7417f26371495fe7674 Author: Darren Tucker -Date: Fri Apr 1 13:16:47 2022 +1100 - - Skip slow tests on (very) slow test targets. - -commit b275818065b31a865142c48c2acf6a7c1655c542 -Author: Damien Miller -Date: Thu Mar 31 14:11:36 2022 +1100 +Date: Mon Aug 8 12:17:04 2022 +1000 - depend + Actually put HAVE_STDINT_H around the stdint.h. -commit 3fa539c3ffaabd6211995512d33e29150f88c5c5 -Author: djm@openbsd.org -Date: Thu Mar 31 03:07:03 2022 +0000 +commit 73541f29f0b50480da6c20dceb7a7191bd8ea7d3 +Author: Darren Tucker +Date: Mon Aug 8 10:30:34 2022 +1000 - upstream: add a sftp client "cp" command that supports server-side - - copying of files. Useful for this task and for testing the copy-data - extension. Patch from Mike Frysinger; ok dtucker@ + Give unused param a name. - OpenBSD-Commit-ID: 1bb1b950af0d49f0d5425b1f267e197aa1b57444 + Fixes builds on platforms that do have fido2 but don't have + fido_dev_is_winhello. -commit 7988bfc4b701c4b3fe9b36c8561a3d1c5d4c9a74 +commit 2a108c0ea960381bd9b14ee0d84e818a23df4482 Author: djm@openbsd.org -Date: Thu Mar 31 03:05:49 2022 +0000 +Date: Fri Aug 5 05:01:40 2022 +0000 - upstream: add support for the "corp-data" protocol extension to - - allow server-side copies to be performed without having to go via the client. - Patch by Mike Frysinger, ok dtucker@ + upstream: don't prompt for FIDO passphrase before attempting to enroll - OpenBSD-Commit-ID: 00aa510940fedd66dab1843b58682de4eb7156d5 - -commit 32dc1c29a4ac9c592ddfef0a4895eb36c1f567ba -Author: djm@openbsd.org -Date: Wed Mar 30 21:13:23 2022 +0000 - - upstream: select post-quantum KEX + the credential, just let the enroll operating fail and we'll attempt to get a + PIN anyway. Might avoid some unneccessary PIN prompts. - sntrup761x25519-sha512@openssh.com as the default; ok markus@ + Part of GHPR#302 from Corinna Vinschen; ok dtucker@ - OpenBSD-Commit-ID: f02d99cbfce22dffec2e2ab1b60905fbddf48fb9 + OpenBSD-Commit-ID: bd5342ffc353ee37d39617906867c305564d1ce2 -commit d6556de1db0822c76ba2745cf5c097d9472adf7c -Author: djm@openbsd.org -Date: Wed Mar 30 21:10:25 2022 +0000 +commit 2886975c0ad9244e60dc5e4be34fde3aa573a4b5 +Author: Corinna Vinschen +Date: Fri Feb 11 14:33:41 2022 +0100 - upstream: fix poll() spin when a channel's output fd closes without + sk_sign: set FIDO2 uv attribute explicitely for WinHello - data in the channel buffer. Introduce more exact packing of channel fds into - the pollfd array. fixes bz3405 and bz3411; ok deraadt@ markus@ + WinHello via libfido2 performs user verification by default. + However, if we stick to that, there's no way to differentiate + between keys created with or without "-O verify-required". + Set FIDO2 uv attribute explicitely to FIDO_OPT_FALSE, then check + if user verification has been requested. - OpenBSD-Commit-ID: 06740737849c9047785622ad5d472cb6a3907d10 + Signed-off-by: Corinna Vinschen -commit 8a74a96d25ca4d32fbf298f6c0ac5a148501777d -Author: djm@openbsd.org -Date: Wed Mar 30 04:33:09 2022 +0000 +commit 242c044ab111a37aad3b0775727c36a4c5f0102c +Author: Corinna Vinschen +Date: Tue Feb 15 11:28:08 2022 +0100 - upstream: ssh is almost out of getopt() characters; note the + check_sk_options: add temporary WinHello workaround - remaining remaining available ones in a comment + Up to libfido 1.10.0, WinHello advertises "clientPin" rather + than "uv" capability. This is fixed in 1.11.0. For the time + being, workaround it here. - OpenBSD-Commit-ID: 48d38cef59d6bc8e84c6c066f6d601875d3253fd + Signed-off-by: Corinna Vinschen -commit 6d4fc51adb9d8a42f67b5474f02f877422379de6 -Author: djm@openbsd.org -Date: Wed Mar 30 04:27:51 2022 +0000 +commit 78774c08cc4b4997382975b0f414a86e06b6780c +Author: Corinna Vinschen +Date: Thu Feb 10 18:19:29 2022 +0100 - upstream: avoid NULL deref via ssh-keygen -Y find-principals. - - bz3409, reported by Mateusz Adamowski + compat code for fido_dev_is_winhello() - OpenBSD-Commit-ID: a3b2c02438052ee858e0ee18e5a288586b5df2c5 - -commit e937514920335b92b543fd9be79cd6481d1eb0b6 -Author: Darren Tucker -Date: Mon Mar 28 17:51:03 2022 +1100 - - Add AIX 5.1 test target. + Signed-off-by: Corinna Vinschen -commit 4bbe815ba974b4fd89cc3fc3e3ef1be847a0befe +commit 3d3a932a019aedfb891e0779bb4990cd5008a390 Author: Darren Tucker -Date: Sat Mar 26 22:01:31 2022 +1100 +Date: Fri Aug 5 13:12:27 2022 +1000 - Drop leading "v" from release version identifier. + Factor out getrnd() and rename to getentropy(). - It's present in the git tags but not in the release tarball names. - Also drop extra "/" from URL path. + Factor out the arc4random seeding into its own file and change the + interface to match getentropy. Use native getentropy if available. + This will make it easier to resync OpenBSD changes to arc4random. + Prompted by bz#3467, ok djm@. -commit f5cdd3b3c275dffaebfca91df782dca29975e9ac +commit 9385d277b787403be9dfcb229cf372202496d2f3 Author: Darren Tucker -Date: Sat Mar 26 16:28:04 2022 +1100 +Date: Thu Aug 4 18:55:48 2022 +1000 - Use tarballs when testing LibreSSL releases. - - This means they'll still work when the combination of -portable and - openbsd github repos no longer match. + Include CHANNEL and FIDO2 libs in configure output -commit 24dc37d198f35a7cf71bf4d5384363c7ef4209d4 -Author: Darren Tucker -Date: Sat Mar 26 15:02:45 2022 +1100 +commit 141535b904b6fba01724444f38193a8599201f82 +Author: djm@openbsd.org +Date: Mon Aug 1 11:09:26 2022 +0000 - Remove now-unused passwd variable. + upstream: avoid double-free in error path introduced in r1.70; report + + and fix based on GHPR#332 by v-rzh ok dtucker@ + + OpenBSD-Commit-ID: 3d21aa127b1f37cfc5bdc21461db369a663a951f -commit 5b467ceef2c356f0a77f5e8ab4eb0fac367e4d24 +commit dba7099ffcba3ca07b3946f017ba6a4c3158d9b1 Author: Darren Tucker -Date: Sat Mar 26 13:15:44 2022 +1100 +Date: Wed Jul 27 18:40:12 2022 +1000 - Missing semicolon. + Remove deprecated MacOS 10.15 runners. -commit 2923d026e55998133c0f6e5186dca2a3c0fa5ff5 +commit 722a56439aa5972c830e4a9a724cf52aff4a950a Author: Darren Tucker -Date: Sat Mar 26 12:49:50 2022 +1100 +Date: Wed Jul 27 18:31:14 2022 +1000 - Factor out platform-specific locked account check. + Move stale-configure check as early as possible. - Also fixes an incorrect free on platforms with both libiaf and shadow - passwords (probably only Unixware). Prompted by github PR#284, - originally from @c3h2_ctf and stoeckmann@. + We added a check in Makefile to catch the case where configure needs to + be rebuilt, however this did not happen until a build was attempted in + which case all of the work done by configure was wasted. Move this check + to the start of configure to catch it as early as possible. ok djm@ -commit d23efe4b12886ffe416be10bc0a7da6ca8aa72d1 +commit 099d6b56288b421ba38531d26dc1bd6bb685e311 Author: Darren Tucker -Date: Sat Mar 26 08:13:46 2022 +1100 - - Add OpenWRT mips and mipsel test targets. - -commit 16ea8b85838dd7a4dbeba4e51ac4f43fd68b1e5b -Author: djm@openbsd.org -Date: Sun Mar 20 08:52:17 2022 +0000 +Date: Fri Jul 22 10:47:19 2022 +1000 - upstream: don't leak argument list; bz3404, reported by Balu - - Gajjala ok dtucker@ + Move libcrypto into CHANNELLIBS. - OpenBSD-Commit-ID: fddc32d74e5dd5cff1a49ddd6297b0867eae56a6 + This will result in sftp, sftp-server and scp no longer being linked + against libcrypto. ok djm@ -commit a72bde294fe0518c9a44ba63864093a1ef2425e3 -Author: djm@openbsd.org -Date: Sun Mar 20 08:51:21 2022 +0000 +commit 1bdf86725b77733bb5f17c54888b88a10b2f6538 +Author: Darren Tucker +Date: Fri Jul 22 10:45:47 2022 +1000 - upstream: make addargs() and replacearg() a little more robust and - - improve error reporting - - make freeargs(NULL) a noop like the other free functions - - ok dtucker as part of bz3403 + Remove seed_rng calls from scp, sftp, sftp-server. - OpenBSD-Commit-ID: 15f86da83176978b4d1d288caa24c766dfa2983d - -commit 731087d2619fa7f01e675b23f57af10d745e8af2 -Author: djm@openbsd.org -Date: Fri Mar 18 04:04:11 2022 +0000 + These binaries don't use OpenSSL's random functions. The next step + will be to stop linking them against libcrypto. ok djm@ - upstream: don't try to resolve ListenAddress directives in the sshd - - re-exec path - we're never going to use the result and if the operation fails - then it can prevent connections from being accepted. Reported by Aaron - Poffenberger; with / ok dtucker@ +commit d73f77b8cb9b422f1ac4facee7890aa10ff2bc21 +Author: Darren Tucker +Date: Fri Jul 22 09:51:51 2022 +1000 + + Group libcrypto and PRNGD checks together. - OpenBSD-Commit-ID: 44c53a43909a328e2f5ab26070fdef3594eded60 + They're related more than the libcrypt or libiaf checks which are + currently between them. ok djm@ -commit 1c83c082128694ddd11ac05fdf31d70312ff1763 -Author: djm@openbsd.org -Date: Fri Mar 18 02:50:21 2022 +0000 +commit f117e372b3f42f2fbdb0a578d063b2609ab58e1f +Author: Darren Tucker +Date: Fri Jul 22 09:24:45 2022 +1000 - upstream: remove blank line + Do not link scp, sftp and sftp-server w/ zlib. - OpenBSD-Commit-ID: d5e0182965b2fbfb03ad5f256d1a1ce5706bcddf + Some of our binaries (eg sftp, sftp-server, scp) do not interact with + the channels code and thus do use libraries such as zlib and libcrypto + although they are linked with them. This adds a CHANNELLIBS and starts + by moving zlib into it, which means the aformentioned binaries are no + longer linked against zlib. ok djm@ -commit 807be68684da7a1fe969c399ddce2fafb7997dcb -Author: djm@openbsd.org -Date: Fri Mar 18 02:32:22 2022 +0000 +commit 800c2483e68db38bd1566ff69677124be974aceb +Author: Darren Tucker +Date: Mon Jul 25 21:49:04 2022 +1000 - upstream: helpful comment + Remove workarounds for OpenSSL missing AES-CTR. - OpenBSD-Commit-ID: e3315a45cb04e7feeb614d76ec80a9fe4ca0e8c7 + We have some compatibility hacks that were added to support OpenSSL + versions that do not support AES CTR mode. Since that time, however, + the minimum OpenSSL version that we support has moved to 1.0.1 which + *does* have CTR, so this is no longer needed. ok djm@ -commit a0b5816f8f1f645acdf74f7bc11b34455ec30bac -Author: djm@openbsd.org -Date: Fri Mar 18 02:31:25 2022 +0000 +commit b7c56b65c12f51fe0dbae798d19c8f58224a5d95 +Author: Darren Tucker +Date: Mon Jul 25 21:43:00 2022 +1000 - upstream: ssh-keygen -Y check-novalidate requires namespace or SEGV - - will ensue. Patch from Mateusz Adamowski via GHPR#307 + Remove workarounds for OpenSSL missing AES-GCM. - OpenBSD-Commit-ID: 99e8ec38f9feb38bce6de240335be34aedeba5fd + We have some compatibility hacks that were added to support OpenSSL + versions that do not support AES GCM mode. Since that time, however, + the minimum OpenSSL version that we support has moved to 1.0.1 which + *does* have GCM, so this is no longer needed. ok djm@ -commit 5a252d54a63be30d5ba4be76210942d754a531c0 -Author: djm@openbsd.org -Date: Tue Mar 15 05:27:37 2022 +0000 +commit 5a4a9f7a968fbf92cc1eac519c65638e79ae9f1f +Author: dtucker@openbsd.org +Date: Mon Jul 25 07:12:45 2022 +0000 - upstream: improve DEBUG_CHANNEL_POLL debugging message + upstream: Restore missing "!" in TEST_SSH_ELAPSED_TIMES test. - OpenBSD-Commit-ID: 2275eb7bc4707d019b1a0194b9c92c0b78da848f + OpenBSD-Regress-ID: 38783f9676ec348c5a792caecee9a16e354b37b0 -commit ce324cf58ba2840e31afeb996935800780c8fa4b -Author: cheloha@openbsd.org -Date: Sun Mar 13 23:27:54 2022 +0000 +commit 0ff886be132299386cc29d87c2aa16ff68a1aa08 +Author: dtucker@openbsd.org +Date: Sun Jul 24 23:29:10 2022 +0000 - upstream: ssh: xstrdup(): use memcpy(3) - - Copying the given string into the buffer with strlcpy(3) confers no - benefit in this context because we have already determined the - string's length with strlen(3) in order to allocate that buffer. - - Thread: https://marc.info/?l=openbsd-tech&m=164687525802691&w=2 + upstream: Test TEST_SSH_ELAPSED_TIMES for empty string not - ok dtucker@ millert@ + executable. No-op on most platforms but should prevent warnings in -portable + on systems that don't have 'date %s'. - OpenBSD-Commit-ID: f8bfc082e36e2d2dc4e1feece02fe274155ca11a + OpenBSD-Regress-ID: e39d79867b8065e33d0c5926fa1a31f85659d2a4 -commit 2893c5e764557f48f9d6a929e224ed49c59545db +commit f69319ad8ad1dd50f90bbcf5912e11cc8ed3e037 Author: Darren Tucker -Date: Fri Mar 11 18:43:58 2022 +1100 +Date: Sat Jul 23 14:38:22 2022 +1000 - Resync fmt_scaled. with OpenBSD. + Convert "have_prog" function into "which". - Fixes underflow reported in bz#3401. + "which" and its behaviour is not standardized, so convert the existing + have_prog function into "which" so we can rely on it being available + and what its semantics are. Add a have_prog wrapper that maintains the + existing behaviour. -commit 5ae31a0fdd27855af29f48ff027491629fff5979 +commit ea7ecc2c3ae39fdf5c6ad97b7bc0b47a98847f43 Author: Darren Tucker -Date: Wed Mar 9 09:41:56 2022 +1100 +Date: Sat Jul 23 14:36:38 2022 +1000 - Provide killpg implementation. + Skip scp3 test if there's no scp on remote path. - Based on github PR#301 for Tandem NonStop. + scp -3 ends up using the scp that's in the remote path and will fail if + one is not available. Based on a patch from rapier at psc.edu. -commit c41c84b439f4cd74d4fe44298a4b4037ddd7d2ae -Author: Darren Tucker -Date: Wed Mar 9 09:29:30 2022 +1100 +commit c46f6fed419167c1671e4227459e108036c760f8 +Author: Damien Miller +Date: Wed Jul 20 13:39:14 2022 +1000 - Check for missing ftruncate prototype. - - From github PR#301 in conjunction with rsbeckerca. + crank SSH_SK_VERSION_MAJOR in sk-dummy.so -commit 8cf5275452a950869cb90eeac7d220b01f77b12e -Author: Darren Tucker -Date: Tue Mar 8 20:04:06 2022 +1100 +commit f208e3b9ffb5ee76cf9c95df7ff967adc7f51c7d +Author: djm@openbsd.org +Date: Wed Jul 20 03:33:22 2022 +0000 - Default to not using sandbox when cross compiling. + upstream: ssh-keygen: fix touch prompt, pin retries; - On most systems poll(2) does not work when the number of FDs is reduced - with setrlimit, so assume it doesn't when cross compiling and we can't - run the test. bz#3398. + part of GHPR329 from Pedro Martelletto + + OpenBSD-Commit-ID: 75d1005bd2ef8f29fa834c90d2684e73556fffe8 -commit 379b30120da53d7c84aa8299c26b18c51c2a0dac +commit 8638a2ce7e90c8a51d9af3143404282126c524f8 Author: djm@openbsd.org -Date: Tue Mar 1 01:59:19 2022 +0000 +Date: Wed Jul 20 03:31:42 2022 +0000 - upstream: pack pollfd array before server_accept_loop() ppoll() - - call, and terminate sshd if ppoll() returns errno==EINVAL + upstream: sk-usbhid: preserve error code returned by key_lookup() - avoids spin in ppoll when MaxStartups > RLIMIT_NOFILE, reported by - Daniel Micay + it conveys useful information, such as the supplied pin being wrong. - feedback/ok deraadt + Part of GHPR329 from Pedro Martelletto - OpenBSD-Commit-ID: dbab1c24993ac977ec24d83283b8b7528f7c2c15 + OpenBSD-Commit-ID: c0647eb9290f793add363d81378439b273756c1b -commit eceafbe0bdbbd9bd2f3cf024ccb350666a9934dd -Author: naddy@openbsd.org -Date: Sun Feb 27 01:33:59 2022 +0000 +commit 9ab929ca2d820520327b41929372bcb9e261534c +Author: djm@openbsd.org +Date: Wed Jul 20 03:29:14 2022 +0000 - upstream: include rejected signature algorithm in error message and + upstream: when enrolling a resident key on a security token, check - not the (useless) key type; ok djm@ + if a credential with matching application and user ID strings already exists. + if so, prompt the user for confirmation before overwriting the credential. - OpenBSD-Commit-ID: d0c0f552a4d9161203e07e95d58a76eb602a76ff - -commit f2f3269423618a83157e18902385e720f9776007 -Author: dtucker@openbsd.org -Date: Fri Feb 25 09:46:24 2022 +0000 - - upstream: Remove the char * casts from arguments to do_lstat, + patch from Pedro Martelletto via GHPR329 - do_readdir and do_stat paths since the underlying functions now take a const - char *. Patch from vapier at gentoo.org. + NB. cranks SSH_SK_VERSION_MAJOR, so any third-party FIDO middleware + implementations will need to adjust - OpenBSD-Commit-ID: 9e4d964dbfb0ed683a2a2900711b88e7f1c0297b + OpenBSD-Commit-ID: e45e9f1bf2b2f32d9850669e7a8dbd64acc5fca4 -commit 4a66dac052c5ff5047161853f36904607649e4f9 +commit 5bcfc788b38d5b64e4c347bdc04bd9a01bbc36da Author: djm@openbsd.org -Date: Fri Feb 25 02:09:27 2022 +0000 +Date: Wed Jul 20 03:13:04 2022 +0000 - upstream: save an unneccessary alloc/free, based on patch from + upstream: pull passphrase reading and confirmation into a separate - Martin Vahlensieck; ok dtucker@ + function so it can be used for FIDO2 PINs; no functional change - OpenBSD-Commit-ID: 90ffbf1f837e509742f2c31a1fbf2c0fd376fd5f - -commit 6f117cb151efe138ac57bdd8e26165f350328f5f -Author: Darren Tucker -Date: Tue Mar 1 09:02:06 2022 +1100 - - Remove unused ivbits argument from chacha_keysetup - -commit 15974235dd528aeab0ec67fb92a0a1d733f62be2 -Author: Darren Tucker -Date: Tue Mar 1 09:00:20 2022 +1100 - - Add OPENBSD ORIGINAL marker. + OpenBSD-Commit-ID: bf34f76b8283cc1d3f54633e0d4f13613d87bb2f -commit f2ff669347d320532e7c1b63cdf5c62f46e73150 +commit eb679e2959bdb15454eb94751930eb4c9110da94 Author: Darren Tucker -Date: Mon Feb 28 22:21:36 2022 +1100 +Date: Fri Jul 15 21:31:48 2022 +1000 - No unused param warnings for clang-12 and gcc-11. + Move vmshutdown to first step. - These have too many false positives in -Werror tests on the github CI - since we often provide empty stub functions for functionality not needed - for particular configurations. + If a previous run on a physical runner has failed to clean up, the next + run will fail because it'll try to check out the code to a broken + directory mount. Make cleanup the first step. -commit 96558ecd87adac62efa9a2b5479f686ab86b0be1 +commit 46b91b70ff3cb9c147e2875ef5dc609fd64c0c96 Author: Darren Tucker -Date: Sat Feb 26 14:10:41 2022 +1100 +Date: Fri Jul 15 20:25:27 2022 +1000 - Add debian-i386 test target. + Rename bbone test target to ARM. -commit 284b6e5394652d519e31782e3b3cdfd7b21d1a81 +commit 751d22cdeffed9fe921db78eedc32a29f9e80510 Author: Darren Tucker -Date: Sat Feb 26 14:06:14 2022 +1100 +Date: Fri Jul 15 13:37:29 2022 +1000 - Allow ppoll_time64 in seccomp sandbox. + Add AUDIT_ARCH_PPC to supported seccomp arches. - Should fix sandbox violations on (some? at least i386 and armhf) 32bit - Linux platforms. Patch from chutzpahu at gentoo.org and cjwatson at - debian.org via bz#3396. + Patch from dries.deschout at dodeco.eu. -commit 0132056efabc5edb85c3c7105d2fb6dee41843c6 +commit a061792a6e8d235fc40a9b5d4c22a1762bb75a7b Author: Darren Tucker -Date: Fri Feb 25 19:47:48 2022 +1100 +Date: Thu Jul 14 19:20:24 2022 +1000 - Improve handling of _getshort and _getlong. + Remove unintended changes. - If the system native ones are exactly as required then use them, - otherwise use the local versions mapped to another name to prevent - name collisions. + I inadvertently included a couple of local changes with the OpenSSL + 3.0.4 change. Revert, anything that should be there will be committed + separately. -commit 8e206e0dd6b9f757b07979e48f53ad5bf9b7b52b +commit 527cb43fa1b4e55df661feabbac51b8e608b6519 Author: Darren Tucker -Date: Fri Feb 25 15:14:22 2022 +1100 +Date: Thu Jul 14 11:22:08 2022 +1000 - Constify utimes in compat library to match specs. + Return ERANGE from getcwd() if buffer size is 1. - Patch from vapier at chromium.org. + If getcwd() is supplied a buffer size of exactly 1 and a path of "/", it + could result in a nul byte being written out of array bounds. POSIX says + it should return ERANGE if the path will not fit in the available buffer + (with terminating nul). 1 byte cannot fit any possible path with its nul, + so immediately return ERANGE in that case. + + OpenSSH never uses getcwd() with this buffer size, and all current + (and even quite old) platforms that we are currently known to work + on have a native getcwd() so this code is not used on those anyway. + Reported by Qualys, ok djm@ -commit 1b2920e3b63db2eddebeec7330ffe8b723055573 +commit 36857fefd8849c4b0e877cfd9d1eb22f79b76650 Author: Darren Tucker -Date: Fri Feb 25 13:50:56 2022 +1100 +Date: Thu Jul 14 10:02:35 2022 +1000 - ANSIfy getshort and getlong. + Split README.platform into its own line. - These functions appear to have come from OpenBSD's lib/libc/net/res_comp.c - which made this change in 2005. + README.platform has general platform-specific information, having it + following text about FIDO2 on the same line could imply that it only + has information about FIDO2. -commit 54a86f4f6e1c43a2ca2be23ef799ab8910d4af70 +commit 00a496c6c14f2d41f2a9365714d494dd5f3aac9f Author: Darren Tucker -Date: Fri Feb 25 13:23:04 2022 +1100 +Date: Thu Jul 14 09:56:01 2022 +1000 - Use PICFLAG instead of hard coding -fPIC. + Clarify README.md text. + + Clarify the text about the implications of building without OpenSSL, and + prefix the "configure --help" example command with a "./" so it's likely + to work as-is in more shells. From bz#3461. -commit 3016ba47035ac3561aabd48e2be70167fe157d6a +commit f40b52f21fbc52eb513279168a49d3285c65256c Author: Darren Tucker -Date: Fri Feb 25 11:37:11 2022 +1100 - - Add tests for latest releases of {Libre,Open}SSL. - -commit f107467179428a0e3ea9e4aa9738ac12ff02822d -Author: Colin Watson -Date: Thu Feb 24 16:04:18 2022 +0000 +Date: Tue Jul 12 19:48:44 2022 +1000 - Improve detection of -fzero-call-used-regs=all support + Remove special casing of crypt(). + + Configure goes to some lengths to pick crypt() from either libcrypt + or OpenSSL's libcrypto because they can more or less featureful (eg + supporting md5-style passwords). - GCC doesn't tell us whether this option is supported unless it runs into - the situation where it would need to emit corresponding code. + OpenSSL removed its crypt() interface in 2002: + https://github.com/openssl/openssl/commit/69deec58 so these hijinks + should no longer be necessary. This also only links sshd with libcrypt + which is the only thing that needs it. ok djm@ -commit 3383b2cac0e9275bc93c4b4760e6e048f537e1d6 -Author: djm@openbsd.org -Date: Wed Feb 23 21:21:49 2022 +0000 +commit 76f4e48631d7b09fb243b47d7b393d100d3741b7 +Author: Darren Tucker +Date: Wed Jul 13 13:17:47 2022 +1000 - upstream: free(3) wants stdlib.h + Only refuse to use OpenSSL 3.0.4 on x86_64. - OpenBSD-Commit-ID: 227a8c70a95b4428c49e46863c9ef4bd318a3b8a + The potential RCE only impacts x86_64, so only refuse to use it if we're + targetting a potentially impacted architecture. ok djm@ -commit a4537e79ab4ac6db4493c5158744b9ebde5efcb0 -Author: djm@openbsd.org -Date: Wed Feb 23 21:21:16 2022 +0000 +commit e75bbc1d88491fa85e61b2cc8783d4bbd00cd131 +Author: Darren Tucker +Date: Tue Jul 12 14:37:15 2022 +1000 - upstream: put back the scp manpage changes for SFTP mode too - - OpenBSD-Commit-ID: 05dc53921f927e1b5e5694e1f3aa314549f2e768 + Capture stderr output from configure. -commit 449bcb8403adfb9724805d02a51aea76046de185 -Author: deraadt@openbsd.org -Date: Wed Feb 23 19:01:00 2022 +0000 +commit d9eaea4bea6271bcee6a2b9428f1271faf2d033b +Author: Darren Tucker +Date: Tue Jul 12 12:54:49 2022 +1000 - upstream: and we go back to testing sftp-scp after the 8.9 - - release... + Refuse to use OpenSSL 3.0.4 due to potential RCE. - OpenBSD-Commit-ID: a80440168258adca543a4607b871327a279c569c + OpenSSL has a potential RCE in its RSA implementation (CVE-2022-2274) + so refuse to use that specific version. -commit 166456cedad3962b83b848b1e9caf80794831f0f -Author: Damien Miller -Date: Wed Feb 23 22:31:11 2022 +1100 +commit fb2f3a61bf3d28fff285524535f7ffcd177c9235 +Author: Darren Tucker +Date: Tue Jul 12 12:54:24 2022 +1000 - makedepend + Move unset to before we set anything. -commit 32ebaa0dbca5d0bb86e384e72bebc153f48413e4 -Author: djm@openbsd.org -Date: Wed Feb 23 11:18:13 2022 +0000 +commit c483a5c0fb8e8b8915fad85c5f6113386a4341ca +Author: Darren Tucker +Date: Wed Jul 6 11:52:54 2022 +1000 - upstream: avoid integer overflow of auth attempts (harmless, caught - - by monitor) - - OpenBSD-Commit-ID: 488ad570b003b21e0cd9e7a00349cfc1003b4d86 + Test against openssl-3.0.5. -commit 6e0258c64c901753df695e06498b26f9f4812ea6 -Author: djm@openbsd.org -Date: Wed Feb 23 11:17:10 2022 +0000 +commit 669a56bcfe73f8b985f2bba476ba834d55253acf +Author: Darren Tucker +Date: Tue Jul 5 18:35:53 2022 +1000 - upstream: randomise the password used in fakepw + Update sanitizer test targets: - OpenBSD-Commit-ID: 34e159f73b1fbf0a924a9c042d8d61edde293947 + - remove clang-sanitize-memory for now. It takes so long that the test + times out. + - add gcc sanitize-address and sanitize-undefined test targets. -commit bf114d6f0a9df0b8369823d9a0daa6c72b0c4cc9 -Author: djm@openbsd.org -Date: Wed Feb 23 11:15:57 2022 +0000 +commit 48cc68b69118b3ce8d07fd4f82e00d58667d5379 +Author: Darren Tucker +Date: Tue Jul 5 16:23:28 2022 +1000 - upstream: use asprintf to construct .rhosts paths - - OpenBSD-Commit-ID: 8286e8d3d2c6ff916ff13d041d1713073f738a8b + Add GCC address sanitizer build/test. -commit c07e154fbdc7285e9ec54e78d8a31f7325d43537 -Author: djm@openbsd.org -Date: Wed Feb 23 11:07:09 2022 +0000 +commit 55c60bdd39b82457e92efa77da8d16cfa6a49391 +Author: Darren Tucker +Date: Tue Jul 5 12:02:33 2022 +1000 - upstream: openssh-8.9 - - OpenBSD-Commit-ID: 5c5f791c87c483cdab6d9266b43acdd9ca7bde0e + Move sanitizer logs into regress for collection. -commit bc16667b4a1c3cad7029304853c143a32ae04bd4 -Author: Darren Tucker -Date: Tue Feb 22 15:29:22 2022 +1100 +commit 35ef2b3b6ef198f8574904a45780487ec2f17858 +Author: dtucker@openbsd.org +Date: Mon Jul 4 09:10:31 2022 +0000 - Extend select+rlimit sanbox test to include poll. + upstream: Add TEST_REGRESS_CACHE_DIR. - POSIX specifies that poll() shall fail if "nfds argument is greater - than {OPEN_MAX}". The setrlimit sandbox sets this to effectively zero - so this causes poll() to fail in the preauth privsep process. + If set, it is used to cache regress test names that have succeeded and + skip those on a re-run. - This is likely the underlying cause for the previously observed similar - behaviour of select() on plaforms where it is implement in userspace on - top of poll(). + OpenBSD-Regress-ID: a7570dd29a58df59f2cca647c3c2ec989b49f247 -commit 6520c488de95366be031d49287ed243620399e23 +commit 7394ed80c4de8b228a43c8956cf2fa1b9c6b2622 Author: Darren Tucker -Date: Tue Feb 22 13:08:59 2022 +1100 +Date: Sun Jul 3 21:46:44 2022 +1000 - Add Alpine Linux test VM. + Add clang sanitizer tests. -commit a4b325a3fc82d11e0f5d61f62e7fde29415f7afb +commit bfce0e66b6017a9bfab450b9dc7d4b16f90de817 Author: Darren Tucker -Date: Tue Feb 22 12:27:07 2022 +1100 +Date: Sun Jul 3 18:14:09 2022 +1000 - Include sys/param.h if present. + Skip all rlimit tests when sandboxing disabled. - Needed for howmany() on MUSL systems such as Alpine. + The rlimit tests can hang when being run with some compiler sanitizers + so skip all of them if sandbox=no. -commit 5a102e9cb287a43bd7dfe594b775a89a8e94697c +commit 6208d611520f9ea94d5369f9da404b709930029d Author: Darren Tucker -Date: Tue Feb 22 12:25:52 2022 +1100 +Date: Sun Jul 3 17:54:49 2022 +1000 - Only include sys/poll.h if we don't have poll.h. + Move checks for pollfd.fd and nfds_t. - Prevents warnings on MUSL based systems such as Alpine. + Move the checks for struct pollfd.fd and nfds_t to before the sandboxing + checks. This groups all the sandbox checks together so we can skip them + all when sandboxing is disabled. -commit 7c0d4ce911d5c58b6166b2db754a4e91f352adf5 -Author: Damien Miller -Date: Tue Feb 22 11:14:51 2022 +1100 +commit 322964f8f2e9c321e77ebae1e4d2cd0ccc5c5a0b +Author: dtucker@openbsd.org +Date: Fri Jul 1 05:08:23 2022 +0000 - disable agent-restrict test on minix3 - - Minix seems to have a platform-wide limit on the number of - select(2) syscalls that can be concurrently issued. This test - seems to exceed this limit. + upstream: Remove leftover line. - Refer to: + Remove extra line leftover from merge conflict. ok djm@ - https://github.com/Stichting-MINIX-Research-Foundation/minix/blob/R3.3.0/minix/servers/vfs/select.c#L114 - https://github.com/Stichting-MINIX-Research-Foundation/minix/blob/R3.3.0/minix/servers/vfs/select.c#L30-L31 - -commit 81d33d8e3cf7ea5ce3a5653c6102b623e019428a -Author: Darren Tucker -Date: Mon Feb 21 21:27:20 2022 +1100 - - Skip agent-getpeereid when running as root. + OpenBSD-Commit-ID: 460e2290875d7ae64971a7e669c244b1d1c0ae2e -commit fbd772570a25436a33924d91c164d2b24021f010 -Author: dtucker@openbsd.org -Date: Sun Feb 20 03:47:26 2022 +0000 +commit 7ec81daad0e03a64e8d91c5590960c48c1a899a3 +Author: djm@openbsd.org +Date: Fri Jul 1 04:45:50 2022 +0000 - upstream: Aproximate realpath on the expected output by deduping + upstream: use consistent field names (s/char/byte) - leading slashes. Fixes test failure when user's home dir is / which is - possible in some portable configurations. + in format description - OpenBSD-Regress-ID: 53b8c53734f8893806961475c7106397f98d9f63 + OpenBSD-Commit-ID: 3de33572733ee7fcfd7db33d37db23d2280254f0 -commit 336685d223a59f893faeedf0a562e053fd84058e +commit 32e82a392d9f263485effdd606ff5862d289a4a0 Author: Darren Tucker -Date: Sun Feb 20 13:30:52 2022 +1100 +Date: Fri Jul 1 13:55:19 2022 +1000 - Really move DSA to end of list. + Skip select+rlimit check if sandboxing is disabled - In commit ad16a84e syncing from OpenBSD, RSA was accidentally moved to - the end of the list instead of DSA. Spotted by andrew at fyfe.gb.net. - -commit 63bf4f49ed2fdf2da6f97136c9df0c8168546eb3 -Author: Darren Tucker -Date: Fri Feb 18 12:12:21 2022 +1100 - - Add test configs for MUSL C library. - -commit f7fc6a43f1173e8b2c38770bf6cee485a562d03b -Author: Damien Miller -Date: Thu Feb 17 22:54:19 2022 +1100 - - minix needs BROKEN_POLL too; chokes on /dev/null + It's not needed in that case, and the test can fail when being built + with some compiler memory sanitizer flags. bz#3441 -commit 667fec5d4fe4406745750a32f69b5d2e1a75e94b +commit 4be7184ebe2a2ccef175983517a35ee06766e1b4 Author: djm@openbsd.org -Date: Thu Feb 17 10:58:27 2022 +0000 +Date: Fri Jul 1 03:52:57 2022 +0000 - upstream: check for EINTR/EAGAIN failures in the rfd fast-path; caught + upstream: bump up loglevel from debug to info when unable to open - by dtucker's minix3 vm :) ok dtucker@ + authorized keys/principals file for errno != ENOENT; bz2042 ok dtucker - OpenBSD-Commit-ID: 2e2c895a3e82ef347aa6694394a76a438be91361 - -commit 41417dbda9fb55a0af49a8236e3ef9d50d862644 -Author: Darren Tucker -Date: Thu Feb 17 22:05:29 2022 +1100 - - Comment hurd test, the VM is currently broken. + OpenBSD-Commit-ID: e79aa550d91ade6a80f081bda689da24c086d66b -commit b2aee35a1f0dc798339b3fcf96136da71b7e3f6d -Author: Damien Miller -Date: Thu Feb 17 21:15:16 2022 +1100 +commit 6c31ba10e97b6953c4f325f526f3e846dfea647a +Author: dtucker@openbsd.org +Date: Fri Jul 1 03:39:44 2022 +0000 - find sk-dummy.so when build_dir != src_dir + upstream: Don't leak the strings allocated by order_hostkeyalgs() + + and list_hostkey_types() that are passed to compat_pkalg_proposal(). Part of + github PR#324 from ZoltanFridrich, ok djm@ + + This is a roll-forward of the previous rollback now that the required + changes in compat.c have been done. - spotted by Corinna Vinschen; feedback & ok dtucker@ + OpenBSD-Commit-ID: c7cd93730b3b9f53cdad3ae32462922834ef73eb -commit 62a2d4e50b2e89f2ef04576931895d5139a5d037 -Author: Damien Miller -Date: Wed Feb 16 16:26:17 2022 +1100 +commit 486c4dc3b83b4b67d663fb0fa62bc24138ec3946 +Author: dtucker@openbsd.org +Date: Fri Jul 1 03:35:45 2022 +0000 - update versions in preparation for 8.9 release + upstream: Always return allocated strings from the kex filtering so + + that we can free them later. Fix one leak in compat_kex_proposal. Based on + github PR#324 from ZoltanFridrich with some simplications by me. ok djm@ + + OpenBSD-Commit-ID: 9171616da3307612d0ede086fd511142f91246e4 -commit dd6d3dded721ac653ea73c017325e5bfeeec837f +commit 96faa0de6c673a2ce84736eba37fc9fb723d9e5c Author: djm@openbsd.org -Date: Tue Feb 15 05:13:36 2022 +0000 +Date: Fri Jul 1 00:36:30 2022 +0000 - upstream: document the unbound/host-bound options to + upstream: ignore SIGPIPE earlier in main(), specifically before - PubkeyAuthentication; spotted by HARUYAMA Seigo + muxclient() which performs operations that could cause one; Reported by Noam + Lewis via bz3454, ok dtucker@ - OpenBSD-Commit-ID: 298f681b66a9ecd498f0700082c7a6c46e948981 + OpenBSD-Commit-ID: 63d8e13276869eebac6d7a05d5a96307f9026e47 -commit df93529dd727fdf2fb290700cd4f1adb0c3c084b -Author: Darren Tucker -Date: Mon Feb 14 14:19:40 2022 +1100 +commit 33efac790f6b09d54894ba6c3e17dfb08b6fc7e1 +Author: jmc@openbsd.org +Date: Tue Jun 28 06:09:14 2022 +0000 - Test if sshd accidentally acquires controlling tty + upstream: reflect the update to -D arg name in usage(); - When SSHD_ACQUIRES_CTTY is defined, test for the problematic behaviour - in the STREAMS code before activating the workaround. ok djm@ + OpenBSD-Commit-ID: abdcde4f92b1ef094ae44210ee99d3b0155aad9c -commit 766176cfdbfd7ec38bb6118dde6e4daa0df34888 +commit c71a1442d02f0a3586109dfe2cb366de36dee08e Author: Darren Tucker -Date: Sat Feb 12 10:24:56 2022 +1100 +Date: Wed Jun 29 18:28:47 2022 +1000 - Add cygwin-release test config. - - This tests the flags used to build the cygwin release binaries. + Update OpenSSL tests to the most recent releases. -commit b30698662b862f5397116d23688aac0764e0886e -Author: Darren Tucker -Date: Fri Feb 11 21:00:35 2022 +1100 +commit 2a822f29300b2de7335fbff65f0b187a0c582304 +Author: djm@openbsd.org +Date: Mon Jun 27 21:41:55 2022 +0000 - Move SSHD_ACQUIRES_CTTY workaround into compat. - - On some (most? all?) SysV based systems with STREAMS based ptys, - sshd could acquire a controlling terminal during pty setup when - it pushed the "ptem" module, due to what is probably a bug in - the STREAMS driver that's old enough to vote. Because it was the - privileged sshd's controlling terminal, it was not available for - the user's session, which ended up without one. This is known to - affect at least Solaris <=10, derivatives such as OpenIndiana and - several other SysV systems. See bz#245 for the backstory. - - In the we past worked around that by not calling setsid in the - privileged sshd child, which meant it was not a session or process - group leader. This solved controlling terminal problem because sshd - was not eligble to acquire one, but had other side effects such as - not cleaning up helper subprocesses in the SIGALRM handler since it - was not PG leader. Recent cleanups in the signal handler uncovered - this, resulting in the LoginGraceTime timer not cleaning up privsep - unprivileged processes. - - This change moves the workaround into the STREAMS pty allocation code, - by allocating a sacrificial pty to act as sshd's controlling terminal - before allocating user ptys, so those are still available for users' - sessions. - - On the down side: - - this will waste a pty per ssh connection on affected platforms. - - On the up side: - - it makes the process group behaviour consistent between platforms. - - - it puts the workaround nearest the code that actually causes the - problem and competely out of the mainline code. + upstream: allow arguments to sftp -D option, e.g. sftp -D - - the workaround is only activated if you use the STREAMS code. If, - say, Solaris 11 has the bug but also a working openpty() it doesn't - matter that we defined SSHD_ACQUIRES_CTTY. + "/usr/libexec/sftp-server -el debug3" - - the workaround is only activated when the fist pty is allocated, - ie in the post-auth privsep monitor. This means there's no risk - of fd leaks to the unprivileged processes, and there's no effect on - sessions that do not allocate a pty. + ok markus@ - Based on analysis and work by djm@, ok djm@ + OpenBSD-Commit-ID: 5a002b9f3a7aef2731fc0ffa9c921cf15f38ecce -commit cd00b48cf10f3565936a418c1e6d7e48b5c36140 -Author: Darren Tucker -Date: Fri Feb 11 20:09:32 2022 +1100 +commit 2369a2810187e08f2af5d58b343956062fb96ee8 +Author: dtucker@openbsd.org +Date: Fri Jun 24 10:45:06 2022 +0000 - Simplify handling of --with-ssl-dir. + upstream: Roll back previous KEX changes as they aren't safe until - ok djm@ - -commit ea13fc830fc0e0dce2459f1fab2ec5099f73bdf0 -Author: Darren Tucker -Date: Fri Feb 11 13:39:29 2022 +1100 - - Stop testing OpenBSD HEAD on 6.9 and 7.0. + compat_pkalg_proposal and friends always allocate their returned strings. + Reported by Qualys. - HEAD is not guaranteed to work on previous stable branches, and at the - moment is broken due to libfido API changes. + OpenBSD-Commit-ID: 1c7a88a0d5033f42f88ab9bec58ef1cf72c81ad0 -commit 50b9e4a4514697ffb9592200e722de6b427cb9ff +commit 646686136c34c2dbf6a01296dfaa9ebee029386d Author: dtucker@openbsd.org -Date: Fri Feb 11 00:43:56 2022 +0000 +Date: Fri Jun 24 04:37:00 2022 +0000 - upstream: Always initialize delim before passing to hpdelim2 which + upstream: Don't leak the strings allocated by order_hostkeyalgs() - might not set it. Found by the Valgrind tests on github, ok deraadt@ + and list_hostkey_types() that are passed to compat_pkalg_proposal(). Part of + github PR#324 from ZoltanFridrich, ok djm@ - OpenBSD-Commit-ID: c830c0db185ca43beff3f41c19943c724b4f636d + OpenBSD-Commit-ID: b2f6e5f60f2bba293b831654328a8a0035ef4a1b -commit 6ee53064f476cf163acd5521da45b11b7c57321b +commit 193c6d8d905dde836b628fc07a7b9cf2d347e2a3 Author: Darren Tucker -Date: Fri Feb 11 10:03:06 2022 +1100 +Date: Sat Jun 25 12:16:15 2022 +1000 - Fix helper include path and remove excess code. + Zero out LIBFIDO2 when SK support not usable. - Looks like test_hpdelim.c was imported twice into the same file. - Spotted by kevin.brott at gmail com and chris at cataclysmal org. + Prevents us from trying to link them into ssh-sk-helper and failing to + build. -commit 9fa63a19f68bc87452d3cf5c577cafad2921b7a4 +commit 40f5d849d25c60b4ae21261e78484d435f5cfd51 Author: Darren Tucker -Date: Thu Feb 10 23:27:02 2022 +1100 +Date: Sat Jun 25 11:47:28 2022 +1000 - Put poll.h inside ifdef. + Disable SK support if FIDO libs not found. -commit 3ac00dfeb54b252c15dcbf1971582e9e3b946de6 -Author: Darren Tucker -Date: Thu Feb 10 22:17:31 2022 +1100 +commit 5fd922ade1b25880fe8a8249f5c0385e413108f9 +Author: Damien Miller +Date: Fri Jun 24 14:43:54 2022 +1000 - We now support POLLPRI so actually define it. + fix broken case statement in previous -commit 25bd659cc72268f2858c5415740c442ee950049f -Author: dtucker@openbsd.org -Date: Sun Feb 6 22:58:33 2022 +0000 +commit f51423bdaf0008d46b6af082bcfd7a22a87375f0 +Author: Damien Miller +Date: Fri Jun 24 14:40:42 2022 +1000 - upstream: Add test for empty hostname with port. + request 1.1x API compatibility for OpenSSL >=3.x - OpenBSD-Regress-ID: e19e89d3c432b68997667efea44cf015bbe2a7e3 + idea/patch from Pedro Martelletto via GHPR#322; ok dtucker@ -commit a29af853cff41c0635f0378c00fe91bf9c91dea4 -Author: dtucker@openbsd.org -Date: Fri Feb 4 07:53:44 2022 +0000 +commit 455cee8d6c2e4c48c5af9faead3599c49948411e +Author: djm@openbsd.org +Date: Fri Jun 24 04:27:14 2022 +0000 - upstream: Add unit tests for hpdelim. + upstream: make it clear that RekeyLimit applies to both transmitted - OpenBSD-Regress-ID: be97b85c19895e6a1ce13c639765a3b48fd95018 + and received data. GHPR#328 from Jan Pazdziora + + OpenBSD-Commit-ID: d180a905fec9ff418a75c07bb96ea41c9308c3f9 -commit 9699151b039ecc5fad9ac6c6c02e9afdbd26f15f -Author: djm@openbsd.org -Date: Thu Feb 10 04:12:38 2022 +0000 +commit 17904f05802988d0bb9ed3c8d1d37411e8f459c3 +Author: tobhe@openbsd.org +Date: Tue Jun 21 14:52:13 2022 +0000 - upstream: revert for imminent OpenSSH release, which wil ship with - - scp in RCP mode. + upstream: Make sure not to fclose() the same fd twice in case of an - > revision 1.106 - > date: 2021/10/15 14:46:46; author: deraadt; state: Exp; lines: +13 -9; commitid: w5n9B2RE38tFfggl; - > openbsd 7.0 release shipped with the (hopefully last) scp that uses RCP - > protocol for copying. Let's get back to testing the SFTP protocol. + error. - This will be put back once the OpenSSH release is done. + ok dtucker@ - OpenBSD-Commit-ID: 0c725481a78210aceecff1537322c0b2df03e768 + OpenBSD-Commit-ID: e384c4e05d5521e7866b3d53ca59acd2a86eef99 -commit 45279abceb37c3cbfac8ba36dde8b2c8cdd63d32 +commit f29d6cf98c25bf044079032d22c1a57c63ab9d8e Author: dtucker@openbsd.org -Date: Tue Feb 8 08:59:12 2022 +0000 +Date: Sat Jun 18 02:17:16 2022 +0000 - upstream: Switch hpdelim interface to accept only ":" as delimiter. + upstream: Don't attempt to fprintf a null identity comment. From - Historicallly, hpdelim accepted ":" or "/" as a port delimiter between - hosts (or addresses) and ports. These days most of the uses for "/" - are no longer accepted, so there are several places where it checks the - delimiter to disallow it. Make hpdelim accept only ":" and use hpdelim2 - in the other cases. ok djm@ + Martin Vahlensieck via tech@. - OpenBSD-Commit-ID: 7e6420bd1be87590b6840973f5ad5305804e3102 + OpenBSD-Commit-ID: 4c54d20a8e8e4e9912c38a7b4ef5bfc5ca2e05c2 -commit a1bcbf04a7c2d81944141db7ecd0ba292d175a66 -Author: pedro martelletto -Date: Mon Feb 7 09:09:59 2022 +0100 +commit ad1762173bb38716a106e8979806149fd0f2753e +Author: dtucker@openbsd.org +Date: Fri Jun 17 01:00:03 2022 +0000 - fix typos in previous + upstream: Log an error if pipe() fails while accepting a + + connection. bz#3447, from vincent-openssh at vinc17 net, ok djm@ + + OpenBSD-Commit-ID: 9d59f19872b94900a5c79da2d57850241ac5df94 -commit 56192518e329b39f063487bc2dc4d796f791eca0 +commit 9c59e7486cc8691401228b43b96a3edbb06e0412 Author: Damien Miller -Date: Mon Feb 7 12:53:47 2022 +1100 - - compat code for fido_assert_set_clientdata() - -commit d6b5aa08fdcf9b527f8b8f932432941d5b76b7ab -Author: djm@openbsd.org -Date: Mon Feb 7 01:25:12 2022 +0000 +Date: Fri Jun 24 14:20:43 2022 +1000 - upstream: use libfido2 1.8.0+ fido_assert_set_clientdata() instead + automatically enable built-in FIDO support - of manually hashing data outselves. Saves a fair bit of code and makes life - easier for some -portable platforms. + If libfido2 is found and usable, then enable the built-in + security key support unless --without-security-key-builtin + was requested. - OpenBSD-Commit-ID: 351dfaaa5ab1ee928c0e623041fca28078cff0e0 + ok dtucker@ -commit 86cc93fd3c26b2e0c7663c6394995fb04ebfbf3b -Author: jsg@openbsd.org -Date: Sun Feb 6 00:29:03 2022 +0000 +commit 7d25b37fb2a5ff4dadabcbdac6087a97479434f5 +Author: Damien Miller +Date: Fri Jun 24 13:46:39 2022 +1000 - upstream: remove please from manual pages ok jmc@ sthen@ millert@ + fix possible NULL deref when built without FIDO - OpenBSD-Commit-ID: 6543acb00f4f38a23472538e1685c013ca1a99aa + Analysis/fix from kircher in bz3443; ok dtucker@ -commit ad16a84e64a8cf1c69c63de3fb9008320a37009c -Author: dtucker@openbsd.org -Date: Fri Feb 4 02:49:17 2022 +0000 +commit f5ba85daddfc2da6a8dab6038269e02c0695be44 +Author: djm@openbsd.org +Date: Wed Jun 15 16:08:25 2022 +0000 - upstream: Since they are deprecated, move DSA to the end of the + upstream: make sure that UseDNS hostname lookup happens in the monitor - default list of public keys so that they will be tried last. From github - PR#295 from "ProBackup-nl", ok djm@ + and not in the pledge(2)'d unprivileged process; fixes regression caused by + recent refactoring spotted by henning@ - OpenBSD-Commit-ID: 7e5d575cf4971d4e2de92e0b6d6efaba53598bf0 + OpenBSD-Commit-ID: a089870b95101cd8881a2dff65b2f1627d13e88d -commit 253de42753de85dde266e061b6fec12ca6589f7d -Author: Damien Miller -Date: Wed Feb 2 16:52:07 2022 +1100 +commit acb2059febaddd71ee06c2ebf63dcf211d9ab9f2 +Author: djm@openbsd.org +Date: Fri Jun 3 04:47:21 2022 +0000 - portable-specific string array constification + upstream: move auth_openprincipals() and auth_openkeyfile() over to + + auth2-pubkeyfile.c too; they make more sense there. - from Mike Frysinger + OpenBSD-Commit-ID: 9970d99f900e1117fdaab13e9e910a621b7c60ee -commit dfdcc2220cf359c492d5d34eb723370e8bd8a19e +commit 3d9b0845f34510111cc693bb99a667662ca50cd8 Author: djm@openbsd.org -Date: Tue Feb 1 23:37:15 2022 +0000 +Date: Fri Jun 3 04:31:54 2022 +0000 - upstream: test 'ssh-keygen -Y find-principals' with wildcard + upstream: test setenv in both client and server, test first-match-wins - principals; from Fabian Stelzer + too - OpenBSD-Regress-ID: fbe4da5f0032e7ab496527a5bf0010fd700f8f40 + OpenBSD-Regress-ID: 4c8804f9db38a02db480b9923317457b377fe34b -commit 968e508967ef42480cebad8cf3172465883baa77 -Author: dtucker@openbsd.org -Date: Fri Jan 21 02:54:41 2022 +0000 +commit 22e1a3a71ad6d108ff0c5f07f93c3fcbd30f8b40 +Author: djm@openbsd.org +Date: Fri Jun 3 04:30:46 2022 +0000 - upstream: Enable all supported ciphers and macs in the server + upstream: Make SetEnv directives first-match-wins in both + + sshd_config and sshd_config; previously if the same name was reused then the + last would win (which is the opposite to how the config is supposed to work). + + While there, make the ssh_config parsing more like sshd_config. - before trying to benchmark them. Increase the data file size to get more - signal. + bz3438, ok dtucker - OpenBSD-Regress-ID: dc3697d9f7defdfc51c608782c8e750128e46eb6 + OpenBSD-Commit-ID: 797909c1e0262c0d00e09280459d7ab00f18273b -commit 15b7199a1fd37eff4c695e09d573f3db9f4274b7 -Author: djm@openbsd.org -Date: Tue Feb 1 23:34:47 2022 +0000 +commit 38ed6c57e9e592c08e020fa6e82b45b4e1040970 +Author: dtucker@openbsd.org +Date: Fri Jun 3 04:00:15 2022 +0000 - upstream: allow 'ssh-keygen -Y find-principals' to match wildcard + upstream: Add missing *-sk types to ssh-keyscan manpage. From - principals in allowed_signers files; from Fabian Stelzer + skazi0 via github PR#294. - OpenBSD-Commit-ID: 1e970b9c025b80717dddff5018fe5e6f470c5098 + OpenBSD-Commit-ID: fda2c869cdb871f3c90a89fb3f985370bb5d25c0 -commit 541667fe6dc26d7881e55f0bb3a4baa6f3171645 -Author: djm@openbsd.org -Date: Tue Feb 1 23:32:51 2022 +0000 +commit ea97ec98c41ec2b755dfab459347db674ff9a5de +Author: dtucker@openbsd.org +Date: Fri Jun 3 03:21:09 2022 +0000 - upstream: mark const string array contents const too, i.e. static + upstream: Add period at end of "not known by any other names" - const char *array => static const char * const array from Mike Frysinger + message. github PR#320 from jschauma, ok djm@ - OpenBSD-Commit-ID: a664e31ea6a795d7c81153274a5f47b22bdc9bc1 + OpenBSD-Commit-ID: bd60809803c4bfd3ebb7c5c4d918b10e275266f2 -commit 8cfa73f8a2bde4c98773f33f974c650bdb40dd3c -Author: djm@openbsd.org -Date: Tue Feb 1 23:11:11 2022 +0000 +commit 88e376fcd67478ad1660d94bc73ab348ac9f4527 +Author: dtucker@openbsd.org +Date: Fri Jun 3 03:17:42 2022 +0000 - upstream: better match legacy scp behaviour: show un-expanded paths + upstream: ssh-keygen -A: do not generate DSA keys by default. - in error messages. Spotted by and ok tb@ + Based on github PR#303 from jsegitz with man page text from jmc@, ok markus@ + djm@ - OpenBSD-Commit-ID: 866c8ffac5bd7d38ecbfc3357c8adfa58af637b7 + OpenBSD-Commit-ID: 5c4c57bdd7063ff03381cfb6696659dd3f9f5b9f -commit 4e62c13ab419b4b224c8bc6a761e91fcf048012d -Author: dtucker@openbsd.org -Date: Tue Feb 1 07:57:32 2022 +0000 +commit 6b3fb624675082a1e5aa615d1b8479873d8b5731 +Author: naddy@openbsd.org +Date: Tue May 31 14:05:12 2022 +0000 - upstream: Remove explicit kill of privsep preauth child's PID in + upstream: ssh-keygen: implement "verify-required" certificate option. + + This was already documented when support for user-verified FIDO + keys was added, but the ssh-keygen(1) code was missing. - SIGALRM handler. It's no longer needed since the child will get terminated by - the SIGTERM to the process group that cleans up any auth helpers, it - simplifies the signal handler and removes the risk of a race when updating - the PID. Based on analysis by HerrSpace in github PR#289, ok djm@ + ok djm@ - OpenBSD-Commit-ID: 2be1ffa28b4051ad9e33bb4371e2ec8a31d6d663 + OpenBSD-Commit-ID: f660f973391b593fea4b7b25913c9a15c3eb8a06 -commit 2a7ccd2ec4022917b745af7186f514f365b7ebe9 -Author: guenther@openbsd.org -Date: Fri Jan 28 06:18:42 2022 +0000 +commit b7f86ffc301be105bba9a3e0618b6fab3ae379bd +Author: jmc@openbsd.org +Date: Sat May 28 05:57:56 2022 +0000 - upstream: When it's the possessive of 'it', it's spelled "its", + upstream: keywords ref ssh_config.5; - without the apostrophe. + from caspar schutijser - OpenBSD-Commit-ID: fb6ab9c65bd31de831da1eb4631ddac018c5fae7 + OpenBSD-Commit-ID: f146a19d7d5c9374c3b9c520da43b2732d7d1a4e -commit 8a0848cdd3b25c049332cd56034186b7853ae754 -Author: Alex James -Date: Sun Jan 30 16:13:36 2022 -0600 +commit dc7bc52372f2744fa39191577be5306ee57aacd4 +Author: Damien Miller +Date: Mon May 30 09:29:09 2022 +1000 - sandbox-seccomp-filter: allow gettid - - Some allocators (such as Scudo) use gettid while tracing allocations [1]. - Allow gettid in preauth to prevent sshd from crashing with Scudo. - - [1]: https://github.com/llvm/llvm-project/blob/llvmorg-13.0.0/compiler-rt/lib/gwp_asan/common.cpp#L46 + fix some bugs in the fuzzer -commit b30d32159dc3c7052f4bfdf36357996c905af739 -Author: djm@openbsd.org -Date: Sat Jan 22 00:49:34 2022 +0000 +commit 1781f507c113667613351c19898efaf1e311a865 +Author: Darren Tucker +Date: Fri May 27 18:19:48 2022 +1000 - upstream: add a ssh_packet_process_read() function that reads from - - a fd directly into the transport input buffer. - - Use this in the client and server mainloops to avoid unnecessary - copying. It also lets us use a more greedy read size without penalty. - - Yields a 2-3% performance gain on cipher-speed.sh (in a fairly - unscientific test tbf) - - feedback dtucker@ ok markus@ - - OpenBSD-Commit-ID: df4112125bf79d8e38e79a77113e1b373078e632 + Test against OpenSSL 1.1.1o and 3.0.3. -commit a1a8efeaaa9cccb15cdc0a2bd7c347a149a3a7e3 -Author: djm@openbsd.org -Date: Sat Jan 22 00:45:31 2022 +0000 +commit c53906e0c59e569691b4095d3e8db79cf78fa058 +Author: Darren Tucker +Date: Fri May 27 18:18:31 2022 +1000 - upstream: Use sshbuf_read() to read directly into the channel input - - buffer rather than into a stack buffer that needs to be copied again; - Improves performance by about 1% on cipher-speed.sh feedback dtucker@ ok - markus@ - - OpenBSD-Commit-ID: bf5e6e3c821ac3546dc8241d8a94e70d47716572 + Test against LibreSSL 3.5.3. -commit 29a76994e21623a1f84d68ebb9dc5a3c909fa3a7 +commit 9b3ad432ad2f19319bcc089370e356c6315d682f Author: Damien Miller -Date: Tue Jan 25 11:52:34 2022 +1100 +Date: Fri May 27 17:00:43 2022 +1000 - depend + fuzzer for authorized_keys parsing + + mostly redundant to authopt_fuzz, but it's sensitive code so IMO it + makes sense to test this layer too -commit 754e0d5c7712296a7a3a83ace863812604c7bc4f +commit c83d8c4d6f3ccceef84d46de107f6b71cda06359 Author: djm@openbsd.org -Date: Sat Jan 22 00:43:43 2022 +0000 +Date: Fri May 27 05:02:46 2022 +0000 - upstream: Add a sshbuf_read() that attempts to read(2) directly in + upstream: split the low-level file handling functions out from - to a sshbuf; ok markus@ + auth2-pubkey.c - OpenBSD-Commit-ID: 2d8f249040a4279f3bc23c018947384de8d4a45b - -commit c7964fb9829d9ae2ece8b51a76e4a02e8449338d -Author: djm@openbsd.org -Date: Fri Jan 21 07:04:19 2022 +0000 - - upstream: add a helper for writing an error message to the + Put them in a new auth2-pubkeyfile.c to make it easier to refer to them + (e.g. in unit/fuzz tests) without having to refer to everything else + pubkey auth brings in. - stderr_buf and setting quit_pending; no functional change but saves a bunch - of boilerplate + ok dtucker@ - OpenBSD-Commit-ID: 0747657cad6b9eabd514a6732adad537568e232d + OpenBSD-Commit-ID: 3fdca2c61ad97dc1b8d4a7346816f83dc4ce2217 -commit d23b4f7fdb1bd87e2cd7a9ae7c198ae99d347916 +commit 3b0b142d2a0767d8cd838e2f3aefde8a0aaa41e1 Author: djm@openbsd.org -Date: Fri Jan 21 06:58:06 2022 +0000 +Date: Fri May 27 05:01:25 2022 +0000 - upstream: correct comment and use local variable instead of long + upstream: refactor authorized_keys/principals handling + + remove "struct ssh *" from arguments - this was only used to pass the + remote host/address. These can be passed in instead and the resulting + code is less tightly coupled to ssh_api.[ch] - indirection; spotted by dtucker@ + ok dtucker@ - OpenBSD-Commit-ID: 5f65f5f69db2b7d80a0a81b08f390a63f8845965 + OpenBSD-Commit-ID: 9d4373d013edc4cc4b5c21a599e1837ac31dda0d -commit d069b020a02b6e3935080204ee44d233e8158ebb -Author: deraadt@openbsd.org -Date: Fri Jan 21 00:53:40 2022 +0000 +commit 2c334fd36f80cb91cc42e4b978b10aa35e0df236 +Author: dtucker@openbsd.org +Date: Fri May 27 04:29:40 2022 +0000 - upstream: When poll(2) returns -1, for some error conditions + upstream: f sshpkt functions fail, then password is not cleared + + with freezero. Unconditionally call freezero to guarantee that password is + removed from RAM. - pfd[].revents is not cleared. There are subtle errors in various programs. - In this particular case, the program should error out. ok djm millert + From tobias@ and c3h2_ctf via github PR#286, ok djm@ - OpenBSD-Commit-ID: 00f839b16861f7fb2adcf122e95e8a82fa6a375c + OpenBSD-Commit-ID: 6b093619c9515328e25b0f8093779c52402c89cd -commit e204b34337a965feb439826157c191919fd9ecf8 -Author: Damien Miller -Date: Sat Jan 22 11:38:21 2022 +1100 +commit 5d3a77f4c5ae774c6796387266503f52c7cdc7c2 +Author: dtucker@openbsd.org +Date: Fri May 27 04:27:49 2022 +0000 - restore tty force-read hack + upstream: Avoid kill with -1 argument. The out_ctx label can be - This portable-specific hack fixes a hang on exit for ttyful sessions - on Linux and some SysVish Unix variants. It was accidentally disabled - in commit 5c79952dfe1a (a precursor to the mainloop poll(2) conversion). + reached before fork has been called. If this happens, then kill -1 would be + called, sending SIGTERM to all processes reachable by the current process. + + From tobias@ and c3h2_ctf via github PR#286, ok djm@ - Spotted by John in bz3383 + OpenBSD-Commit-ID: 6277af1207d81202f5daffdccfeeaed4c763b1a8 -commit 68085066b6bad43643b43f5957fcc5fd34782ccd -Author: Corinna Vinschen -Date: Fri Jan 21 03:22:56 2022 +1100 +commit 533b31cd08e4b97f455466f91c36915e2924c15a +Author: dtucker@openbsd.org +Date: Fri May 27 04:13:24 2022 +0000 - Fix signedness bug in Cygwin code + upstream: Note that ProxyJump also accepts the same tokens as - The Cygwin-specific pattern match code has a bug. It checks - the size_t value returned by mbstowcs for being < 0. The right - thing to do is to check against (size_t) -1. Fix that. + ProxyCommand. From pallxk via github PR#305. - Signed-off-by: Corinna Vinschen + OpenBSD-Commit-ID: 7115ac351b129205f1f1ffa6bbfd62abd76be7c5 -commit 2e5cfed513e84444483baf1d8b31c40072b05103 -Author: Darren Tucker -Date: Thu Jan 20 13:26:27 2022 +1100 +commit 9d8c80f8a304babe61ca28f2e3fb5eb6dc9c39bf +Author: djm@openbsd.org +Date: Wed May 25 06:03:44 2022 +0000 - Improve compatibility of early exit trap handling. + upstream: revert previous; it was broken (spotted by Theo) - Dash (as used by the github runners) has some differences in its trap - builtin: - - it doesn't have -p (which is fine, that's not in posix). - - it doesn't work in a subshell (which turns out to be in compliance - with posix, which means bash isn't). - - it doesn't work in a pipeline, ie "trap|cat" produces no output. - -commit 3fe6800b6027add478e648934cbb29d684e51943 -Author: Darren Tucker -Date: Thu Jan 20 00:49:57 2022 +1100 - - Move more tests out of valgrind-1 runner. + OpenBSD-Commit-ID: 457c79afaca2f89ec2606405c1059b98b30d8b0d -commit 20da6ed136dd76e6a0b229ca3036ef9c7c7ef798 -Author: Darren Tucker -Date: Wed Jan 19 15:37:39 2022 +1100 +commit 9e0d02ef7ce88b67643bfb1c2272c9f5f04cc680 +Author: djm@openbsd.org +Date: Wed May 25 00:31:13 2022 +0000 - Invoke EXIT handler early when using Valgrind. + upstream: make SSHBUF_DBG/SSHBUF_TELL (off by default and only enabled + + via #define) dump to stderr rather than stdout - When using Valgrind, we need to wait for all invoked programs to - complete before checking their valgrind logs. Some tests, notably - agent-restrict, set an EXIT trap handler to clean up things like - ssh-agent, but those do not get invoked until test-exec.sh exits. - This causes the Valgrind wait to deadlock, so if present invoke - the EXIT handler before checking the Valgrind logs. + OpenBSD-Commit-ID: 10298513ee32db8390aecb0397d782d68cb14318 -commit ad2e0580c87b0714cf166bca9d926a95ddeee1c8 -Author: Darren Tucker -Date: Tue Jan 18 12:55:21 2022 +1100 +commit 2487163630f28be28b7e2396b4bd6511b98f1d3e +Author: Tim Rice +Date: Tue May 24 10:21:25 2022 -0700 - Remove line leftover from upstream sync. + configure.ac: Add missing AC_DEFINE for caph_cache_tzdata test causing + HAVE_CAPH_CACHE_TZDATA to be missing from config.h.in. + Spotted by Bryan Drewery -commit d1051c0f11a6b749027e26bbeb61b07df4b67e15 +commit bedb93415b60db3dfd704a3d525e82adb14a2481 Author: djm@openbsd.org -Date: Mon Jan 17 22:56:04 2022 +0000 +Date: Sun May 15 23:48:07 2022 +0000 - upstream: when decompressing zlib compressed packets, use - - Z_SYNC_FLUSH instead of Z_PARTIAL_FLUSH as the latter is not actually - specified as a valid mode for inflate(). There should be no practical change - in behaviour as the compression side ensures a flush that should make all - data available to the receiver in all cases. + upstream: regress test for in-place transfers and clobbering larger - repoted by lamm AT ibm.com via bz3372; ok markus + files with smaller ones; would have caught last regression in scp(1) - OpenBSD-Commit-ID: 67cfc1fa8261feae6d2cc0c554711c97867cc81b + OpenBSD-Regress-ID: 19de4e88dd3a4f7e5c1618c9be3c32415bd93bc2 -commit d5981b1883746b1ae178a46229c26b53af99e37a -Author: djm@openbsd.org -Date: Mon Jan 17 21:41:04 2022 +0000 +commit b4f0d719c2548cb74da509fb65f384dada4ebd37 +Author: anton@openbsd.org +Date: Fri Apr 22 05:08:43 2022 +0000 - upstream: make most of the sftp errors more idiomatic, following + upstream: Only run agent-ptrace.sh if gdb is available as all - the general form of "[local/remote] operation path: error message"; ok markus + architectures do not ship with gdb. - OpenBSD-Commit-ID: 61364cd5f3a9fecaf8d63b4c38a42c0c91f8b571 + OpenBSD-Regress-ID: ec53e928803e6b87f9ac142d38888ca79a45348d -commit ac7c9ec894ed0825d04ef69c55babb49bab1d32e +commit 9b73345f80255a7f3048026462f2c0c6a241eeac Author: djm@openbsd.org -Date: Mon Jan 17 21:39:51 2022 +0000 +Date: Sun May 15 23:47:21 2022 +0000 - upstream: when transferring multiple files in SFTP mode, create the + upstream: fix in-place copies; r1.163 incorrectly skipped truncation in - destination directory if it doesn't already exist to match olde-scp(1) - behaviour. noticed by deraadt@ ok markus@ + all cases, not just at the start of a transfer. This could cause overwrites + of larger files to leave junk at the end. Spotted by tb@ - OpenBSD-Commit-ID: cf44dfa231d4112f697c24ff39d7ecf2e6311407 + OpenBSD-Commit-ID: b189f19cd68119548c8e24e39c79f61e115bf92c -commit 39d17e189f8e72c34c722579d8d4e701fa5132da +commit 56a0697fe079ff3e1ba30a2d5c26b5e45f7b71f8 Author: djm@openbsd.org -Date: Fri Jan 14 03:43:48 2022 +0000 +Date: Fri May 13 06:31:50 2022 +0000 - upstream: allow pin-required FIDO keys to be added to ssh-agent(1). + upstream: arrange for scp, when in sftp mode, to not ftruncate(3) files + + early - ssh-askpass will be used to request the PIN at authentication time. + previous behavious of unconditionally truncating the destination file + would cause "scp ~/foo localhost:" and "scp localhost:foo ~/" to + delete all the contents of their destination. - From Pedro Martelletto, ok djm + spotted by solene@ sthen@, also bz3431; ok dtucker@ - OpenBSD-Commit-ID: de8189fcd35b45f632484864523c1655550e2950 + OpenBSD-Commit-ID: ca39fdd39e0ec1466b9666f15cbcfddea6aaa179 -commit 52423f64e13db2bdc31a51b32e999cb1bfcf1263 -Author: djm@openbsd.org -Date: Fri Jan 14 03:35:10 2022 +0000 +commit fbcef70c2832712f027bccea1aa9bc4b4103da93 +Author: dtucker@openbsd.org +Date: Mon May 9 08:25:27 2022 +0000 - upstream: ssh-sk: free a resident key's user id - - From Pedro Martelletto; ok dtucker & me + upstream: Remove errant apostrophe. From haruyama at queen-ml org. - OpenBSD-Commit-ID: 47be40d602b7a6458c4c71114df9b53d149fc2e9 + OpenBSD-Commit-ID: dc6b294567cb84b384ad6ced9ca469f2bbf0bd10 -commit 014e2f147a2788bfb3cc58d1b170dcf2bf2ee493 +commit 0086a286ea6bbd11ca9b664ac3bb12b27443d6eb Author: djm@openbsd.org -Date: Fri Jan 14 03:34:00 2022 +0000 +Date: Mon May 9 03:09:53 2022 +0000 - upstream: sshsk_load_resident: don't preallocate resp - - resp is allocated by client_converse(), at which point we lose - the original pointer. + upstream: Allow existing -U (use agent) flag to work with "-Y sign" - From Pedro Martelletto; ok dtucker & me + operations, where it will be interpreted to require that the private keys is + hosted in an agent; bz3429, suggested by Adam Szkoda; ok dtucker@ - OpenBSD-Commit-ID: 1f1b5ea3282017d6584dfed4f8370dc1db1f44b1 + OpenBSD-Commit-ID: a7bc69873b99c32c42c7628ed9ea91565ba08c2f -commit c88265f207dfe0e8bdbaf9f0eda63ed6b33781cf +commit cb010744cc98f651b1029bb09efa986eb54e4ccf Author: djm@openbsd.org -Date: Fri Jan 14 03:32:52 2022 +0000 +Date: Sun May 8 22:58:35 2022 +0000 - upstream: sshsk_sign: trim call to sshkey_fingerprint() + upstream: improve error message when 'ssh-keygen -Y sign' is unable to - the resulting fingerprint doesn't appear to be used for anything, - and we end up leaking it. + load a private key; bz3429, reported by Adam Szkoda ok dtucker@ - from Pedro Martelletto; ok dtucker & me + OpenBSD-Commit-ID: bb57b285e67bea536ef81b1055467be2fc380e74 + +commit aa61fc82c63d309a90c22ca74fb1da6c6f4372fd +Author: Tobias Heider +Date: Mon May 9 02:00:01 2022 +0200 + + Remove duplicate bcrypt_pbkdf.o from Makefile - OpenBSD-Commit-ID: 5625cf6c68f082bc2cbbd348e69a3ed731d2f9b7 + bcrypt_pbkdf.o is duplicated in the openbsd-compat Makefile's object + file list. -commit 1cd1b2eac39661b849d5a4b4b56363e22bb5f61e +commit deb506d00da8d11fb04c1e7b9b1e1cc379c1705c Author: djm@openbsd.org -Date: Fri Jan 14 03:31:52 2022 +0000 +Date: Sun May 8 22:32:36 2022 +0000 - upstream: use status error message to communicate ~user expansion + upstream: When performing operations that glob(3) a remote path, ensure - failures; provides better experience for scp in sftp mode, where ~user paths - are more likely to be used; spotted jsg, feedback jsg & deraadt ok jsg & - markus + that the implicit working directory used to construct that path escapes + glob(3) characters. + + This prevents glob characters from being processed in places they + shouldn't, e.g. "cd /tmp/a*/", "get *.txt" should have the get operation + treat the path "/tmp/a*" literally and not attempt to expand it. - (forgot to include this file in previous commit) + Reported by Lusia Kundel; ok markus@ - OpenBSD-Commit-ID: d37cc4c8c861ce48cd6ea9899e96aaac3476847b + OpenBSD-Commit-ID: 4f647f58482cbad3d58b1eab7f6a1691433deeef -commit a1d42a6ce0398da3833bedf374ef2571af7fea50 -Author: Damien Miller -Date: Fri Jan 14 13:49:32 2022 +1100 +commit f38cf74f20b5da113cfa823afd5bfb5c6ba65f3d +Author: Darren Tucker +Date: Fri May 6 14:50:18 2022 +1000 - fix edge case in poll(2) wrapper - - Correct handling of select(2) exceptfds. These should only be consulted - for POLLPRI flagged pfds and not unconditionally converted to POLLERR. - - with and ok dtucker@ + Also retest OpenBSD upstream on .yml changes. -commit 976b9588b4b5babcaceec4767a241c11a67a5ccb +commit f87a132800ba3710ab130d703448a31ef1128d77 Author: Darren Tucker -Date: Fri Jan 14 13:46:35 2022 +1100 +Date: Fri May 6 14:46:09 2022 +1000 - Wrap OpenSSL includes in unit tests in ifdef. - - Fixes unit test on systems that do not have OpenSSL headers installed. + Note that, for now, we need variadic macros. -commit c171879374b2e8b07157503f5639ed0bce59ce89 +commit 217b518e0f7c52c4b909e935141a55344c61e644 Author: Darren Tucker -Date: Thu Jan 13 15:53:33 2022 +1100 +Date: Fri May 6 14:39:34 2022 +1000 - Remove sort wrapper. + Add ubsan minimal testcase on OpenBSD. - agent-restrict now takes care of this itself. + As suggested by djm@. -commit 9cc2654403f1a686bb26c07a6ac790edf334cef5 -Author: dtucker@openbsd.org -Date: Thu Jan 13 04:53:16 2022 +0000 +commit 457dce2cfef6a48f5442591cd8b21c7e8cba13f8 +Author: djm@openbsd.org +Date: Thu May 5 01:04:14 2022 +0000 - upstream: Set LC_ALL in both local and remote shells so that sorted + upstream: sshkey_unshield_private() contains a exact duplicate of - output matches regardless of what the user's shell sets it to. ok djm@ + the code in private2_check_padding(). Pull private2_check_padding() up so the + code can be reused. From Martin Vahlensieck, ok deraadt@ - OpenBSD-Regress-ID: 4e97dd69a68b05872033175a4c2315345d01837f + OpenBSD-Commit-ID: 876884c3f0e62e8fd8d1594bab06900f971c9c85 -commit 7a75f748cb2dd2f771bf70ea72698aa027996ab1 -Author: dtucker@openbsd.org -Date: Thu Jan 13 04:22:10 2022 +0000 +commit 0e44db4d9cb313e68a59a44d27884af66c02356e +Author: djm@openbsd.org +Date: Thu May 5 00:56:58 2022 +0000 - upstream: Avoid %'s in commands (not used in OpenBSD, but used in + upstream: channel_new no longer frees remote_name. So update the - -portable's Valgrind test) being interpretted as printf format strings. + comment accordingly. As remote_name is not modified, it can be const as + well. From Martin Vahlensieck - OpenBSD-Regress-ID: dc8655db27ac4acd2c386c4681bf42a10d80b043 - -commit 6c435bd4994d71442192001483a1cdb846e5ffcd -Author: Darren Tucker -Date: Wed Jan 12 16:58:13 2022 +1100 - - Stop on first test failure to minimize logs. + OpenBSD-Commit-ID: e4e10dc8dc9f40c166ea5a8e991942bedc75a76a -commit 4bc2ba6095620a4484b708ece12842afd8c7685b -Author: dtucker@openbsd.org -Date: Wed Jan 12 07:18:37 2022 +0000 +commit 37b62fd5caf19c85a48241535277cefff65adace +Author: djm@openbsd.org +Date: Thu May 5 00:55:11 2022 +0000 - upstream: Use egrep when searching for an anchored string. + upstream: mux.c: mark argument as const; from Martin Vahlensieck - OpenBSD-Regress-ID: dd114a2ac27ac4b06f9e4a586d3f6320c54aeeb4 - -commit 6bf2efa2679da1e8e60731f41677b2081dedae2c -Author: Darren Tucker -Date: Wed Jan 12 18:25:06 2022 +1100 - - Add "rev" command replacement if needed. + OpenBSD-Commit-ID: 69a1a93a55986c7c2ad9f733c093b46a47184341 -commit 72bcd7993dadaf967bb3d8564ee31cbf38132b5d -Author: dtucker@openbsd.org -Date: Wed Jan 12 03:30:32 2022 +0000 +commit f4e67c0ad259b4cf10177277a5827fa5545bac53 +Author: markus@openbsd.org +Date: Wed May 4 07:31:22 2022 +0000 - upstream: Don't log NULL hostname in restricted agent code, - - printf("%s", NULL) is not safe on all platforms. with & ok djm + upstream: make sure stdout is non-blocking; ok djm@ - OpenBSD-Commit-ID: faf10cdae4adde00cdd668cd1f6e05d0a0e32a02 + OpenBSD-Commit-ID: 64940fffbd1b882eda2d7c8c7a43c79368309c0d -commit acabefe3f8fb58c867c99fed9bbf84dfa1771727 -Author: djm@openbsd.org -Date: Tue Jan 11 22:33:16 2022 +0000 +commit e5c036d2092c00bef395e9161dc5ce42d4be9565 +Author: florian@openbsd.org +Date: Tue May 3 07:42:27 2022 +0000 - upstream: remove hardcoded domain and use window.location.host, so this + upstream: Add FIDO AUTHENTICATOR section and explain a bit how FIDO + + works. The wording came mostly from the 8.2 OpenSSH release notes, addapted + to fit the man page. Then move the -O bits into the new section as is already + done for CERTIFICATES and MODULI GENERATION. Finally we can explain the + trade-offs of resident keys. While here, consistently refer to the FIDO + thingies as "FIDO authenticators", not "FIDO tokens". - can be run anywhere + input & OK jmc, naddy - OpenBSD-Regress-ID: 2ac2ade3b6227d9c547351d3ccdfe671e62b7f92 + OpenBSD-Commit-ID: dd98748d7644df048f78dcf793b3b63db9ab1d25 -commit 96da0946e44f34adc0397eb7caa6ec35a3e79891 -Author: dtucker@openbsd.org -Date: Tue Jan 11 02:56:19 2022 +0000 +commit 575771bf79bef7127be6aaccddc46031ea15529e +Author: jmc@openbsd.org +Date: Mon May 2 05:40:37 2022 +0000 - upstream: "void" functions should not return anything. From Tim Rice + upstream: remove an obsolete rsa1 format example from an example; - via -portable. + from megan batty + ok djm - OpenBSD-Commit-ID: ce6616304f4c9881b46413e616b226c306830e2a + OpenBSD-Commit-ID: db2c89879c29bf083df996bd830abfb1e70d62bf -commit a882a09722c9f086c9edb65d0c4022fd965ec1ed +commit 0bc6b4c8f04e292577bdb44d5dc6b630d3448087 Author: djm@openbsd.org -Date: Tue Jan 11 01:26:47 2022 +0000 +Date: Sun May 1 23:20:30 2022 +0000 - upstream: suppress "Connection to xxx closed" messages at LogLevel >= + upstream: fix some integer overflows in sieve_large() that show up when - error bz3378; ok dtucker@ + trying to generate modp groups > 16k bits. Reported via GHPR#306 by Bertram + Felgenhauer, but fixed in a different way. feedback/ok tb@ - OpenBSD-Commit-ID: d5bf457d5d2eb927b81d0663f45248a31028265c + OpenBSD-Commit-ID: 81cbc6dd3a21c57bd6fadea10e44afe37bca558e -commit 61a1a6af22e17fc94999a5d1294f27346e6c4668 -Author: Damien Miller -Date: Wed Jan 12 08:57:49 2022 +1100 +commit a45615cb172bc827e21ec76750de39dfb30ecc05 +Author: djm@openbsd.org +Date: Fri Apr 29 04:55:07 2022 +0000 - OS X poll(2) is broken; use compat replacement + upstream: be stricter in which characters will be accepted in - Darwin's poll(2) implementation is broken. For character-special - devices like /dev/null, it returns POLLNVAL when polled with - POLLIN. + specifying a mask length; allow only 0-9. From khaleesicodes via GHPR#278; ok + dtucker@ - Apparently this is Apple bug 3710161, which is AFAIK not public, - but a websearch will find other OSS projects rediscovering it - periodically since it was first identified in 2005 (!!) + OpenBSD-Commit-ID: e267746c047ea86665cdeccef795a8a56082eeb2 -commit 613a6545fc5a9542753b503cbe5906538a640b60 +commit 4835544d2dd31de6ffc7dba59f92093aea98155b Author: Darren Tucker -Date: Tue Jan 11 20:56:01 2022 +1100 +Date: Sat Apr 30 10:56:41 2022 +1000 - libhardended_malloc.so moved into out dir. + Add Mac OS X 12 test target. -commit 61761340be5e11046556623f8f5412b236cefa95 -Author: Tim Rice -Date: Mon Jan 10 11:07:04 2022 -0800 +commit 97a6a8b8c1f2da09712d0e72d0ef800e4edd34cd +Author: Darren Tucker +Date: Fri Apr 29 18:27:34 2022 +1000 - Make USL compilers happy - UX:acomp: ERROR: "sftp-server.c", line 567: void function cannot return value + Only run tests when source files change. + + Also run tests on changes to V_9_0 branch. -commit 3ef403f351e80a59b6f7e9d43cb82c181855483c +commit 6d0392b9ff4b50a56ac5685d1b9392e2cd432ca3 Author: Darren Tucker -Date: Mon Jan 10 21:07:38 2022 +1100 +Date: Fri Apr 29 18:22:34 2022 +1000 - Add wrapper for "sort" to set LC_ALL=C. - - Found by djm, this should make sorts stable and reduce test flakiness. + Remove now-empty int32_minmax.inc. -commit bd69e29f5716090181dbe0b8272eb7eab1a383bb -Author: dtucker@openbsd.org -Date: Sat Jan 8 07:55:26 2022 +0000 +commit af59463553b5ad52d3b42c4455ee3c5600158bb7 +Author: djm@openbsd.org +Date: Fri Apr 29 03:24:30 2022 +0000 - upstream: Remove errant "set -x" left over from debugging. + upstream: mention that the helpers are used by ssh(1), ssh-agent(1) - OpenBSD-Regress-ID: cd989268e034264cec5df97be7581549032c87dc + and ssh-keygen(1). Previously only ssh(1) was mentioned. From Pedro + Martelletto + + OpenBSD-Commit-ID: 30f880f989d4b329589c1c404315685960a5f153 -commit 1a7c88e26fd673813dc5f61c4ac278564845e004 +commit 3e26b3a6eebcee27be177207cc0846fb844b7a56 Author: dtucker@openbsd.org -Date: Sat Jan 8 07:01:13 2022 +0000 +Date: Fri Apr 29 03:16:48 2022 +0000 - upstream: Enable all supported hostkey algorithms (but no others). + upstream: Don't leak SK device. Patch from Pedro Martelletto via - Allows hostbased test to pass when built without OpenSSL. + github PR#316. ok djm@ - OpenBSD-Regress-ID: 5ddd677a68b672517e1e78460dc6ca2ccc0a9562 + OpenBSD-Commit-ID: 17d11327545022e727d95fd08b213171c5a4585d -commit 12b457c2a42ff271e7967d9bedd068cebb048db9 +commit 247082b5013f0d4fcae8f97453f2a2f01bcda811 Author: djm@openbsd.org -Date: Sat Jan 8 07:37:32 2022 +0000 +Date: Fri Apr 29 03:13:32 2022 +0000 - upstream: use status error message to communicate ~user expansion + upstream: fix memleak on session-bind path; from Pedro Martelletto, ok - failures; provides better experience for scp in sftp mode, where ~user paths - are more likely to be used; spotted jsg, feedback jsg & deraadt ok jsg & - markus + dtucker@ - OpenBSD-Commit-ID: fc610ce00ca0cdc2ecdabbd49ce7cb82033f905f + OpenBSD-Commit-ID: e85899a26ba402b4c0717b531317e8fc258f0a7e -commit 63670d4e9030bcee490d5a9cce561373ac5b3b23 +commit e05522008092ceb86a87bdd4ad7878424315db89 Author: djm@openbsd.org -Date: Sat Jan 8 07:36:11 2022 +0000 +Date: Thu Apr 28 02:53:31 2022 +0000 - upstream: fix some corner-case bugs in scp sftp-mode handling of - - ~-prefixed paths; spotted by jsg; feedback jsg & deraadt, ok jsg & markus + upstream: avoid printing hash algorithm twice; from lucas AT sexy.is - OpenBSD-Commit-ID: d1697dbaaa9f0f5649d69be897eab25c7d37c222 + OpenBSD-Commit-ID: 9d24671e10a84141b7c504396cabad600e47a941 -commit e14940bbec57fc7d3ce0644dbefa35f5a8ec97d0 -Author: djm@openbsd.org -Date: Sat Jan 8 07:34:57 2022 +0000 +commit 0979e29356915261d69a9517a1e0aaade7c9fc75 +Author: dtucker@openbsd.org +Date: Wed Apr 27 11:08:55 2022 +0000 - upstream: more idiomatic error messages; spotted by jsg & deraadt - - ok jsg & markus + upstream: Add authfd path to debug output. ok markus@ - OpenBSD-Commit-ID: 43618c692f3951747b4151c477c7df22afe2bcc8 + OpenBSD-Commit-ID: f735a17d1a6f2bee63bfc609d76ef8db8c090890 -commit 9acddcd5918c623f7ebf454520ffe946a8f15e90 -Author: djm@openbsd.org -Date: Sat Jan 8 07:33:54 2022 +0000 +commit 67b7c784769c74fd4d6b147d91e17e1ac1a8a96d +Author: dtucker@openbsd.org +Date: Tue Apr 26 07:41:44 2022 +0000 - upstream: add a variant of send_status() that allows overriding the + upstream: Check sshauthopt_new() for NULL. bz#3425, from - default, generic error message. feedback/ok markus & jsg + tessgauthier at microsoft.com. ok djm@ - OpenBSD-Commit-ID: 81f251e975d759994131b717ee7c0b439659c40f + OpenBSD-Commit-ID: af0315bc3e44aa406daa7e0ae7c2d719a974483f -commit 961411337719d4cd78f1ab33e4ac549f3fa22f50 -Author: djm@openbsd.org -Date: Sat Jan 8 07:32:45 2022 +0000 +commit d571314d14b919fbd7c84a61f9bf2065fc0a6841 +Author: millert@openbsd.org +Date: Wed Apr 20 16:00:25 2022 +0000 - upstream: refactor tilde_expand_filename() and make it handle ~user + upstream: Remove unnecessary includes: openssl/hmac.h and - paths with no trailing slash; feedback/ok markus and jsg + openssl/evp.h. From Martin Vahlensieck. - OpenBSD-Commit-ID: a2ab365598a902f0f14ba6a4f8fb2d07a9b5d51d + OpenBSD-Commit-ID: a6debb5fb0c8a44e43e8d5ca7cc70ad2f3ea31c3 -commit dc38236ab6827dec575064cac65c8e7035768773 -Author: dtucker@openbsd.org -Date: Thu Jan 6 22:14:25 2022 +0000 +commit da8dddf8cc1f2516ff894b8183e83a7c5ba3ef80 +Author: millert@openbsd.org +Date: Wed Apr 20 15:59:18 2022 +0000 - upstream: Don't explicitly set HostbasedAuthentication in + upstream: Add missing includes of stdlib.h and stdint.h. We need - sshd_config. It defaults to "no", and not explicitly setting it allows us to - enable it for the (optional) hostbased test. + stdlib.h for malloc(3) and stdint.h for SIZE_MAX. Unlike the other xmss + files, ssh-xmss.c does not include xmss_commons.h so ssh-xmss.c must include + those headers itself. From Martin Vahlensieck - OpenBSD-Regress-ID: aa8e3548eb5793721641d26e56c29f363b767c0c + OpenBSD-Commit-ID: 70e28a9818cee3da1be2ef6503d4b396dd421e6b -commit e12d912ddf1c873cb72e5de9a197afbe0b6622d2 -Author: dtucker@openbsd.org -Date: Thu Jan 6 21:46:56 2022 +0000 +commit fe9d87a6800a7a33be08f4d5ab662a758055ced2 +Author: millert@openbsd.org +Date: Wed Apr 20 15:56:49 2022 +0000 - upstream: Add test for hostbased auth. It requires some external + upstream: Avoid an unnecessary xstrdup in rm_env() when matching - setup (see comments at the top) and thus is disabled unless - TEST_SSH_HOSTBASED_AUTH and SUDO are set. + patterns. Since match_pattern() doesn't modify its arguments (they are + const), there is no need to make an extra copy of the strings in + options->send_env. From Martin Vahlensieck - OpenBSD-Regress-ID: 3ec8ba3750c5b595fc63e7845d13483065a4827a + OpenBSD-Commit-ID: 2c9db31e3f4d3403b49642c64ee048b2a0a39351 -commit a48533a8da6a0f4f05ecd055dc8048047e53569e -Author: Damien Miller -Date: Fri Jan 7 09:24:26 2022 +1100 +commit 7bf2eb958fbb551e7d61e75c176bb3200383285d +Author: Darren Tucker +Date: Tue Apr 26 23:30:59 2022 +1000 - depend + Add debian-riscv64 test target. -commit d9dbb5d9a0326e252d3c7bc13beb9c2434f59409 -Author: djm@openbsd.org -Date: Thu Jan 6 22:06:51 2022 +0000 +commit 3913c935523902482974c4c503bcff20bd850a6a +Author: Darren Tucker +Date: Mon Apr 25 17:20:06 2022 +1000 - upstream: allow hostbased auth to select RSA keys when only - - RSA/SHA2 are configured (this is the default case); ok markus@ - - OpenBSD-Commit-ID: 411c18c7bde40c60cc6dfb7017968577b4d4a827 + Update OpenSSL and LibreSSL versions in tests. -commit fdb1d58d0d3888b042e5a500f6ce524486aaf782 -Author: djm@openbsd.org -Date: Thu Jan 6 22:05:42 2022 +0000 +commit dcd8dca29bcdb193ff6be35b96fc55e6e30d37d9 +Author: Darren Tucker +Date: Sat Apr 23 20:40:28 2022 +1000 - upstream: add a helper function to match a key type to a list of - - signature algorithms. RSA keys can make signatures with multiple algorithms, - so some special handling is required. ok markus@ + Include stdlib.h for free() prototype. - OpenBSD-Commit-ID: 03b41b2bda06fa4cd9c84cef6095033b9e49b6ff + ... which is used inside the CUSTOM_SYS_AUTH_GET_LASTLOGIN_MSG block. -commit 11e8c4309a5086a45fbbbc87d0af5323c6152914 -Author: djm@openbsd.org -Date: Thu Jan 6 22:04:20 2022 +0000 +commit 4cc05de568e1c3edd7834ff3bd9d8214eb34861b +Author: Darren Tucker +Date: Sat Apr 23 20:17:26 2022 +1000 - upstream: log some details on hostkeys that ssh loads for - - hostbased authn ok markus@ + Cache timezone data in capsicum sandbox. - OpenBSD-Commit-ID: da17061fa1f0e58cb31b88478a40643e18233e38 + From emaste at freebsd.org, originally part of FreeBSD commit r339216 + / fc3c19a9 with autoconf bits added by me. -commit c6706f661739514a34125aa3136532a958929510 -Author: djm@openbsd.org -Date: Thu Jan 6 22:03:59 2022 +0000 +commit c31404426d212e2964ff9e5e58e1d0fce3d83f27 +Author: dtucker@openbsd.org +Date: Thu Apr 21 01:36:46 2022 +0000 - upstream: log signature algorithm during verification by monitor; + upstream: It looks like we can't completely avoid - ok markus + waiting for processes to exit so retrieve the pid via controlmaster and + use that. - OpenBSD-Commit-ID: 02b92bb42c4d4bf05a051702a56eb915151d9ecc + OpenBSD-Regress-ID: 8246f00f22b14e49d2ff1744c94897ead33d457b -commit 8832402bd500d1661ccc80a476fd563335ef6cdc -Author: djm@openbsd.org -Date: Thu Jan 6 22:02:52 2022 +0000 +commit d19b21afab5c8e2f3df6bd8aee9766bdad3d8c58 +Author: dtucker@openbsd.org +Date: Wed Apr 20 13:25:55 2022 +0000 - upstream: piece of UpdateHostkeys client strictification: when + upstream: Use ssh -f and ControlPersist .. - updating known_hosts with new keys, ignore NULL keys (forgot to include in - prior commit) + to start up test forwards and ssh -O stop to shut them down intead of + sleep loops. This speeds up the test by an order of magnitude. - OpenBSD-Commit-ID: 49d2eda6379490e1ceec40c3b670b973f63dea08 + OpenBSD-Regress-ID: eb3db5f805100919b092a3b2579c611fba3e83e7 -commit c2d9ced1da0276961d86690b3bd7ebdaca7fdbf7 -Author: djm@openbsd.org -Date: Thu Jan 6 22:01:14 2022 +0000 +commit 5f76286a126721fa005de6edf3d1c7a265555f19 +Author: dtucker@openbsd.org +Date: Wed Apr 20 05:24:13 2022 +0000 - upstream: include rejected signature algorithm in error message + upstream: Simplify forward-control test. - and not the (useless) key type; ok markus + Since we no longer need to support SSH1 we don't need to run shell + commands on the other end of the connection and can use ssh -N instead. + This also makes the test less racy. - OpenBSD-Commit-ID: 4180b5ec7ab347b43f84e00b1972515296dab023 + OpenBSD-Regress-ID: 32e94ce272820cc398f30b848b2b0f080d10302c -commit 7aa7b096cf2bafe2777085abdeed5ce00581f641 +commit 687bbf23572d8bdf25cbbcdf8ac583514e1ba710 Author: djm@openbsd.org -Date: Thu Jan 6 22:00:18 2022 +0000 +Date: Thu Mar 31 03:07:33 2022 +0000 - upstream: make ssh-keysign use the requested signature algorithm - - and not the default for the keytype. Part of unbreaking hostbased auth for - RSA/SHA2 keys. ok markus@ + upstream: regression test for sftp cp command - OpenBSD-Commit-ID: b5639a14462948970da3a8020dc06f9a80ecccdc + OpenBSD-Regress-ID: c96bea9edde3a384b254785e7f9b2b24a81cdf82 -commit 291721bc7c840d113a49518f3fca70e86248b8e8 -Author: djm@openbsd.org -Date: Thu Jan 6 21:57:28 2022 +0000 +commit f1233f19a6a9fe58f52946f50df4772f5b136761 +Author: dtucker@openbsd.org +Date: Wed Apr 20 01:13:47 2022 +0000 - upstream: stricter UpdateHostkey signature verification logic on - - the client- side. Require RSA/SHA2 signatures for RSA hostkeys except when - RSA/SHA1 was explicitly negotiated during initial KEX; bz3375 - - ok markus@ + upstream: Import regenerated moduli - OpenBSD-Commit-ID: 46e75e8dfa2c813781805b842580dcfbd888cf29 + OpenBSD-Commit-ID: f9a0726d957cf10692a231996a1f34e7f9cdfeb0 -commit 0fa33683223c76289470a954404047bc762be84c +commit fec014785de198b9a325d1b94e324bb958c5fe7b Author: djm@openbsd.org -Date: Thu Jan 6 21:55:23 2022 +0000 +Date: Wed Apr 20 04:19:11 2022 +0000 - upstream: Fix signature algorithm selection logic for - - UpdateHostkeys on the server side. The previous code tried to prefer RSA/SHA2 - for hostkey proofs of RSA keys, but missed some cases. This will use RSA/SHA2 - signatures for RSA keys if the client proposed these algorithms in initial - KEX. bz3375 + upstream: Try to continue running local I/O for channels in state - Mostly by Dmitry Belyavskiy with some tweaks by me. + OPEN during SSH transport rekeying. The most visible benefit is that it + should make ~-escapes work in the client (e.g. to exit) if the connection + happened to have stalled during a rekey event. Based work by and ok dtucker@ - ok markus@ + OpenBSD-Commit-ID: a66e8f254e92edd4ce09c9f750883ec8f1ea5f45 + +commit e68154b0d4f0f5085a050ea896955da1b1be6e30 +Author: dtucker@openbsd.org +Date: Wed Apr 20 01:13:47 2022 +0000 + + upstream: Import regenerated moduli - OpenBSD-Commit-ID: c17ba0c3236340d2c6a248158ebed042ac6a8029 + OpenBSD-Commit-ID: f9a0726d957cf10692a231996a1f34e7f9cdfeb0 -commit 17877bc81db3846e6e7d4cfb124d966bb9c9296b -Author: djm@openbsd.org -Date: Thu Jan 6 21:48:38 2022 +0000 +commit 69928b106d8f0fa15b88cf3850d992ed81c44ae0 +Author: tj@openbsd.org +Date: Sat Apr 16 00:22:31 2022 +0000 - upstream: convert ssh, sshd mainloops from select() to poll(); + upstream: list the correct version number - feedback & ok deraadt@ and markus@ has been in snaps for a few months + for when usage of the sftp protocol became default and fix a typo + from ed maste - OpenBSD-Commit-ID: a77e16a667d5b194dcdb3b76308b8bba7fa7239c + OpenBSD-Commit-ID: 24e1795ed2283fdeacf16413c2f07503bcdebb31 -commit 5c79952dfe1aa36105c93b3f383ce9be04dee384 -Author: djm@openbsd.org -Date: Thu Jan 6 21:46:23 2022 +0000 +commit 21042a05c0b304c16f655efeec97438249d2e2cc +Author: dtucker@openbsd.org +Date: Tue Apr 12 05:09:49 2022 +0000 - upstream: prepare for conversion of ssh, sshd mainloop from + upstream: Correct path for system known hosts file in description - select() to poll() by moving FD_SET construction out of channel handlers into - separate functions. ok markus + of IgnoreUserKnownHosts. Patch from Martin Vahlensieck via tech@ - OpenBSD-Commit-ID: 937fbf2a4de12b19fb9d5168424e206124807027 + OpenBSD-Commit-ID: 9b7784f054fa5aa4d63cb36bd563889477127215 -commit 24c5187edfef4651a625b7d5d692c8c7e794f71f -Author: djm@openbsd.org -Date: Wed Jan 5 21:54:37 2022 +0000 +commit 53f4aff60a7c1a08a23917bd47496f8901c471f5 +Author: Darren Tucker +Date: Sat Apr 16 14:33:20 2022 +1000 - upstream: add a comment so I don't make this mistake again + Resync moduli.5 with upstream. - OpenBSD-Commit-ID: 69c7f2362f9de913bb29b6318580c5a1b52c921e + 1.18: remove duplicate publication year; carsten dot kunze at arcor dot de + 1.19: ssh-keygen's -G/-T have been replaced with -M generate/screen. -commit 7369900441929058263a17f56aa67e05ff7ec628 -Author: djm@openbsd.org -Date: Wed Jan 5 21:50:00 2022 +0000 +commit d2b888762b9844eb0d8eb59909cdf5af5159f810 +Author: Darren Tucker +Date: Sat Apr 16 14:31:13 2022 +1000 - upstream: fix cut-and-pasto in error message + Retire fbsd6 test VM. - OpenBSD-Commit-ID: 4cc5c619e4b456cd2e9bb760d17e3a9c84659198 + It's long since out of support, relatively slow (it's i686) and the + compiler has trouble with PIE. -commit 294c11b1c7d56d3fb61e329603a782315ed70c62 +commit cd1f70009860a154b51230d367c55ea5f9a4504e Author: djm@openbsd.org -Date: Wed Jan 5 08:25:05 2022 +0000 +Date: Mon Apr 11 22:52:08 2022 +0000 - upstream: select all RSA hostkey algorithms for UpdateHostkeys tests, + upstream: clear io_want/io_ready flags at start of poll() cycle; - not just RSA-SHA1 + avoids plausible spin during rekeying if channel io_want flags are reused + across cycles. ok markus@ deraadt@ - OpenBSD-Regress-ID: b40e62b65863f2702a0c10aca583b2fe76772bd8 + OpenBSD-Commit-ID: 91034f855b7c73cd2591657c49ac30f10322b967 -commit 2ea1108c30e3edb6f872dfc1e6da10b041ddf2c0 -Author: djm@openbsd.org -Date: Wed Jan 5 04:56:15 2022 +0000 +commit aa1920302778273f7f94c2091319aba199068ca0 +Author: dtucker@openbsd.org +Date: Fri Apr 8 05:43:39 2022 +0000 - upstream: regress test both sshsig message hash algorithms, possible + upstream: Note that curve25519-sha256 was later published in - now because the algorithm is controllable via the CLI + RFC8731. ok djm@ - OpenBSD-Regress-ID: 0196fa87acc3544b2b4fd98de844a571cb09a39f + OpenBSD-Commit-ID: 2ac2b5d642d4cf5918eaec8653cad9a4460b2743 -commit 2327c306b5d4a2b7e71178e5a4d139af9902c2b0 +commit 4673fa8f2be983f2f88d5afd754adb1a2a39ec9e Author: djm@openbsd.org -Date: Wed Jan 5 04:50:11 2022 +0000 +Date: Fri Apr 8 04:40:40 2022 +0000 - upstream: allow selection of hash at sshsig signing time; code + upstream: two defensive changes from Tobias Stoeckmann via GHPR287 + + enforce stricter invarient for sshbuf_set_parent() - never allow + a buffer to have a previously-set parent changed. - already supported either sha512 (default) or sha256, but plumbing wasn't - there mostly by Linus Nordberg + In sshbuf_reset(), if the reallocation fails, then zero the entire + buffer and not the (potentially smaller) default initial alloc size. - OpenBSD-Commit-ID: 1b536404b9da74a84b3a1c8d0b05fd564cdc96cd + OpenBSD-Commit-ID: 14583203aa5d50ad38d2e209ae10abaf8955e6a9 -commit 56e941d0a00d6d8bae88317717d5e1b7395c9529 -Author: djm@openbsd.org -Date: Wed Jan 5 04:27:54 2022 +0000 +commit 26eef015e2d2254375e13afaaf753b78932b1bf5 +Author: Damien Miller +Date: Mon Apr 11 16:07:09 2022 +1000 - upstream: add missing -O option to usage() for ssh-keygen -Y sign; + Revert "update build-aux files to match autoconf-2.71" - from Linus Nordberg + This reverts commit 0a8ca39fac6ad19096b6c263436f8b2dd51606f2. - OpenBSD-Commit-ID: 4e78feb4aa830727ab76bb2e3d940440ae1d7af0 + It turns out that the checked-in copies of these files are actually newer + than autoconf-2.71's copies, so this was effectively a downgrade. + Spotted by Bo Anderson via github -commit 141a14ec9b0924709c98df2dd8013bde5d8d12c7 -Author: djm@openbsd.org -Date: Wed Jan 5 04:27:01 2022 +0000 +commit 0a8ca39fac6ad19096b6c263436f8b2dd51606f2 +Author: Damien Miller +Date: Fri Apr 8 14:48:58 2022 +1000 - upstream: move sig_process_opts() to before sig_sign(); no - - functional code change + update build-aux files to match autoconf-2.71 - OpenBSD-Commit-ID: da02d61f5464f72b4e8b299f83e93c3b657932f9 + i.e. config.guess, config.sub and install-sh + +commit 94eb6858efecc1b4f02d8a6bd35e149f55c814c8 +Author: Damien Miller +Date: Wed Apr 6 10:47:48 2022 +1000 + + update version numbers for release -commit 37a14249ec993599a9051731e4fb0ac5e976aec1 +commit 8e4a8eadf4fe74e65e6492f34250f8cf7d67e8da Author: djm@openbsd.org -Date: Wed Jan 5 04:10:39 2022 +0000 +Date: Mon Apr 4 22:45:25 2022 +0000 - upstream: regression test for find-principals NULL deref; from Fabian - - Stelzer + upstream: openssh-9.0 - OpenBSD-Regress-ID: f845a8632a5a7d5ae26978004c93e796270fd3e5 + OpenBSD-Commit-ID: 0dfb461188f4513ec024c1534da8c1ce14c20b64 -commit eb1f042142fdaba93f6c9560cf6c91ae25f6884a -Author: djm@openbsd.org -Date: Wed Jan 5 04:02:42 2022 +0000 +commit a9f23ea2e3227f406880c2634d066f6f50fa5eaa +Author: naddy@openbsd.org +Date: Thu Mar 31 17:58:44 2022 +0000 - upstream: NULL deref when using find-principals when matching an + upstream: ssh: document sntrup761x25519-sha512@openssh.com as - allowed_signers line that contains a namespace restriction, but no - restriction specified on the command-line; report and fix from Fabian Stelzer + default KEX - OpenBSD-Commit-ID: 4a201b86afb668c908d1a559c6af456a61f4b145 + OpenBSD-Commit-ID: 12545bfa10bcbf552d04d9d9520d0f4e98b0e171 -commit 8f3b18030579f395eca2181da31a5f945af12a59 -Author: dtucker@openbsd.org -Date: Tue Jan 4 08:38:53 2022 +0000 +commit 9ec2713d122af79d66ebb9c1d6d9ae8621a8945f +Author: naddy@openbsd.org +Date: Thu Mar 31 17:27:27 2022 +0000 - upstream: Log command invocation while debugging. + upstream: man pages: add missing commas between subordinate and + + main clauses + + jmc@ dislikes a comma before "then" in a conditional, so leave those + untouched. - This will aid in manually reproducing failing commands. + ok jmc@ - OpenBSD-Regress-ID: b4aba8d5ac5675ceebeeeefa3261ce344e67333a + OpenBSD-Commit-ID: 9520801729bebcb3c9fe43ad7f9776ab4dd05ea3 -commit bbf285164df535f0d38c36237f007551bbdae27f +commit 3741df98ffaaff92b474ee70d8ef276b5882f85a Author: Darren Tucker -Date: Sun Dec 26 10:31:15 2021 +1100 +Date: Mon Apr 4 23:52:11 2022 +1000 - Always save config.h as build artifact. - - Should allow better comparison between failing and succeeding test - platforms. + Disable security key on fbsd6 test host. -commit 03bd4ed0db699687c5cd83405d26f81d2dc28d22 +commit 32c12236f27ae83bfe6d2983b67c9bc67a83a417 Author: Darren Tucker -Date: Sat Dec 25 16:42:51 2021 +1100 - - Add OpenBSD 7.0 target. Retire 6.8. - -commit c45a752f0de611afd87755c2887c8a24816d08ee -Author: jsg@openbsd.org -Date: Sat Jan 1 05:55:06 2022 +0000 - - upstream: spelling - - OpenBSD-Commit-ID: c63e43087a64d0727af13409c708938e05147b62 - -commit c672f83a89a756564db0d3af9934ba0e1cf8fa3e -Author: djm@openbsd.org -Date: Tue Jan 4 07:20:33 2022 +0000 +Date: Mon Apr 4 15:16:51 2022 +1000 - upstream: unbreak test: was picking up system ssh-add instead of the - - one supposedly being tested. Spotted by dtucker and using his VM zoo (which - includes some systems old enough to lack ed25519 key support) + Specify TEST_SHELL=bash on AIX. - OpenBSD-Regress-ID: 7976eb3df11cc2ca3af91030a6a8c0cef1590bb5 + The system shells cause the agent-restrict test to fail due to some + quoting so explicitly specify bash until we can get configure to + autmatically work around that. -commit a23698c3082ffe661abed14b020eac9b0c25eb9f -Author: djm@openbsd.org -Date: Sat Jan 1 04:18:06 2022 +0000 +commit 90452c8b69d065b7c7c285ff78b81418a75bcd76 +Author: Darren Tucker +Date: Fri Apr 1 23:38:44 2022 +1100 - upstream: fix memleak in process_extension(); oss-fuzz issue #42719 + Only return events from ppoll that were requested. - OpenBSD-Commit-ID: d8d49f840162fb7b8949e3a5adb8107444b6de1e + If the underlying system's select() returns bits that were not in the + request set, our ppoll() implementation can return revents for events + not requested, which can apparently cause a hang. Only return revents + for activity in the requested event set. bz#3416, analysis and fix by + yaroslav.kuzmin at vmssoftware com, ok djm@ -commit cb885178f36b83d0f14cfe9f345d2068103feed0 -Author: jsg@openbsd.org -Date: Sat Jan 1 01:55:30 2022 +0000 +commit 6c49eb5fabc56f4865164ed818aa5112d09c31a8 +Author: Darren Tucker +Date: Fri Apr 1 23:21:40 2022 +1100 - upstream: spelling ok dtucker@ - - OpenBSD-Commit-ID: bfc7ba74c22c928de2e257328b3f1274a3dfdf19 + Only run regression tests on slow VMs. -commit 6b977f8080a32c5b3cbb9edb634b9d5789fb79be -Author: djm@openbsd.org -Date: Sun Dec 26 23:34:41 2021 +0000 +commit f67e47903977b42cb6abcd5565a61bd7293e4dc3 +Author: Darren Tucker +Date: Fri Apr 1 23:21:06 2022 +1100 - upstream: split method list search functionality from - - authmethod_lookup() into a separate authmethod_byname(), for cases where we - don't need to check whether a method is enabled, etc. - - use this to fix the "none" authentication method regression reported - by Nam Nguyen via bugs@ - - ok deraadt@ - - OpenBSD-Commit-ID: 8cd188dc3a83aa8abe5b7693e762975cd8ea8a17 + Increase test timeout to allow slow VMs to finish -commit 0074aa2c8d605ee7587279a22cdad4270b4ddd07 -Author: jmc@openbsd.org -Date: Wed Dec 22 06:56:41 2021 +0000 +commit 02488c1b54065ddc4f25835dbd2618b2a2fe21f5 +Author: Darren Tucker +Date: Fri Apr 1 16:27:38 2022 +1100 - upstream: sort -H and -h in SYNOPSIS/usage(); tweak the -H text; - - ok djm - - OpenBSD-Commit-ID: 90721643e41e9e09deb5b776aaa0443456ab0965 + Use bash or ksh if available for SH in Makefile. -commit 1c9853a68b2319f2e5f929179735e8fbb9988a67 +commit 34c7018c316af4773e432066de28d0ef9d0888cd Author: Darren Tucker -Date: Wed Dec 22 19:33:10 2021 +1100 +Date: Fri Apr 1 14:56:54 2022 +1100 - Use SHA.*_HMAC_BLOCK_SIZE if needed. + Set Makefile SHELL as determined by configure. - If the platform has a native SHA2, does not define SHA.*_BLOCK_LENGTH - but does define SHA.*_HMAC_BLOCK_SIZE (eg Solaris) then use the latter. - Should fix --without-openssl build on Solaris. + This should improve compatibility for users with non-POSIX shells. If + using Makefile.in directly (eg make -f Makefile.in distprep) then SHELL + will need to be specified on the command line (along with MANFMT in that + particular case). ok djm@ -commit 715c892f0a5295b391ae92c26ef4d6a86ea96e8e -Author: Damien Miller -Date: Wed Dec 22 09:02:50 2021 +1100 +commit 5b054d76402faab38c48377efd112426469553a0 +Author: Darren Tucker +Date: Fri Apr 1 13:16:47 2022 +1100 - remove sys/param.h in -portable, after upstream + Skip slow tests on (very) slow test targets. -commit 7a7c69d8b4022b1e5c0afb169c416af8ce70f3e8 +commit b275818065b31a865142c48c2acf6a7c1655c542 Author: Damien Miller -Date: Mon Dec 20 13:05:20 2021 +1100 +Date: Thu Mar 31 14:11:36 2022 +1100 - add agent-restrict.sh file, missed in last commit + depend -commit f539136ca51a4976644db5d0be8158cc1914c72a +commit 3fa539c3ffaabd6211995512d33e29150f88c5c5 Author: djm@openbsd.org -Date: Sun Dec 19 22:20:12 2021 +0000 +Date: Thu Mar 31 03:07:03 2022 +0000 - upstream: regression test for destination restrictions in ssh-agent + upstream: add a sftp client "cp" command that supports server-side - OpenBSD-Regress-ID: 3c799d91e736b1753b4a42d80c42fc40de5ad33d - -commit 6e4980eb8ef94c04874a79dd380c3f568e8416d6 -Author: anton@openbsd.org -Date: Sat Dec 18 06:53:59 2021 +0000 - - upstream: Make use of ntests variable, pointed out by clang 13. + copying of files. Useful for this task and for testing the copy-data + extension. Patch from Mike Frysinger; ok dtucker@ - OpenBSD-Regress-ID: 4241a3d21bdfa1630ed429b6d4fee51038d1be72 + OpenBSD-Commit-ID: 1bb1b950af0d49f0d5425b1f267e197aa1b57444 -commit 3eead8158393b697f663ec4301e3c7b6f24580b1 -Author: deraadt@openbsd.org -Date: Tue Dec 14 21:25:27 2021 +0000 +commit 7988bfc4b701c4b3fe9b36c8561a3d1c5d4c9a74 +Author: djm@openbsd.org +Date: Thu Mar 31 03:05:49 2022 +0000 - upstream: sys/param.h cleanup, mostly using MINIMUM() and + upstream: add support for the "corp-data" protocol extension to - ok dtucker + allow server-side copies to be performed without having to go via the client. + Patch by Mike Frysinger, ok dtucker@ - OpenBSD-Regress-ID: 172a4c45d3bcf92fa6cdf6c4b9db3f1b3abe4db0 + OpenBSD-Commit-ID: 00aa510940fedd66dab1843b58682de4eb7156d5 -commit 266678e19eb0e86fdf865b431b6e172e7a95bf48 +commit 32dc1c29a4ac9c592ddfef0a4895eb36c1f567ba Author: djm@openbsd.org -Date: Sun Dec 19 22:15:42 2021 +0000 +Date: Wed Mar 30 21:13:23 2022 +0000 - upstream: document host-bound publickey authentication + upstream: select post-quantum KEX - OpenBSD-Commit-ID: ea6ed91779a81f06d961e30ecc49316b3d71961b - -commit 3d00024b3b156aa9bbd05d105f1deb9cb088f6f7 -Author: djm@openbsd.org -Date: Sun Dec 19 22:15:21 2021 +0000 - - upstream: document agent protocol extensions + sntrup761x25519-sha512@openssh.com as the default; ok markus@ - OpenBSD-Commit-ID: 09e8bb391bbaf24c409b75a4af44e0cac65405a7 + OpenBSD-Commit-ID: f02d99cbfce22dffec2e2ab1b60905fbddf48fb9 -commit c385abf76511451bcba78568167b1cd9e90587d5 +commit d6556de1db0822c76ba2745cf5c097d9472adf7c Author: djm@openbsd.org -Date: Sun Dec 19 22:14:47 2021 +0000 +Date: Wed Mar 30 21:10:25 2022 +0000 - upstream: PubkeyAuthentication=yes|no|unbound|host-bound - - Allow control over which pubkey methods are used. Added out of - concern that some hardware devices may have difficulty signing - the longer pubkey authentication challenges. This provides a - way for them to disable the extension. It's also handy for - testing. + upstream: fix poll() spin when a channel's output fd closes without - feedback / ok markus@ + data in the channel buffer. Introduce more exact packing of channel fds into + the pollfd array. fixes bz3405 and bz3411; ok deraadt@ markus@ - OpenBSD-Commit-ID: ee52580db95c355cf6d563ba89974c210e603b1a + OpenBSD-Commit-ID: 06740737849c9047785622ad5d472cb6a3907d10 -commit 34b1e9cc7654f41cd4c5b1cc290b999dcf6579bb +commit 8a74a96d25ca4d32fbf298f6c0ac5a148501777d Author: djm@openbsd.org -Date: Sun Dec 19 22:14:12 2021 +0000 +Date: Wed Mar 30 04:33:09 2022 +0000 - upstream: document destination-constrained keys + upstream: ssh is almost out of getopt() characters; note the - feedback / ok markus@ + remaining remaining available ones in a comment - OpenBSD-Commit-ID: cd8c526c77268f6d91c06adbee66b014d22d672e + OpenBSD-Commit-ID: 48d38cef59d6bc8e84c6c066f6d601875d3253fd -commit a6d7677c4abcfba268053e5867f2acabe3aa371b +commit 6d4fc51adb9d8a42f67b5474f02f877422379de6 Author: djm@openbsd.org -Date: Sun Dec 19 22:13:55 2021 +0000 +Date: Wed Mar 30 04:27:51 2022 +0000 - upstream: Use hostkey parsed from hostbound userauth request - - Require host-bound userauth requests for forwarded SSH connections. - - The hostkey parsed from the host-bound userauth request is now checked - against the most recently bound session ID / hostkey on the agent socket - and the signature refused if they do not match. + upstream: avoid NULL deref via ssh-keygen -Y find-principals. - ok markus@ + bz3409, reported by Mateusz Adamowski - OpenBSD-Commit-ID: d69877c9a3bd8d1189a5dbdeceefa432044dae02 + OpenBSD-Commit-ID: a3b2c02438052ee858e0ee18e5a288586b5df2c5 -commit baaff0ff4357cc5a079621ba6e2d7e247b765061 -Author: djm@openbsd.org -Date: Sun Dec 19 22:13:33 2021 +0000 +commit e937514920335b92b543fd9be79cd6481d1eb0b6 +Author: Darren Tucker +Date: Mon Mar 28 17:51:03 2022 +1100 - upstream: agent support for parsing hostkey-bound signatures - - Allow parse_userauth_request() to work with blobs from - publickey-hostbound-v00@openssh.com userauth attempts. - - Extract hostkey from these blobs. - - ok markus@ - - OpenBSD-Commit-ID: 81c064255634c1109477dc65c3e983581d336df8 + Add AIX 5.1 test target. -commit 3e16365a79cdeb2d758cf1da6051b1c5266ceed7 -Author: djm@openbsd.org -Date: Sun Dec 19 22:13:12 2021 +0000 +commit 4bbe815ba974b4fd89cc3fc3e3ef1be847a0befe +Author: Darren Tucker +Date: Sat Mar 26 22:01:31 2022 +1100 - upstream: EXT_INFO negotiation of hostbound pubkey auth - - the EXT_INFO packet gets a new publickey-hostbound@openssh.com to - advertise the hostbound public key method. - - Client side support to parse this feature flag and set the kex->flags - indicator if the expected version is offered (currently "0"). - - ok markus@ + Drop leading "v" from release version identifier. - OpenBSD-Commit-ID: 4cdb2ca5017ec1ed7a9d33bda95c1d6a97b583b0 + It's present in the git tags but not in the release tarball names. + Also drop extra "/" from URL path. -commit 94ae0c6f0e35903b695e033bf4beacea1d376bb1 -Author: djm@openbsd.org -Date: Sun Dec 19 22:12:54 2021 +0000 +commit f5cdd3b3c275dffaebfca91df782dca29975e9ac +Author: Darren Tucker +Date: Sat Mar 26 16:28:04 2022 +1100 - upstream: client side of host-bound pubkey authentication - - Add kex->flags member to enable the publickey-hostbound-v00@openssh.com - authentication method. - - Use the new hostbound method in client if the kex->flags flag was set, - and include the inital KEX hostkey in the userauth request. - - Note: nothing in kex.c actually sets the new flag yet - - ok markus@ + Use tarballs when testing LibreSSL releases. - OpenBSD-Commit-ID: 5a6fce8c6c8a77a80ee1526dc467d91036a5910d + This means they'll still work when the combination of -portable and + openbsd github repos no longer match. -commit 288fd0218dbfdcb05d9fbd1885904bed9b6d42e6 -Author: djm@openbsd.org -Date: Sun Dec 19 22:12:30 2021 +0000 +commit 24dc37d198f35a7cf71bf4d5384363c7ef4209d4 +Author: Darren Tucker +Date: Sat Mar 26 15:02:45 2022 +1100 - upstream: sshd side of hostbound public key auth - - This is identical to the standard "publickey" method, but it also includes - the initial server hostkey in the message signed by the client. - - feedback / ok markus@ + Remove now-unused passwd variable. + +commit 5b467ceef2c356f0a77f5e8ab4eb0fac367e4d24 +Author: Darren Tucker +Date: Sat Mar 26 13:15:44 2022 +1100 + + Missing semicolon. + +commit 2923d026e55998133c0f6e5186dca2a3c0fa5ff5 +Author: Darren Tucker +Date: Sat Mar 26 12:49:50 2022 +1100 + + Factor out platform-specific locked account check. - OpenBSD-Commit-ID: 7ea01bb7238a560c1bfb426fda0c10a8aac07862 + Also fixes an incorrect free on platforms with both libiaf and shadow + passwords (probably only Unixware). Prompted by github PR#284, + originally from @c3h2_ctf and stoeckmann@. + +commit d23efe4b12886ffe416be10bc0a7da6ca8aa72d1 +Author: Darren Tucker +Date: Sat Mar 26 08:13:46 2022 +1100 + + Add OpenWRT mips and mipsel test targets. -commit dbb339f015c33d63484261d140c84ad875a9e548 +commit 16ea8b85838dd7a4dbeba4e51ac4f43fd68b1e5b Author: djm@openbsd.org -Date: Sun Dec 19 22:12:07 2021 +0000 +Date: Sun Mar 20 08:52:17 2022 +0000 - upstream: prepare for multiple names for authmethods - - allow authentication methods to have one additional name beyond their - primary name. - - allow lookup by this synonym - - Use primary name for authentication decisions, e.g. for - PermitRootLogin=publickey - - Pass actual invoked name to the authmethods, so they can tell whether they - were requested via the their primary name or synonym. + upstream: don't leak argument list; bz3404, reported by Balu - ok markus@ + Gajjala ok dtucker@ - OpenBSD-Commit-ID: 9e613fcb44b8168823195602ed3d09ffd7994559 + OpenBSD-Commit-ID: fddc32d74e5dd5cff1a49ddd6297b0867eae56a6 -commit 39f00dcf44915f20684160f0a88d3ef8a3278351 +commit a72bde294fe0518c9a44ba63864093a1ef2425e3 Author: djm@openbsd.org -Date: Sun Dec 19 22:11:39 2021 +0000 +Date: Sun Mar 20 08:51:21 2022 +0000 - upstream: ssh-agent side of destination constraints + upstream: make addargs() and replacearg() a little more robust and - Gives ssh-agent the ability to parse restrict-destination-v00@openssh.com - constraints and to apply them to keys. + improve error reporting - Check constraints against the hostkeys recorded for a SocketEntry when - attempting a signature, adding, listing or deleting keys. Note that - the "delete all keys" request will remove constrained keys regardless of - location. + make freeargs(NULL) a noop like the other free functions - feedback Jann Horn & markus@ - ok markus@ + ok dtucker as part of bz3403 - OpenBSD-Commit-ID: 84a7fb81106c2d609a6ac17469436df16d196319 + OpenBSD-Commit-ID: 15f86da83176978b4d1d288caa24c766dfa2983d -commit ce943912df812c573a33d00bf9e5435b7fcca3f7 +commit 731087d2619fa7f01e675b23f57af10d745e8af2 Author: djm@openbsd.org -Date: Sun Dec 19 22:11:06 2021 +0000 +Date: Fri Mar 18 04:04:11 2022 +0000 - upstream: ssh-add side of destination constraints - - Have ssh-add accept a list of "destination constraints" that allow - restricting where keys may be used in conjunction with a ssh-agent/ssh - that supports session ID/hostkey binding. - - Constraints are specified as either "[user@]host-pattern" or - "host-pattern>[user@]host-pattern". - - The first form permits a key to be used to authenticate as the - specified user to the specified host. - - The second form permits a key that has previously been permitted - for use at a host to be available via a forwarded agent to an - additional host. - - For example, constraining a key with "user1@host_a" and - "host_a>host_b". Would permit authentication as "user1" at - "host_a", and allow the key to be available on an agent forwarded - to "host_a" only for authentication to "host_b". The key would not - be visible on agent forwarded to other hosts or usable for - authentication there. - - Internally, destination constraints use host keys to identify hosts. - The host patterns are used to obtain lists of host keys for that - destination that are communicated to the agent. The user/hostkeys are - encoded using a new restrict-destination-v00@openssh.com key - constraint. - - host keys are looked up in the default client user/system known_hosts - files. It is possible to override this set on the command-line. + upstream: don't try to resolve ListenAddress directives in the sshd - feedback Jann Horn & markus@ - ok markus@ + re-exec path - we're never going to use the result and if the operation fails + then it can prevent connections from being accepted. Reported by Aaron + Poffenberger; with / ok dtucker@ - OpenBSD-Commit-ID: 6b52cd2b637f3d29ef543f0ce532a2bce6d86af5 + OpenBSD-Commit-ID: 44c53a43909a328e2f5ab26070fdef3594eded60 -commit 5e950d765727ee0b20fc3d2cbb0c790b21ac2425 +commit 1c83c082128694ddd11ac05fdf31d70312ff1763 Author: djm@openbsd.org -Date: Sun Dec 19 22:10:24 2021 +0000 +Date: Fri Mar 18 02:50:21 2022 +0000 - upstream: ssh-add side of destination constraints - - Have ssh-add accept a list of "destination constraints" that allow - restricting where keys may be used in conjunction with a ssh-agent/ssh - that supports session ID/hostkey binding. - - Constraints are specified as either "[user@]host-pattern" or - "host-pattern>[user@]host-pattern". - - The first form permits a key to be used to authenticate as the - specified user to the specified host. - - The second form permits a key that has previously been permitted - for use at a host to be available via a forwarded agent to an - additional host. - - For example, constraining a key with "user1@host_a" and - "host_a>host_b". Would permit authentication as "user1" at - "host_a", and allow the key to be available on an agent forwarded - to "host_a" only for authentication to "host_b". The key would not - be visible on agent forwarded to other hosts or usable for - authentication there. - - Internally, destination constraints use host keys to identify hosts. - The host patterns are used to obtain lists of host keys for that - destination that are communicated to the agent. The user/hostkeys are - encoded using a new restrict-destination-v00@openssh.com key - constraint. - - host keys are looked up in the default client user/system known_hosts - files. It is possible to override this set on the command-line. - - feedback Jann Horn & markus@ - ok markus@ + upstream: remove blank line - OpenBSD-Commit-ID: ef47fa9ec0e3c2a82e30d37ef616e245df73163e + OpenBSD-Commit-ID: d5e0182965b2fbfb03ad5f256d1a1ce5706bcddf -commit 4c1e3ce85e183a9d0c955c88589fed18e4d6a058 +commit 807be68684da7a1fe969c399ddce2fafb7997dcb Author: djm@openbsd.org -Date: Sun Dec 19 22:09:23 2021 +0000 +Date: Fri Mar 18 02:32:22 2022 +0000 - upstream: ssh-agent side of binding - - record session ID/hostkey/forwarding status for each active socket. - - Attempt to parse data-to-be-signed at signature request time and extract - session ID from the blob if it is a pubkey userauth request. - - ok markus@ + upstream: helpful comment - OpenBSD-Commit-ID: a80fd41e292b18b67508362129e9fed549abd318 + OpenBSD-Commit-ID: e3315a45cb04e7feeb614d76ec80a9fe4ca0e8c7 -commit e9497ecf73f3c16667288bce48d4e3d7e746fea1 +commit a0b5816f8f1f645acdf74f7bc11b34455ec30bac Author: djm@openbsd.org -Date: Sun Dec 19 22:08:48 2021 +0000 +Date: Fri Mar 18 02:31:25 2022 +0000 - upstream: ssh client side of binding - - send session ID, hostkey, signature and a flag indicating whether the - agent connection is being forwarded to ssh agent each time a connection - is opened via a new "session-bind@openssh.com" agent extension. + upstream: ssh-keygen -Y check-novalidate requires namespace or SEGV - ok markus@ + will ensue. Patch from Mateusz Adamowski via GHPR#307 - OpenBSD-Commit-ID: 2f154844fe13167d3ab063f830d7455fcaa99135 + OpenBSD-Commit-ID: 99e8ec38f9feb38bce6de240335be34aedeba5fd -commit b42c61d6840d16ef392ed0f365e8c000734669aa +commit 5a252d54a63be30d5ba4be76210942d754a531c0 Author: djm@openbsd.org -Date: Sun Dec 19 22:08:06 2021 +0000 +Date: Tue Mar 15 05:27:37 2022 +0000 - upstream: Record session ID, host key and sig at intital KEX - - These will be used later for agent session ID / hostkey binding - - ok markus@ + upstream: improve DEBUG_CHANNEL_POLL debugging message - OpenBSD-Commit-ID: a9af29e33772b18e3e867c6fa8ab35e1694a81fe + OpenBSD-Commit-ID: 2275eb7bc4707d019b1a0194b9c92c0b78da848f -commit 26ca33d186473d58a32d812e19273ce078b6ffff -Author: djm@openbsd.org -Date: Tue Dec 7 22:06:45 2021 +0000 +commit ce324cf58ba2840e31afeb996935800780c8fa4b +Author: cheloha@openbsd.org +Date: Sun Mar 13 23:27:54 2022 +0000 - upstream: better error message for FIDO keys when we can't match + upstream: ssh: xstrdup(): use memcpy(3) - them to a token + Copying the given string into the buffer with strlcpy(3) confers no + benefit in this context because we have already determined the + string's length with strlen(3) in order to allocate that buffer. + + Thread: https://marc.info/?l=openbsd-tech&m=164687525802691&w=2 + + ok dtucker@ millert@ - OpenBSD-Commit-ID: 58255c2a1980088f4ed144db67d879ada2607650 + OpenBSD-Commit-ID: f8bfc082e36e2d2dc4e1feece02fe274155ca11a diff --git a/PROTOCOL b/PROTOCOL index 1894d57..2638779 100644 --- a/PROTOCOL +++ b/PROTOCOL @@ -137,12 +137,12 @@ than as a named global or channel request to allow pings with very short packet lengths, which would not be possible with other approaches. -1.9 transport: strict key exchange extension +1.10 transport: strict key exchange extension OpenSSH supports a number of transport-layer hardening measures under a "strict KEX" feature. This feature is signalled similarly to the RFC8308 ext-info feature: by including a additional algorithm in the -initiial SSH2_MSG_KEXINIT kex_algorithms field. The client may append +initial SSH2_MSG_KEXINIT kex_algorithms field. The client may append "kex-strict-c-v00@openssh.com" to its kex_algorithms and the server may append "kex-strict-s-v00@openssh.com". These pseudo-algorithms are only valid in the initial SSH2_MSG_KEXINIT and MUST be ignored @@ -150,20 +150,21 @@ if they are present in subsequent SSH2_MSG_KEXINIT packets. When an endpoint that supports this extension observes this algorithm name in a peer's KEXINIT packet, it MUST make the following changes to -the the protocol: - -a) During initial KEX, terminate the connection if any unexpected or - out-of-sequence packet is received. This includes terminating the - connection if the first packet received is not SSH2_MSG_KEXINIT. - Unexpected packets for the purpose of strict KEX include messages - that are otherwise valid at any time during the connection such as - SSH2_MSG_DEBUG and SSH2_MSG_IGNORE. +the protocol: + +a) During initial KEX, terminate the connection if out-of-sequence + packet or any message that is not strictly required by KEX is + received. This includes terminating the connection if the first + packet received is not SSH2_MSG_KEXINIT. Unexpected packets for + the purpose of strict KEX include messages that are otherwise + valid at any time during the connection such as SSH2_MSG_DEBUG, + SSH2_MSG_IGNORE or SSH2_MSG_UNIMPLEMENTED. b) After sending or receiving a SSH2_MSG_NEWKEYS message, reset the packet sequence number to zero. This behaviour persists for the duration of the connection (i.e. not just the first SSH2_MSG_NEWKEYS). -1.10 transport: SSH2_MSG_EXT_INFO during user authentication +1.11 transport: SSH2_MSG_EXT_INFO during user authentication This protocol extension allows the SSH2_MSG_EXT_INFO to be sent during user authentication. RFC8308 does allow a second @@ -735,6 +736,7 @@ identifiers: The server will reply with a SSH_FXP_EXTENDED_REPLY: byte SSH_FXP_EXTENDED_REPLY + uint32 id string usernames string groupnames @@ -790,4 +792,4 @@ master instance and later clients. OpenSSH extends the usual agent protocol. These changes are documented in the PROTOCOL.agent file. -$OpenBSD: PROTOCOL,v 1.51 2023/12/18 14:45:49 djm Exp $ +$OpenBSD: PROTOCOL,v 1.55 2024/01/08 05:05:15 djm Exp $ diff --git a/PROTOCOL.agent b/PROTOCOL.agent index e4a6b74..7637882 100644 --- a/PROTOCOL.agent +++ b/PROTOCOL.agent @@ -91,7 +91,7 @@ with private keys as they are loaded from a PKCS#11 token. bool certs_only string certsblob -Where "certsblob" constists of one or more certificates encoded as public +Where "certsblob" consists of one or more certificates encoded as public key blobs: string[] certificates @@ -112,4 +112,4 @@ A SSH_AGENTC_ADD_SMARTCARD_KEY_CONSTRAINED will return SSH_AGENT_SUCCESS if any key (plain private or certificate) was successfully loaded, or SSH_AGENT_FAILURE if no key was loaded. -$OpenBSD: PROTOCOL.agent,v 1.21 2023/12/18 14:46:56 djm Exp $ +$OpenBSD: PROTOCOL.agent,v 1.22 2023/12/20 00:06:25 jsg Exp $ diff --git a/PROTOCOL.mux b/PROTOCOL.mux index 5a3dd5f..fef2e13 100644 --- a/PROTOCOL.mux +++ b/PROTOCOL.mux @@ -188,8 +188,6 @@ For dynamically allocated listen port the server replies with 7. Requesting closure of port forwards -Note: currently unimplemented (server will always reply with MUX_S_FAILURE). - A client may request the master to close a port forward: uint32 MUX_C_CLOSE_FWD @@ -295,4 +293,4 @@ XXX session inspection via master XXX signals via mux request XXX list active connections via mux -$OpenBSD: PROTOCOL.mux,v 1.13 2022/01/01 01:55:30 jsg Exp $ +$OpenBSD: PROTOCOL.mux,v 1.14 2024/01/08 05:11:18 djm Exp $ diff --git a/README b/README index 3275626..89981ef 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -See https://www.openssh.com/releasenotes.html#9.6p1 for the release +See https://www.openssh.com/releasenotes.html#9.7p1 for the release notes. Please read https://www.openssh.com/report.html for bug reporting diff --git a/README.platform b/README.platform index 7b754ba..4edf9d1 100644 --- a/README.platform +++ b/README.platform @@ -53,11 +53,12 @@ Darwin does not provide a tun(4) driver required for OpenSSH-based virtual private networks. The BSD manpage still exists, but the driver has been removed in recent releases of Darwin and MacOS X. -Nevertheless, tunnel support is known to work with Darwin 8 and -MacOS X 10.4 in Point-to-Point (Layer 3) and Ethernet (Layer 2) mode -using a third party driver. More information is available at: - http://www-user.rhrk.uni-kl.de/~nissler/tuntap/ +Tunnel support is known to work with Darwin 8 and MacOS X 10.4 in +Point-to-Point (Layer 3) and Ethernet (Layer 2) mode using a third +party driver. More information is available at: + https://tuntaposx.sourceforge.net +Recent Darwin/MacOS X versions are likely unsupported. Linux ----- diff --git a/channels.c b/channels.c index 20f31da..ece8d30 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.435 2023/12/18 14:47:20 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.437 2024/03/06 02:59:59 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -214,6 +214,9 @@ struct ssh_channels { /* Channel timeouts by type */ struct ssh_channel_timeout *timeouts; size_t ntimeouts; + /* Global timeout for all OPEN channels */ + int global_deadline; + time_t lastused; }; /* helper */ @@ -316,6 +319,11 @@ channel_add_timeout(struct ssh *ssh, const char *type_pattern, { struct ssh_channels *sc = ssh->chanctxt; + if (strcmp(type_pattern, "global") == 0) { + debug2_f("global channel timeout %d seconds", timeout_secs); + sc->global_deadline = timeout_secs; + return; + } debug2_f("channel type \"%s\" timeout %d seconds", type_pattern, timeout_secs); sc->timeouts = xrecallocarray(sc->timeouts, sc->ntimeouts, @@ -376,6 +384,38 @@ channel_set_xtype(struct ssh *ssh, int id, const char *xctype) c->inactive_deadline); } +/* + * update "last used" time on a channel. + * NB. nothing else should update lastused except to clear it. + */ +static void +channel_set_used_time(struct ssh *ssh, Channel *c) +{ + ssh->chanctxt->lastused = monotime(); + if (c != NULL) + c->lastused = ssh->chanctxt->lastused; +} + +/* + * Get the time at which a channel is due to time out for inactivity. + * Returns 0 if the channel is not due to time out ever. + */ +static time_t +channel_get_expiry(struct ssh *ssh, Channel *c) +{ + struct ssh_channels *sc = ssh->chanctxt; + time_t expiry = 0, channel_expiry; + + if (sc->lastused != 0 && sc->global_deadline != 0) + expiry = sc->lastused + sc->global_deadline; + if (c->lastused != 0 && c->inactive_deadline != 0) { + channel_expiry = c->lastused + c->inactive_deadline; + if (expiry == 0 || channel_expiry < expiry) + expiry = channel_expiry; + } + return expiry; +} + /* * Register filedescriptors for a channel, used when allocating a channel or * when the channel consumer/producer is ready, e.g. shell exec'd @@ -441,6 +481,8 @@ channel_register_fds(struct ssh *ssh, Channel *c, int rfd, int wfd, int efd, if (efd != -1) set_nonblock(efd); } + /* channel might be entering a larval state, so reset global timeout */ + channel_set_used_time(ssh, NULL); } /* @@ -1197,7 +1239,7 @@ channel_set_fds(struct ssh *ssh, int id, int rfd, int wfd, int efd, channel_register_fds(ssh, c, rfd, wfd, efd, extusage, nonblock, is_tty); c->type = SSH_CHANNEL_OPEN; - c->lastused = monotime(); + channel_set_used_time(ssh, c); c->local_window = c->local_window_max = window_max; if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_WINDOW_ADJUST)) != 0 || @@ -1368,7 +1410,7 @@ channel_pre_x11_open(struct ssh *ssh, Channel *c) if (ret == 1) { c->type = SSH_CHANNEL_OPEN; - c->lastused = monotime(); + channel_set_used_time(ssh, c); channel_pre_open(ssh, c); } else if (ret == -1) { logit("X11 connection rejected because of wrong " @@ -2016,7 +2058,7 @@ channel_post_connecting(struct ssh *ssh, Channel *c) c->self, c->connect_ctx.host, c->connect_ctx.port); channel_connect_ctx_free(&c->connect_ctx); c->type = SSH_CHANNEL_OPEN; - c->lastused = monotime(); + channel_set_used_time(ssh, c); if (isopen) { /* no message necessary */ } else { @@ -2108,7 +2150,7 @@ channel_handle_rfd(struct ssh *ssh, Channel *c) goto rfail; } if (nr != 0) - c->lastused = monotime(); + channel_set_used_time(ssh, c); return 1; } @@ -2134,7 +2176,7 @@ channel_handle_rfd(struct ssh *ssh, Channel *c) } return -1; } - c->lastused = monotime(); + channel_set_used_time(ssh, c); if (c->input_filter != NULL) { if (c->input_filter(ssh, c, buf, len) == -1) { debug2("channel %d: filter stops", c->self); @@ -2215,7 +2257,7 @@ channel_handle_wfd(struct ssh *ssh, Channel *c) } return -1; } - c->lastused = monotime(); + channel_set_used_time(ssh, c); #ifndef BROKEN_TCGETATTR_ICANON if (c->isatty && dlen >= 1 && buf[0] != '\r') { if (tcgetattr(c->wfd, &tio) == 0 && @@ -2264,7 +2306,7 @@ channel_handle_efd_write(struct ssh *ssh, Channel *c) if ((r = sshbuf_consume(c->extended, len)) != 0) fatal_fr(r, "channel %i: consume", c->self); c->local_consumed += len; - c->lastused = monotime(); + channel_set_used_time(ssh, c); } return 1; } @@ -2291,7 +2333,7 @@ channel_handle_efd_read(struct ssh *ssh, Channel *c) channel_close_fd(ssh, c, &c->efd); return 1; } - c->lastused = monotime(); + channel_set_used_time(ssh, c); if (c->extended_usage == CHAN_EXTENDED_IGNORE) debug3("channel %d: discard efd", c->self); else if ((r = sshbuf_put(c->extended, buf, len)) != 0) @@ -2581,10 +2623,9 @@ channel_handler(struct ssh *ssh, int table, struct timespec *timeout) continue; } if (ftab[c->type] != NULL) { - if (table == CHAN_PRE && - c->type == SSH_CHANNEL_OPEN && - c->inactive_deadline != 0 && c->lastused != 0 && - now >= c->lastused + c->inactive_deadline) { + if (table == CHAN_PRE && c->type == SSH_CHANNEL_OPEN && + channel_get_expiry(ssh, c) != 0 && + now >= channel_get_expiry(ssh, c)) { /* channel closed for inactivity */ verbose("channel %d: closing after %u seconds " "of inactivity", c->self, @@ -2596,10 +2637,9 @@ channel_handler(struct ssh *ssh, int table, struct timespec *timeout) /* inactivity timeouts must interrupt poll() */ if (timeout != NULL && c->type == SSH_CHANNEL_OPEN && - c->lastused != 0 && - c->inactive_deadline != 0) { + channel_get_expiry(ssh, c) != 0) { ptimeout_deadline_monotime(timeout, - c->lastused + c->inactive_deadline); + channel_get_expiry(ssh, c)); } } else if (timeout != NULL) { /* @@ -3205,9 +3245,8 @@ channel_proxy_downstream(struct ssh *ssh, Channel *downstream) goto out; } /* Record that connection to this host/port is permitted. */ - permission_set_add(ssh, FORWARD_USER, FORWARD_LOCAL, "", -1, - listen_host, NULL, (int)listen_port, downstream); - listen_host = NULL; + permission_set_add(ssh, FORWARD_USER, FORWARD_LOCAL, "", + -1, listen_host, NULL, (int)listen_port, downstream); break; case SSH2_MSG_CHANNEL_CLOSE: if (have < 4) @@ -3558,7 +3597,7 @@ channel_input_open_confirmation(int type, u_int32_t seq, struct ssh *ssh) c->open_confirm(ssh, c->self, 1, c->open_confirm_ctx); debug2_f("channel %d: callback done", c->self); } - c->lastused = monotime(); + channel_set_used_time(ssh, c); debug2("channel %d: open confirm rwindow %u rmax %u", c->self, c->remote_window, c->remote_maxpacket); return 0; diff --git a/clientloop.c b/clientloop.c index eb49029..8ec36af 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.402 2023/11/24 00:31:30 dtucker Exp $ */ +/* $OpenBSD: clientloop.c,v 1.403 2024/02/21 05:57:34 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -517,7 +517,7 @@ send_chaff(struct ssh *ssh) { int r; - if ((ssh->kex->flags & KEX_HAS_PING) == 0) + if (ssh->kex == NULL || (ssh->kex->flags & KEX_HAS_PING) == 0) return 0; /* XXX probabilistically send chaff? */ /* diff --git a/config.h.in b/config.h.in index b09986e..75a2f5a 100644 --- a/config.h.in +++ b/config.h.in @@ -1963,6 +1963,9 @@ /* Define if you want to enable AIX4's authenticate function */ #undef WITH_AIXAUTHENTICATE +/* Define if to enable DSA keys. */ +#undef WITH_DSA + /* Define if you have/want arrays (cluster-wide session management, not C arrays) */ #undef WITH_IRIX_ARRAY diff --git a/configure b/configure index f0ece41..f43a58a 100755 --- a/configure +++ b/configure @@ -775,6 +775,7 @@ enable_largefile with_openssl with_stackprotect with_hardening +with_retpoline with_rpath with_cflags with_cflags_after @@ -796,6 +797,7 @@ with_pie enable_pkcs11 enable_security_key with_security_key_builtin +enable_dsa_keys with_ssl_dir with_openssl_header_check with_ssl_engine @@ -820,6 +822,7 @@ with_superuser_path with_4in6 with_bsd_auth with_pid_dir +enable_fd_passing enable_lastlog enable_utmp enable_utmpx @@ -1464,8 +1467,10 @@ Optional Features: --disable-largefile omit support for large files --disable-pkcs11 disable PKCS#11 support code [no] --disable-security-key disable U2F/FIDO support code no + --disable-dsa-keys disable DSA key support no --disable-strip Disable calling strip(1) on install --disable-etc-default-login Disable using PATH from /etc/default/login no + --disable-fd-passing disable file descriptor passsing no --disable-lastlog disable use of lastlog even if detected no --disable-utmp disable use of utmp even if detected no --disable-utmpx disable use of utmpx even if detected no @@ -1481,6 +1486,7 @@ Optional Packages: --without-openssl Disable use of OpenSSL; use only limited internal crypto **EXPERIMENTAL** --without-stackprotect Don't use compiler's stack protection --without-hardening Don't use toolchain hardening flags + --without-retpoline Enable retpoline spectre mitigation --without-rpath Disable auto-added -R linker paths --with-cflags Specify additional flags to pass to compiler --with-cflags-after Specify additional flags to pass to compiler after configure @@ -6028,6 +6034,7 @@ fi use_stack_protector=1 use_toolchain_hardening=1 +use_retpoline=1 # Check whether --with-stackprotect was given. if test ${with_stackprotect+y} @@ -6049,6 +6056,16 @@ then : fi +# Check whether --with-retpoline was given. +if test ${with_retpoline+y} +then : + withval=$with_retpoline; + if test "x$withval" = "xno"; then + use_retpoline=0 + fi +fi + + # We use -Werror for the tests only so that we catch warnings like "this is # on by default" for things like -fPIE. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror" >&5 @@ -6126,18 +6143,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6187,18 +6210,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6263,18 +6292,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6324,18 +6359,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6400,18 +6441,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6461,18 +6508,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6537,18 +6590,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6598,18 +6657,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6674,18 +6739,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6735,18 +6806,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6811,18 +6888,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6872,18 +6955,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -6948,18 +7037,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7009,18 +7104,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7085,18 +7186,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7146,18 +7253,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7222,18 +7335,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7283,18 +7402,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7359,18 +7484,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7420,18 +7551,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7496,18 +7633,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7557,18 +7700,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7633,18 +7782,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7694,18 +7849,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7770,18 +7931,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7831,18 +7998,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7907,18 +8080,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -7968,18 +8147,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8044,18 +8229,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8105,18 +8296,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8181,18 +8378,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8242,18 +8445,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8318,18 +8527,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8379,18 +8594,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8455,18 +8676,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8516,18 +8743,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8569,12 +8802,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext } if test "x$use_toolchain_hardening" = "x1"; then { - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -mretpoline" >&5 -printf %s "checking if $CC supports compile flag -mretpoline... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -D_FORTIFY_SOURCE=2" >&5 +printf %s "checking if $CC supports compile flag -D_FORTIFY_SOURCE=2... " >&6; } saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $WERROR -mretpoline" + CFLAGS="$CFLAGS $WERROR -D_FORTIFY_SOURCE=2" _define_flag="" - test "x$_define_flag" = "x" && _define_flag="-mretpoline" + test "x$_define_flag" = "x" && _define_flag="-D_FORTIFY_SOURCE=2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8593,18 +8826,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8654,18 +8893,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8704,14 +8949,14 @@ printf "%s\n" "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -} # clang +} { - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $LD supports link flag -Wl,-z,retpolineplt" >&5 -printf %s "checking if $LD supports link flag -Wl,-z,retpolineplt... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $LD supports link flag -Wl,-z,relro" >&5 +printf %s "checking if $LD supports link flag -Wl,-z,relro... " >&6; } saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $WERROR -Wl,-z,retpolineplt" + LDFLAGS="$LDFLAGS $WERROR -Wl,-z,relro" _define_flag="" - test "x$_define_flag" = "x" && _define_flag="-Wl,-z,retpolineplt" + test "x$_define_flag" = "x" && _define_flag="-Wl,-z,relro" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8730,18 +8975,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8792,18 +9043,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8845,12 +9102,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext } { - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -D_FORTIFY_SOURCE=2" >&5 -printf %s "checking if $CC supports compile flag -D_FORTIFY_SOURCE=2... " >&6; } - saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $WERROR -D_FORTIFY_SOURCE=2" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $LD supports link flag -Wl,-z,now" >&5 +printf %s "checking if $LD supports link flag -Wl,-z,now... " >&6; } + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $WERROR -Wl,-z,now" _define_flag="" - test "x$_define_flag" = "x" && _define_flag="-D_FORTIFY_SOURCE=2" + test "x$_define_flag" = "x" && _define_flag="-Wl,-z,now" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8869,18 +9126,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8897,20 +9160,21 @@ int main(int argc, char **argv) { _ACEOF -if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_link "$LINENO" then : if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - CFLAGS="$saved_CFLAGS" + LDFLAGS="$saved_LDFLAGS" else - if test "$cross_compiling" = yes + if test "$cross_compiling" = yes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - CFLAGS="$saved_CFLAGS $_define_flag" + LDFLAGS="$saved_LDFLAGS $_define_flag" + else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8930,18 +9194,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -8962,11 +9232,11 @@ if ac_fn_c_try_run "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - CFLAGS="$saved_CFLAGS $_define_flag" + LDFLAGS="$saved_LDFLAGS $_define_flag" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, fails at run time" >&5 printf "%s\n" "no, fails at run time" >&6; } - CFLAGS="$saved_CFLAGS" + LDFLAGS="$saved_LDFLAGS" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext @@ -8976,18 +9246,19 @@ fi else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - CFLAGS="$saved_CFLAGS" + LDFLAGS="$saved_LDFLAGS" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext } { - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $LD supports link flag -Wl,-z,relro" >&5 -printf %s "checking if $LD supports link flag -Wl,-z,relro... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $LD supports link flag -Wl,-z,noexecstack" >&5 +printf %s "checking if $LD supports link flag -Wl,-z,noexecstack... " >&6; } saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $WERROR -Wl,-z,relro" + LDFLAGS="$LDFLAGS $WERROR -Wl,-z,noexecstack" _define_flag="" - test "x$_define_flag" = "x" && _define_flag="-Wl,-z,relro" + test "x$_define_flag" = "x" && _define_flag="-Wl,-z,noexecstack" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9006,18 +9277,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9068,18 +9345,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9120,13 +9403,18 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext } + # NB. -ftrapv expects certain support functions to be present in + # the compiler library (libgcc or similar) to detect integer operations + # that can overflow. We must check that the result of enabling it + # actually links. The test program compiled/linked includes a number + # of integer operations that should exercise this. { - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $LD supports link flag -Wl,-z,now" >&5 -printf %s "checking if $LD supports link flag -Wl,-z,now... " >&6; } - saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $WERROR -Wl,-z,now" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -ftrapv and linking succeeds" >&5 +printf %s "checking if $CC supports compile flag -ftrapv and linking succeeds... " >&6; } + saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $WERROR -ftrapv" _define_flag="" - test "x$_define_flag" = "x" && _define_flag="-Wl,-z,now" + test "x$_define_flag" = "x" && _define_flag="-ftrapv" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9145,18 +9433,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9178,16 +9472,15 @@ then : if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - LDFLAGS="$saved_LDFLAGS" + CFLAGS="$saved_CFLAGS" else - if test "$cross_compiling" = yes + if test "$cross_compiling" = yes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - LDFLAGS="$saved_LDFLAGS $_define_flag" - + CFLAGS="$saved_CFLAGS $_define_flag" else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9207,18 +9500,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9239,11 +9538,11 @@ if ac_fn_c_try_run "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - LDFLAGS="$saved_LDFLAGS $_define_flag" + CFLAGS="$saved_CFLAGS $_define_flag" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, fails at run time" >&5 printf "%s\n" "no, fails at run time" >&6; } - LDFLAGS="$saved_LDFLAGS" + CFLAGS="$saved_CFLAGS" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext @@ -9253,19 +9552,25 @@ fi else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - LDFLAGS="$saved_LDFLAGS" + CFLAGS="$saved_CFLAGS" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext } - { - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $LD supports link flag -Wl,-z,noexecstack" >&5 -printf %s "checking if $LD supports link flag -Wl,-z,noexecstack... " >&6; } - saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $WERROR -Wl,-z,noexecstack" + # clang 15 seems to have a bug in -fzero-call-used-regs=all. See + # https://bugzilla.mindrot.org/show_bug.cgi?id=3475 and + # https://github.com/llvm/llvm-project/issues/59242 + # clang 17 has a different bug that causes an ICE when using this + # flag at all (https://bugzilla.mindrot.org/show_bug.cgi?id=3629) + case "$CLANG_VER" in + apple-15*) { + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -fzero-call-used-regs=used and linking succeeds" >&5 +printf %s "checking if $CC supports compile flag -fzero-call-used-regs=used and linking succeeds... " >&6; } + saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $WERROR -fzero-call-used-regs=used" _define_flag="" - test "x$_define_flag" = "x" && _define_flag="-Wl,-z,noexecstack" + test "x$_define_flag" = "x" && _define_flag="-fzero-call-used-regs=used" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9284,18 +9589,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9317,16 +9628,15 @@ then : if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - LDFLAGS="$saved_LDFLAGS" + CFLAGS="$saved_CFLAGS" else - if test "$cross_compiling" = yes + if test "$cross_compiling" = yes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - LDFLAGS="$saved_LDFLAGS $_define_flag" - + CFLAGS="$saved_CFLAGS $_define_flag" else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9346,18 +9656,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9378,11 +9694,11 @@ if ac_fn_c_try_run "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - LDFLAGS="$saved_LDFLAGS $_define_flag" + CFLAGS="$saved_CFLAGS $_define_flag" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, fails at run time" >&5 printf "%s\n" "no, fails at run time" >&6; } - LDFLAGS="$saved_LDFLAGS" + CFLAGS="$saved_CFLAGS" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext @@ -9392,24 +9708,20 @@ fi else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - LDFLAGS="$saved_LDFLAGS" + CFLAGS="$saved_CFLAGS" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -} - # NB. -ftrapv expects certain support functions to be present in - # the compiler library (libgcc or similar) to detect integer operations - # that can overflow. We must check that the result of enabling it - # actually links. The test program compiled/linked includes a number - # of integer operations that should exercise this. - { - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -ftrapv and linking succeeds" >&5 -printf %s "checking if $CC supports compile flag -ftrapv and linking succeeds... " >&6; } +} ;; + 17*) ;; + *) { + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -fzero-call-used-regs=used and linking succeeds" >&5 +printf %s "checking if $CC supports compile flag -fzero-call-used-regs=used and linking succeeds... " >&6; } saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $WERROR -ftrapv" + CFLAGS="$CFLAGS $WERROR -fzero-call-used-regs=used" _define_flag="" - test "x$_define_flag" = "x" && _define_flag="-ftrapv" + test "x$_define_flag" = "x" && _define_flag="-fzero-call-used-regs=used" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9428,18 +9740,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9489,18 +9807,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9540,20 +9864,15 @@ printf "%s\n" "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -} - # clang 15 seems to have a bug in -fzero-call-used-regs=all. See - # https://bugzilla.mindrot.org/show_bug.cgi?id=3475 and - # https://github.com/llvm/llvm-project/issues/59242 - # clang 17 has a different bug that causes an ICE when using this - # flag at all (https://bugzilla.mindrot.org/show_bug.cgi?id=3629) - case "$CLANG_VER" in - apple-15*) { - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -fzero-call-used-regs=used and linking succeeds" >&5 -printf %s "checking if $CC supports compile flag -fzero-call-used-regs=used and linking succeeds... " >&6; } +} ;; + esac + { + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -ftrivial-auto-var-init=zero" >&5 +printf %s "checking if $CC supports compile flag -ftrivial-auto-var-init=zero... " >&6; } saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $WERROR -fzero-call-used-regs=used" + CFLAGS="$CFLAGS $WERROR -ftrivial-auto-var-init=zero" _define_flag="" - test "x$_define_flag" = "x" && _define_flag="-fzero-call-used-regs=used" + test "x$_define_flag" = "x" && _define_flag="-ftrivial-auto-var-init=zero" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9572,18 +9891,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9600,7 +9925,7 @@ int main(int argc, char **argv) { _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null @@ -9633,18 +9958,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9682,17 +10013,17 @@ printf "%s\n" "no" >&6; } CFLAGS="$saved_CFLAGS" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -} ;; - 17*) ;; - *) { - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -fzero-call-used-regs=used and linking succeeds" >&5 -printf %s "checking if $CC supports compile flag -fzero-call-used-regs=used and linking succeeds... " >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +} + fi + if test "x$use_retpoline" = "x1"; then + { + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -mretpoline" >&5 +printf %s "checking if $CC supports compile flag -mretpoline... " >&6; } saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $WERROR -fzero-call-used-regs=used" + CFLAGS="$CFLAGS $WERROR -mretpoline" _define_flag="" - test "x$_define_flag" = "x" && _define_flag="-fzero-call-used-regs=used" + test "x$_define_flag" = "x" && _define_flag="-mretpoline" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9711,18 +10042,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9739,7 +10076,7 @@ int main(int argc, char **argv) { _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null @@ -9772,18 +10109,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9821,17 +10164,15 @@ printf "%s\n" "no" >&6; } CFLAGS="$saved_CFLAGS" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -} ;; - esac +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +} # clang { - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -ftrivial-auto-var-init=zero" >&5 -printf %s "checking if $CC supports compile flag -ftrivial-auto-var-init=zero... " >&6; } - saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $WERROR -ftrivial-auto-var-init=zero" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $LD supports link flag -Wl,-z,retpolineplt" >&5 +printf %s "checking if $LD supports link flag -Wl,-z,retpolineplt... " >&6; } + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $WERROR -Wl,-z,retpolineplt" _define_flag="" - test "x$_define_flag" = "x" && _define_flag="-ftrivial-auto-var-init=zero" + test "x$_define_flag" = "x" && _define_flag="-Wl,-z,retpolineplt" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9850,18 +10191,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9878,20 +10225,21 @@ int main(int argc, char **argv) { _ACEOF -if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_link "$LINENO" then : if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - CFLAGS="$saved_CFLAGS" + LDFLAGS="$saved_LDFLAGS" else - if test "$cross_compiling" = yes + if test "$cross_compiling" = yes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - CFLAGS="$saved_CFLAGS $_define_flag" + LDFLAGS="$saved_LDFLAGS $_define_flag" + else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9911,18 +10259,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -9943,11 +10297,11 @@ if ac_fn_c_try_run "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - CFLAGS="$saved_CFLAGS $_define_flag" + LDFLAGS="$saved_LDFLAGS $_define_flag" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, fails at run time" >&5 printf "%s\n" "no, fails at run time" >&6; } - CFLAGS="$saved_CFLAGS" + LDFLAGS="$saved_LDFLAGS" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext @@ -9957,10 +10311,11 @@ fi else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - CFLAGS="$saved_CFLAGS" + LDFLAGS="$saved_LDFLAGS" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext } fi @@ -11321,18 +11676,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -11382,18 +11743,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -15000,18 +15367,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -15061,18 +15434,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -15137,18 +15516,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -15199,18 +15584,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does @@ -16279,6 +16670,23 @@ then : fi +disable_ecdsa= +# Check whether --enable-dsa-keys was given. +if test ${enable_dsa_keys+y} +then : + enableval=$enable_dsa_keys; + if test "x$enableval" = "xno" ; then + disable_ecdsa=1 + fi + + +fi + +test -z "$disable_ecdsa" && + +printf "%s\n" "#define WITH_DSA 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 printf %s "checking for library containing dlopen... " >&6; } if test ${ac_cv_search_dlopen+y} @@ -17900,7 +18308,13 @@ then : else CPPFLAGS="-I${withval} ${CPPFLAGS}" fi - openssl_bin_PATH="${PATH}${PATH_SEPARATOR}${withval}/bin${PATH_SEPARATOR}${withval}/apps" + if test -x "${withval}/bin/openssl" && \ + "${withval}/bin/openssl" version >/dev/null 2>&1; then + openssl_bin_PATH="${withval}/bin${PATH_SEPARATOR}${PATH}" + elif test -x "${withval}/apps/openssl" && \ + "${withval}/apps/openssl" version >/dev/null 2>&1; then + openssl_bin_PATH="${withval}/apps${PATH_SEPARATOR}${PATH}" + fi fi @@ -18076,9 +18490,9 @@ printf "%s\n" "$ssl_header_ver" >&6; } else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -printf "%s\n" "not found" >&6; } - as_fn_error $? "OpenSSL version header not found." "$LINENO" 5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +printf "%s\n" "failed" >&6; } + as_fn_error $? "OpenSSL version test program failed." "$LINENO" 5 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -18488,8 +18902,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi # Check for OpenSSL without EVP_aes_{192,256}_cbc - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL has crippled AES support" >&5 -printf %s "checking whether OpenSSL has crippled AES support... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL lacks support for AES 192/256" >&5 +printf %s "checking whether OpenSSL lacks support for AES 192/256... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -24874,6 +25288,20 @@ printf "%s\n" "#define _PATH_SSH_PIDDIR \"$piddir\"" >>confdefs.h + +# Check whether --enable-fd-passing was given. +if test ${enable_fd_passing+y} +then : + enableval=$enable_fd_passing; + if test "x$enableval" = "xno" ; then + printf "%s\n" "#define DISABLE_FD_PASSING 1" >>confdefs.h + + fi + + +fi + + # Check whether --enable-lastlog was given. if test ${enable_lastlog+y} then : diff --git a/configure.ac b/configure.ac index 379cd74..82e8bb7 100644 --- a/configure.ac +++ b/configure.ac @@ -149,6 +149,7 @@ fi use_stack_protector=1 use_toolchain_hardening=1 +use_retpoline=1 AC_ARG_WITH([stackprotect], [ --without-stackprotect Don't use compiler's stack protection], [ if test "x$withval" = "xno"; then @@ -159,6 +160,11 @@ AC_ARG_WITH([hardening], if test "x$withval" = "xno"; then use_toolchain_hardening=0 fi ]) +AC_ARG_WITH([retpoline], + [ --without-retpoline Enable retpoline spectre mitigation], [ + if test "x$withval" = "xno"; then + use_retpoline=0 + fi ]) # We use -Werror for the tests only so that we catch warnings like "this is # on by default" for things like -fPIE. @@ -216,8 +222,6 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then OSSH_CHECK_CFLAG_COMPILE([-Wbitwise-instead-of-logical]) OSSH_CHECK_CFLAG_COMPILE([-fno-strict-aliasing]) if test "x$use_toolchain_hardening" = "x1"; then - OSSH_CHECK_CFLAG_COMPILE([-mretpoline]) # clang - OSSH_CHECK_LDFLAG_LINK([-Wl,-z,retpolineplt]) OSSH_CHECK_CFLAG_COMPILE([-D_FORTIFY_SOURCE=2]) OSSH_CHECK_LDFLAG_LINK([-Wl,-z,relro]) OSSH_CHECK_LDFLAG_LINK([-Wl,-z,now]) @@ -240,6 +244,10 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then esac OSSH_CHECK_CFLAG_COMPILE([-ftrivial-auto-var-init=zero]) fi + if test "x$use_retpoline" = "x1"; then + OSSH_CHECK_CFLAG_COMPILE([-mretpoline]) # clang + OSSH_CHECK_LDFLAG_LINK([-Wl,-z,retpolineplt]) + fi AC_MSG_CHECKING([if $CC accepts -fno-builtin-memset]) saved_CFLAGS="$CFLAGS" @@ -2067,6 +2075,18 @@ AC_ARG_WITH([security-key-builtin], [ enable_sk_internal=$withval ] ) +disable_ecdsa= +AC_ARG_ENABLE([dsa-keys], + [ --disable-dsa-keys disable DSA key support [no]], + [ + if test "x$enableval" = "xno" ; then + disable_ecdsa=1 + fi + ] +) +test -z "$disable_ecdsa" && + AC_DEFINE([WITH_DSA], [1], [Define if to enable DSA keys.]) + AC_SEARCH_LIBS([dlopen], [dl]) AC_CHECK_FUNCS([dlopen]) AC_CHECK_DECL([RTLD_NOW], [], [], [#include ]) @@ -2723,7 +2743,15 @@ AC_ARG_WITH([ssl-dir], else CPPFLAGS="-I${withval} ${CPPFLAGS}" fi - openssl_bin_PATH="${PATH}${PATH_SEPARATOR}${withval}/bin${PATH_SEPARATOR}${withval}/apps" + dnl Ensure specified openssl binary works, eg it can + dnl find its runtime libraries, before trying to use. + if test -x "${withval}/bin/openssl" && \ + "${withval}/bin/openssl" version >/dev/null 2>&1; then + openssl_bin_PATH="${withval}/bin${PATH_SEPARATOR}${PATH}" + elif test -x "${withval}/apps/openssl" && \ + "${withval}/apps/openssl" version >/dev/null 2>&1; then + openssl_bin_PATH="${withval}/apps${PATH_SEPARATOR}${PATH}" + fi fi ] ) @@ -2790,8 +2818,8 @@ if test "x$openssl" = "xyes" ; then AC_MSG_RESULT([$ssl_header_ver]) ], [ - AC_MSG_RESULT([not found]) - AC_MSG_ERROR([OpenSSL version header not found.]) + AC_MSG_RESULT([failed]) + AC_MSG_ERROR([OpenSSL version test program failed.]) ], [ AC_MSG_WARN([cross compiling: not checking]) @@ -2994,7 +3022,7 @@ if test "x$openssl" = "xyes" ; then fi # Check for OpenSSL without EVP_aes_{192,256}_cbc - AC_MSG_CHECKING([whether OpenSSL has crippled AES support]) + AC_MSG_CHECKING([whether OpenSSL lacks support for AES 192/256]) AC_LINK_IFELSE( [AC_LANG_PROGRAM([[ #include @@ -5293,6 +5321,16 @@ AC_DEFINE_UNQUOTED([_PATH_SSH_PIDDIR], ["$piddir"], [Specify location of ssh.pid]) AC_SUBST([piddir]) + +AC_ARG_ENABLE([fd-passing], + [ --disable-fd-passing disable file descriptor passsing [no]], + [ + if test "x$enableval" = "xno" ; then + AC_DEFINE([DISABLE_FD_PASSING]) + fi + ] +) + dnl allow user to disable some login recording features AC_ARG_ENABLE([lastlog], [ --disable-lastlog disable use of lastlog even if detected [no]], diff --git a/contrib/redhat/openssh.spec b/contrib/redhat/openssh.spec index 0524a72..b230971 100644 --- a/contrib/redhat/openssh.spec +++ b/contrib/redhat/openssh.spec @@ -1,4 +1,4 @@ -%global ver 9.6p1 +%global ver 9.7p1 %global rel 1%{?dist} # OpenSSH privilege separation requires a user & group ID diff --git a/contrib/suse/openssh.spec b/contrib/suse/openssh.spec index b5082f0..7dbe4db 100644 --- a/contrib/suse/openssh.spec +++ b/contrib/suse/openssh.spec @@ -13,7 +13,7 @@ Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation Name: openssh -Version: 9.6p1 +Version: 9.7p1 URL: https://www.openssh.com/ Release: 1 Source0: openssh-%{version}.tar.gz diff --git a/gss-genr.c b/gss-genr.c index 2cd695e..aa34b71 100644 --- a/gss-genr.c +++ b/gss-genr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: gss-genr.c,v 1.28 2021/01/27 10:05:28 djm Exp $ */ +/* $OpenBSD: gss-genr.c,v 1.29 2024/02/01 02:37:33 djm Exp $ */ /* * Copyright (c) 2001-2007 Simon Wilkinson. All rights reserved. @@ -278,7 +278,7 @@ ssh_gssapi_check_mechanism(Gssctxt **ctx, gss_OID oid, const char *host) gss_OID_desc spnego_oid = {6, (void *)"\x2B\x06\x01\x05\x05\x02"}; /* RFC 4462 says we MUST NOT do SPNEGO */ - if (oid->length == spnego_oid.length && + if (oid->length == spnego_oid.length && (memcmp(oid->elements, spnego_oid.elements, oid->length) == 0)) return 0; /* false */ @@ -286,7 +286,7 @@ ssh_gssapi_check_mechanism(Gssctxt **ctx, gss_OID oid, const char *host) ssh_gssapi_set_oid(*ctx, oid); major = ssh_gssapi_import_name(*ctx, host); if (!GSS_ERROR(major)) { - major = ssh_gssapi_init_ctx(*ctx, 0, GSS_C_NO_BUFFER, &token, + major = ssh_gssapi_init_ctx(*ctx, 0, GSS_C_NO_BUFFER, &token, NULL); gss_release_buffer(&minor, &token); if ((*ctx)->context != GSS_C_NO_CONTEXT) @@ -294,7 +294,7 @@ ssh_gssapi_check_mechanism(Gssctxt **ctx, gss_OID oid, const char *host) GSS_C_NO_BUFFER); } - if (GSS_ERROR(major)) + if (GSS_ERROR(major)) ssh_gssapi_delete_ctx(ctx); return (!GSS_ERROR(major)); diff --git a/kex.c b/kex.c index cbb2af5..8a0f165 100644 --- a/kex.c +++ b/kex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.c,v 1.184 2023/12/18 14:45:49 djm Exp $ */ +/* $OpenBSD: kex.c,v 1.185 2024/01/08 00:34:33 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * @@ -772,10 +772,11 @@ static int kex_input_newkeys(int type, u_int32_t seq, struct ssh *ssh) { struct kex *kex = ssh->kex; - int r; + int r, initial = (kex->flags & KEX_INITIAL) != 0; + char *cp, **prop; debug("SSH2_MSG_NEWKEYS received"); - if (kex->ext_info_c && (kex->flags & KEX_INITIAL) != 0) + if (kex->ext_info_c && initial) ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &kex_input_ext_info); ssh_dispatch_set(ssh, SSH2_MSG_NEWKEYS, &kex_protocol_error); ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_input_kexinit); @@ -783,10 +784,32 @@ kex_input_newkeys(int type, u_int32_t seq, struct ssh *ssh) return r; if ((r = ssh_set_newkeys(ssh, MODE_IN)) != 0) return r; + if (initial) { + /* Remove initial KEX signalling from proposal for rekeying */ + if ((r = kex_buf2prop(kex->my, NULL, &prop)) != 0) + return r; + if ((cp = match_filter_denylist(prop[PROPOSAL_KEX_ALGS], + kex->server ? + "ext-info-s,kex-strict-s-v00@openssh.com" : + "ext-info-c,kex-strict-c-v00@openssh.com")) == NULL) { + error_f("match_filter_denylist failed"); + goto fail; + } + free(prop[PROPOSAL_KEX_ALGS]); + prop[PROPOSAL_KEX_ALGS] = cp; + if ((r = kex_prop2buf(ssh->kex->my, prop)) != 0) { + error_f("kex_prop2buf failed"); + fail: + kex_proposal_free_entries(prop); + free(prop); + return SSH_ERR_INTERNAL_ERROR; + } + kex_proposal_free_entries(prop); + free(prop); + } kex->done = 1; kex->flags &= ~KEX_INITIAL; sshbuf_reset(kex->peer); - /* sshbuf_reset(kex->my); */ kex->flags &= ~KEX_INIT_SENT; free(kex->name); kex->name = NULL; diff --git a/kex.h b/kex.h index ba3a6a4..0caf42b 100644 --- a/kex.h +++ b/kex.h @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.h,v 1.121 2023/12/18 14:45:49 djm Exp $ */ +/* $OpenBSD: kex.h,v 1.122 2024/02/02 00:13:34 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. @@ -109,10 +109,10 @@ enum kex_exchange { #define KEX_INIT_SENT 0x0001 #define KEX_INITIAL 0x0002 #define KEX_HAS_PUBKEY_HOSTBOUND 0x0004 -#define KEX_RSA_SHA2_256_SUPPORTED 0x0008 /* only set in server for now */ -#define KEX_RSA_SHA2_512_SUPPORTED 0x0010 /* only set in server for now */ -#define KEX_HAS_PING 0x0020 -#define KEX_HAS_EXT_INFO_IN_AUTH 0x0040 +#define KEX_RSA_SHA2_256_SUPPORTED 0x0008 /* only set in server for now */ +#define KEX_RSA_SHA2_512_SUPPORTED 0x0010 /* only set in server for now */ +#define KEX_HAS_PING 0x0020 +#define KEX_HAS_EXT_INFO_IN_AUTH 0x0040 struct sshenc { char *name; diff --git a/m4/openssh.m4 b/m4/openssh.m4 index 5d4c562..033df50 100644 --- a/m4/openssh.m4 +++ b/m4/openssh.m4 @@ -20,18 +20,24 @@ char *f2(char *s, ...) { va_end(args); return strdup(ret); } +const char *f3(int s) { + return s ? "good" : "gooder"; +} int main(int argc, char **argv) { - (void)argv; char b[256], *cp; + const char *s; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + (void)argv; f(1); - snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + s = f3(f(2)); + snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); if (write(1, b, 0) == -1) exit(0); - cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); + cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, cp, 0) == -1) exit(0); free(cp); /* * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does diff --git a/misc.c b/misc.c index 3db2e4d..5dc9d54 100644 --- a/misc.c +++ b/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.189 2023/10/12 03:36:32 djm Exp $ */ +/* $OpenBSD: misc.c,v 1.190 2024/03/04 02:16:11 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005-2020 Damien Miller. All rights reserved. @@ -2644,6 +2644,19 @@ opt_array_append(const char *file, const int line, const char *directive, opt_array_append2(file, line, directive, array, NULL, lp, s, 0); } +void +opt_array_free2(char **array, int **iarray, u_int l) +{ + u_int i; + + if (array == NULL || l == 0) + return; + for (i = 0; i < l; i++) + free(array[i]); + free(array); + free(iarray); +} + sshsig_t ssh_signal(int signum, sshsig_t handler) { diff --git a/misc.h b/misc.h index 74c6f83..9bacce5 100644 --- a/misc.h +++ b/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.106 2023/10/11 22:42:26 djm Exp $ */ +/* $OpenBSD: misc.h,v 1.107 2024/03/04 02:16:11 djm Exp $ */ /* * Author: Tatu Ylonen @@ -210,6 +210,7 @@ void opt_array_append(const char *file, const int line, void opt_array_append2(const char *file, const int line, const char *directive, char ***array, int **iarray, u_int *lp, const char *s, int i); +void opt_array_free2(char **array, int **iarray, u_int l); struct timespec; void ptimeout_init(struct timespec *pt); diff --git a/moduli.0 b/moduli.0 index 3077643..057a018 100644 --- a/moduli.0 +++ b/moduli.0 @@ -71,4 +71,4 @@ STANDARDS M. Friedl, N. Provos, and W. Simpson, Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, March 2006. -OpenBSD 7.3 April 16, 2022 OpenBSD 7.3 +OpenBSD 7.5 April 16, 2022 OpenBSD 7.5 diff --git a/nchan.c b/nchan.c index d33426f..b156695 100644 --- a/nchan.c +++ b/nchan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nchan.c,v 1.74 2022/02/01 23:32:51 djm Exp $ */ +/* $OpenBSD: nchan.c,v 1.75 2024/02/01 02:37:33 djm Exp $ */ /* * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. * @@ -349,7 +349,7 @@ chan_is_dead(struct ssh *ssh, Channel *c, int do_send) if (c->flags & CHAN_LOCAL) { debug2("channel %d: is dead (local)", c->self); return 1; - } + } if (!(c->flags & CHAN_CLOSE_SENT)) { if (do_send) { chan_send_close2(ssh, c); diff --git a/openbsd-compat/getopt.h b/openbsd-compat/getopt.h index 65c8bc7..b050fa8 100644 --- a/openbsd-compat/getopt.h +++ b/openbsd-compat/getopt.h @@ -33,6 +33,14 @@ #ifndef _GETOPT_H_ #define _GETOPT_H_ +#ifndef __THROW +# if defined __cplusplus +# define __THROW throw() +# else +# define __THROW +# endif +#endif + /* * GNU-like getopt_long() and 4.4BSD getsubopt()/optreset extensions */ @@ -63,8 +71,8 @@ int getopt_long_only(int, char * const *, const char *, #ifndef _GETOPT_DEFINED_ #define _GETOPT_DEFINED_ -int getopt(int, char * const *, const char *); -int getsubopt(char **, char * const *, char **); +int getopt(int, char * const *, const char *) __THROW; +int getsubopt(char **, char * const *, char **) __THROW; extern char *optarg; /* getopt(3) external variables */ extern int opterr; diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index 78faea9..0823d6a 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -48,6 +48,14 @@ #include "blf.h" #include "fnmatch.h" +#ifndef __THROW +# if defined __cplusplus +# define __THROW throw() +# else +# define __THROW +# endif +#endif + #if defined(HAVE_LOGIN_CAP) && !defined(HAVE_LOGIN_GETPWCLASS) # include # define login_getpwclass(pw) login_getclass(pw->pw_class) @@ -187,7 +195,7 @@ int getgrouplist(const char *, gid_t, gid_t *, int *); #endif #if !defined(HAVE_GETOPT) || !defined(HAVE_GETOPT_OPTRESET) -int BSDgetopt(int argc, char * const *argv, const char *opts); +int BSDgetopt(int argc, char * const *argv, const char *opts) __THROW; #include "openbsd-compat/getopt.h" #endif diff --git a/readconf.c b/readconf.c index a2282b5..3a64a04 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.383 2023/10/12 02:18:18 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.386 2024/03/04 04:13:18 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -890,6 +890,20 @@ parse_token(const char *cp, const char *filename, int linenum, return oBadOption; } +static void +free_canon_cnames(struct allowed_cname *cnames, u_int n) +{ + u_int i; + + if (cnames == NULL || n == 0) + return; + for (i = 0; i < n; i++) { + free(cnames[i].source_list); + free(cnames[i].target_list); + } + free(cnames); +} + /* Multistate option parsing */ struct multistate { char *key; @@ -1032,21 +1046,24 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, { char *str, **charptr, *endofnumber, *keyword, *arg, *arg2, *p; char **cpptr, ***cppptr, fwdarg[256]; - u_int i, *uintptr, uvalue, max_entries = 0; + u_int i, *uintptr, max_entries = 0; int r, oactive, negated, opcode, *intptr, value, value2, cmdline = 0; - int remotefwd, dynamicfwd, ca_only = 0; + int remotefwd, dynamicfwd, ca_only = 0, found = 0; LogLevel *log_level_ptr; SyslogFacility *log_facility_ptr; long long val64; size_t len; struct Forward fwd; const struct multistate *multistate_ptr; - struct allowed_cname *cname; glob_t gl; const char *errstr; char **oav = NULL, **av; int oac = 0, ac; int ret = -1; + struct allowed_cname *cnames = NULL; + u_int ncnames = 0; + char **strs = NULL; /* string array arguments; freed implicitly */ + u_int nstrs = 0; if (activep == NULL) { /* We are processing a command line directive */ cmdline = 1; @@ -1662,14 +1679,13 @@ parse_pubkey_algos: case oPermitRemoteOpen: uintptr = &options->num_permitted_remote_opens; cppptr = &options->permitted_remote_opens; - uvalue = *uintptr; /* modified later */ - i = 0; + found = *uintptr == 0; while ((arg = argv_next(&ac, &av)) != NULL) { arg2 = xstrdup(arg); /* Allow any/none only in first position */ if (strcasecmp(arg, "none") == 0 || strcasecmp(arg, "any") == 0) { - if (i > 0 || ac > 0) { + if (nstrs > 0 || ac > 0) { error("%s line %d: keyword %s \"%s\" " "argument must appear alone.", filename, linenum, keyword, arg); @@ -1695,17 +1711,20 @@ parse_pubkey_algos: lookup_opcode_name(opcode)); } } - if (*activep && uvalue == 0) { - opt_array_append(filename, linenum, - lookup_opcode_name(opcode), - cppptr, uintptr, arg2); - } + opt_array_append(filename, linenum, + lookup_opcode_name(opcode), + &strs, &nstrs, arg2); free(arg2); - i++; } - if (i == 0) + if (nstrs == 0) fatal("%s line %d: missing %s specification", filename, linenum, lookup_opcode_name(opcode)); + if (found && *activep) { + *cppptr = strs; + *uintptr = nstrs; + strs = NULL; /* transferred */ + nstrs = 0; + } break; case oClearAllForwardings: @@ -1823,12 +1842,14 @@ parse_pubkey_algos: goto parse_int; case oSendEnv: + /* XXX appends to list; doesn't respect first-match-wins */ while ((arg = argv_next(&ac, &av)) != NULL) { if (*arg == '\0' || strchr(arg, '=') != NULL) { error("%s line %d: Invalid environment name.", filename, linenum); goto out; } + found = 1; if (!*activep) continue; if (*arg == '-') { @@ -1840,27 +1861,38 @@ parse_pubkey_algos: lookup_opcode_name(opcode), &options->send_env, &options->num_send_env, arg); } + if (!found) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } break; case oSetEnv: - value = options->num_setenv; + found = options->num_setenv == 0; while ((arg = argv_next(&ac, &av)) != NULL) { if (strchr(arg, '=') == NULL) { error("%s line %d: Invalid SetEnv.", filename, linenum); goto out; } - if (!*activep || value != 0) - continue; - if (lookup_setenv_in_list(arg, options->setenv, - options->num_setenv) != NULL) { + if (lookup_setenv_in_list(arg, strs, nstrs) != NULL) { debug2("%s line %d: ignoring duplicate env " "name \"%.64s\"", filename, linenum, arg); continue; } opt_array_append(filename, linenum, lookup_opcode_name(opcode), - &options->setenv, &options->num_setenv, arg); + &strs, &nstrs, arg); + } + if (nstrs == 0) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } + if (found && *activep) { + options->setenv = strs; + options->num_setenv = nstrs; + strs = NULL; /* transferred */ + nstrs = 0; } break; @@ -2069,52 +2101,46 @@ parse_pubkey_algos: goto parse_flag; case oCanonicalDomains: - value = options->num_canonical_domains != 0; - i = 0; + found = options->num_canonical_domains == 0; while ((arg = argv_next(&ac, &av)) != NULL) { - if (*arg == '\0') { - error("%s line %d: keyword %s empty argument", - filename, linenum, keyword); - goto out; - } /* Allow "none" only in first position */ if (strcasecmp(arg, "none") == 0) { - if (i > 0 || ac > 0) { + if (nstrs > 0 || ac > 0) { error("%s line %d: keyword %s \"none\" " "argument must appear alone.", filename, linenum, keyword); goto out; } } - i++; if (!valid_domain(arg, 1, &errstr)) { error("%s line %d: %s", filename, linenum, errstr); goto out; } - if (!*activep || value) - continue; - if (options->num_canonical_domains >= - MAX_CANON_DOMAINS) { - error("%s line %d: too many hostname suffixes.", - filename, linenum); - goto out; - } - options->canonical_domains[ - options->num_canonical_domains++] = xstrdup(arg); + opt_array_append(filename, linenum, keyword, + &strs, &nstrs, arg); + } + if (nstrs == 0) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } + if (found && *activep) { + options->canonical_domains = strs; + options->num_canonical_domains = nstrs; + strs = NULL; /* transferred */ + nstrs = 0; } break; case oCanonicalizePermittedCNAMEs: - value = options->num_permitted_cnames != 0; - i = 0; + found = options->num_permitted_cnames == 0; while ((arg = argv_next(&ac, &av)) != NULL) { /* * Either 'none' (only in first position), '*' for * everything or 'list:list' */ if (strcasecmp(arg, "none") == 0) { - if (i > 0 || ac > 0) { + if (ncnames > 0 || ac > 0) { error("%s line %d: keyword %s \"none\" " "argument must appear alone.", filename, linenum, keyword); @@ -2135,20 +2161,23 @@ parse_pubkey_algos: *arg2 = '\0'; arg2++; } - i++; - if (!*activep || value) - continue; - if (options->num_permitted_cnames >= - MAX_CANON_DOMAINS) { - error("%s line %d: too many permitted CNAMEs.", - filename, linenum); - goto out; - } - cname = options->permitted_cnames + - options->num_permitted_cnames++; - cname->source_list = xstrdup(arg); - cname->target_list = xstrdup(arg2); - } + cnames = xrecallocarray(cnames, ncnames, ncnames + 1, + sizeof(*cnames)); + cnames[ncnames].source_list = xstrdup(arg); + cnames[ncnames].target_list = xstrdup(arg2); + ncnames++; + } + if (ncnames == 0) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } + if (found && *activep) { + options->permitted_cnames = cnames; + options->num_permitted_cnames = ncnames; + cnames = NULL; /* transferred */ + ncnames = 0; + } + /* un-transferred cnames is cleaned up before exit */ break; case oCanonicalizeHostname: @@ -2329,12 +2358,11 @@ parse_pubkey_algos: break; case oChannelTimeout: - uvalue = options->num_channel_timeouts; - i = 0; + found = options->num_channel_timeouts == 0; while ((arg = argv_next(&ac, &av)) != NULL) { /* Allow "none" only in first position */ if (strcasecmp(arg, "none") == 0) { - if (i > 0 || ac > 0) { + if (nstrs > 0 || ac > 0) { error("%s line %d: keyword %s \"none\" " "argument must appear alone.", filename, linenum, keyword); @@ -2345,11 +2373,18 @@ parse_pubkey_algos: fatal("%s line %d: invalid channel timeout %s", filename, linenum, arg); } - if (!*activep || uvalue != 0) - continue; opt_array_append(filename, linenum, keyword, - &options->channel_timeouts, - &options->num_channel_timeouts, arg); + &strs, &nstrs, arg); + } + if (nstrs == 0) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } + if (found && *activep) { + options->channel_timeouts = strs; + options->num_channel_timeouts = nstrs; + strs = NULL; /* transferred */ + nstrs = 0; } break; @@ -2381,6 +2416,8 @@ parse_pubkey_algos: /* success */ ret = 0; out: + free_canon_cnames(cnames, ncnames); + opt_array_free2(strs, NULL, nstrs); argv_free(oav, oac); return ret; } @@ -2711,7 +2748,9 @@ fill_default_options(Options * options) add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_ED25519_SK, 0); add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_XMSS, 0); +#ifdef WITH_DSA add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_DSA, 0); +#endif } if (options->escape_char == -1) options->escape_char = '~'; diff --git a/readconf.h b/readconf.h index ff7180c..9447d5d 100644 --- a/readconf.h +++ b/readconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.h,v 1.154 2023/10/12 02:18:18 djm Exp $ */ +/* $OpenBSD: readconf.h,v 1.156 2024/03/04 02:16:11 djm Exp $ */ /* * Author: Tatu Ylonen @@ -87,7 +87,7 @@ typedef struct { char *sk_provider; /* Security key provider */ int verify_host_key_dns; /* Verify host key using DNS */ - int num_identity_files; /* Number of files for RSA/DSA identities. */ + int num_identity_files; /* Number of files for identities. */ char *identity_files[SSH_MAX_IDENTITY_FILES]; int identity_file_userprovided[SSH_MAX_IDENTITY_FILES]; struct sshkey *identity_keys[SSH_MAX_IDENTITY_FILES]; @@ -155,12 +155,12 @@ typedef struct { int proxy_use_fdpass; int num_canonical_domains; - char *canonical_domains[MAX_CANON_DOMAINS]; + char **canonical_domains; int canonicalize_hostname; int canonicalize_max_dots; int canonicalize_fallback_local; int num_permitted_cnames; - struct allowed_cname permitted_cnames[MAX_CANON_DOMAINS]; + struct allowed_cname *permitted_cnames; char *revoked_host_keys; diff --git a/regress/Makefile b/regress/Makefile index f5cb9bd..c9a495f 100644 --- a/regress/Makefile +++ b/regress/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.131 2023/12/18 14:50:08 djm Exp $ +# $OpenBSD: Makefile,v 1.133 2024/01/11 04:50:28 djm Exp $ tests: prep file-tests t-exec unit @@ -156,48 +156,67 @@ TEST_SSH_SSHKEYGEN?=ssh-keygen CPPFLAGS=-I.. t1: - ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/rsa_ssh2.prv | diff - ${.CURDIR}/rsa_openssh.prv - tr '\n' '\r' <${.CURDIR}/rsa_ssh2.prv > ${.OBJDIR}/rsa_ssh2_cr.prv - ${TEST_SSH_SSHKEYGEN} -if ${.OBJDIR}/rsa_ssh2_cr.prv | diff - ${.CURDIR}/rsa_openssh.prv - awk '{print $$0 "\r"}' ${.CURDIR}/rsa_ssh2.prv > ${.OBJDIR}/rsa_ssh2_crnl.prv - ${TEST_SSH_SSHKEYGEN} -if ${.OBJDIR}/rsa_ssh2_crnl.prv | diff - ${.CURDIR}/rsa_openssh.prv + set -xe ; if ${TEST_SSH_SSH} -Q key | grep -q "^ssh-rsa" ; then \ + ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/rsa_ssh2.prv | diff - ${.CURDIR}/rsa_openssh.prv ; \ + tr '\n' '\r' <${.CURDIR}/rsa_ssh2.prv > ${.OBJDIR}/rsa_ssh2_cr.prv ; \ + ${TEST_SSH_SSHKEYGEN} -if ${.OBJDIR}/rsa_ssh2_cr.prv | diff - ${.CURDIR}/rsa_openssh.prv ; \ + awk '{print $$0 "\r"}' ${.CURDIR}/rsa_ssh2.prv > ${.OBJDIR}/rsa_ssh2_crnl.prv ; \ + ${TEST_SSH_SSHKEYGEN} -if ${.OBJDIR}/rsa_ssh2_crnl.prv | diff - ${.CURDIR}/rsa_openssh.prv ; \ + fi t2: - cat ${.CURDIR}/rsa_openssh.prv > $(OBJ)/t2.out - chmod 600 $(OBJ)/t2.out - ${TEST_SSH_SSHKEYGEN} -yf $(OBJ)/t2.out | diff - ${.CURDIR}/rsa_openssh.pub + set -xe ; if ${TEST_SSH_SSH} -Q key | grep -q "^ssh-rsa" ; then \ + cat ${.CURDIR}/rsa_openssh.prv > $(OBJ)/t2.out ; \ + chmod 600 $(OBJ)/t2.out ; \ + ${TEST_SSH_SSHKEYGEN} -yf $(OBJ)/t2.out | diff - ${.CURDIR}/rsa_openssh.pub ; \ + fi t3: - ${TEST_SSH_SSHKEYGEN} -ef ${.CURDIR}/rsa_openssh.pub >$(OBJ)/t3.out - ${TEST_SSH_SSHKEYGEN} -if $(OBJ)/t3.out | diff - ${.CURDIR}/rsa_openssh.pub + set -xe ; if ${TEST_SSH_SSH} -Q key | grep -q "^ssh-rsa" ; then \ + ${TEST_SSH_SSHKEYGEN} -ef ${.CURDIR}/rsa_openssh.pub >$(OBJ)/t3.out ; \ + ${TEST_SSH_SSHKEYGEN} -if $(OBJ)/t3.out | diff - ${.CURDIR}/rsa_openssh.pub ; \ + fi t4: - ${TEST_SSH_SSHKEYGEN} -E md5 -lf ${.CURDIR}/rsa_openssh.pub |\ - awk '{print $$2}' | diff - ${.CURDIR}/t4.ok + set -xe ; if ${TEST_SSH_SSH} -Q key | grep -q "^ssh-rsa" ; then \ + ${TEST_SSH_SSHKEYGEN} -E md5 -lf ${.CURDIR}/rsa_openssh.pub |\ + awk '{print $$2}' | diff - ${.CURDIR}/t4.ok ; \ + fi t5: - ${TEST_SSH_SSHKEYGEN} -Bf ${.CURDIR}/rsa_openssh.pub |\ - awk '{print $$2}' | diff - ${.CURDIR}/t5.ok - + set -xe ; if ${TEST_SSH_SSH} -Q key | grep -q "^ssh-rsa" ; then \ + ${TEST_SSH_SSHKEYGEN} -Bf ${.CURDIR}/rsa_openssh.pub |\ + awk '{print $$2}' | diff - ${.CURDIR}/t5.ok ; \ + fi t6: - ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/dsa_ssh2.prv > $(OBJ)/t6.out1 - ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/dsa_ssh2.pub > $(OBJ)/t6.out2 - chmod 600 $(OBJ)/t6.out1 - ${TEST_SSH_SSHKEYGEN} -yf $(OBJ)/t6.out1 | diff - $(OBJ)/t6.out2 + set -xe ; if ${TEST_SSH_SSH} -Q key | grep -q "^ssh-dss" ; then \ + ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/dsa_ssh2.prv > $(OBJ)/t6.out1 ; \ + ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/dsa_ssh2.pub > $(OBJ)/t6.out2 ; \ + chmod 600 $(OBJ)/t6.out1 ; \ + ${TEST_SSH_SSHKEYGEN} -yf $(OBJ)/t6.out1 | diff - $(OBJ)/t6.out2 ; \ + fi $(OBJ)/t7.out: - ${TEST_SSH_SSHKEYGEN} -q -t rsa -N '' -f $@ + set -xe ; if ${TEST_SSH_SSH} -Q key | grep -q "^ssh-dss" ; then \ + ${TEST_SSH_SSHKEYGEN} -q -t rsa -N '' -f $@ ; \ + fi t7: $(OBJ)/t7.out - ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t7.out > /dev/null - ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t7.out > /dev/null + set -xe ; if ${TEST_SSH_SSH} -Q key | grep -q "^ssh-dss" ; then \ + ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t7.out > /dev/null ; \ + ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t7.out > /dev/null ; \ + fi $(OBJ)/t8.out: - ${TEST_SSH_SSHKEYGEN} -q -t dsa -N '' -f $@ + set -xe ; if ssh -Q key | grep -q "^ssh-dss" ; then \ + ${TEST_SSH_SSHKEYGEN} -q -t dsa -N '' -f $@ ; \ + fi t8: $(OBJ)/t8.out - ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t8.out > /dev/null - ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t8.out > /dev/null + set -xe ; if ssh -Q key | grep -q "^ssh-dss" ; then \ + ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t8.out > /dev/null ; \ + ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t8.out > /dev/null ; \ + fi $(OBJ)/t9.out: ! ${TEST_SSH_SSH} -Q key-plain | grep ecdsa >/dev/null || \ @@ -218,8 +237,10 @@ t10: $(OBJ)/t10.out ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t10.out > /dev/null t11: - ${TEST_SSH_SSHKEYGEN} -E sha256 -lf ${.CURDIR}/rsa_openssh.pub |\ - awk '{print $$2}' | diff - ${.CURDIR}/t11.ok + set -xe ; if ${TEST_SSH_SSH} -Q key | grep -q "^ssh-dss" ; then \ + ${TEST_SSH_SSHKEYGEN} -E sha256 -lf ${.CURDIR}/rsa_openssh.pub |\ + awk '{print $$2}' | diff - ${.CURDIR}/t11.ok ; \ + fi $(OBJ)/t12.out: ${TEST_SSH_SSHKEYGEN} -q -t ed25519 -N '' -C 'test-comment-1234' -f $@ diff --git a/regress/channel-timeout.sh b/regress/channel-timeout.sh index 1c42e83..97708f2 100644 --- a/regress/channel-timeout.sh +++ b/regress/channel-timeout.sh @@ -1,10 +1,33 @@ -# $OpenBSD: channel-timeout.sh,v 1.1 2023/01/06 08:07:39 djm Exp $ +# $OpenBSD: channel-timeout.sh,v 1.2 2024/01/09 22:19:36 djm Exp $ # Placed in the Public Domain. tid="channel timeout" # XXX not comprehensive. Still need -R -L agent X11 forwarding + interactive +rm -f $OBJ/finished.* $OBJ/mux.* + +MUXPATH=$OBJ/mux.$$ +open_mux() { + ${SSH} -nNfM -oControlPath=$MUXPATH -F $OBJ/ssh_proxy "$@" somehost || + fatal "open mux failed" + test -e $MUXPATH || fatal "mux socket $MUXPATH not established" +} + +close_mux() { + test -e $MUXPATH || fatal "mux socket $MUXPATH missing" + ${SSH} -qF $OBJ/ssh_proxy -oControlPath=$MUXPATH -O exit somehost || + fatal "could not terminate mux process" + for x in 1 2 3 4 5 6 7 8 9 10 ; do + test -e $OBJ/mux && break + sleep 1 + done + test -e $MUXPATH && fatal "mux did not clean up" +} +mux_client() { + ${SSH} -F $OBJ/ssh_proxy -oControlPath=$MUXPATH somehost "$@" +} + rm -f $OBJ/sshd_proxy.orig cp $OBJ/sshd_proxy $OBJ/sshd_proxy.orig @@ -24,6 +47,15 @@ if [ $r -ne 255 ]; then fail "ssh returned unexpected error code $r" fi +verbose "command long timeout" +(cat $OBJ/sshd_proxy.orig ; echo "ChannelTimeout session:command=60") \ + > $OBJ/sshd_proxy +${SSH} -F $OBJ/ssh_proxy somehost "exit 23" +r=$? +if [ $r -ne 23 ]; then + fail "ssh returned unexpected error code $r" +fi + verbose "command wildcard timeout" (cat $OBJ/sshd_proxy.orig ; echo "ChannelTimeout session:*=1") \ > $OBJ/sshd_proxy @@ -42,6 +74,45 @@ if [ $r -ne 23 ]; then fail "ssh failed" fi +if config_defined DISABLE_FD_PASSING ; then + verbose "skipping multiplexing tests" +else + verbose "multiplexed command timeout" + (cat $OBJ/sshd_proxy.orig ; echo "ChannelTimeout session:command=1") \ + > $OBJ/sshd_proxy + open_mux + mux_client "sleep 5 ; exit 23" + r=$? + if [ $r -ne 255 ]; then + fail "ssh returned unexpected error code $r" + fi + close_mux + + verbose "irrelevant multiplexed command timeout" + (cat $OBJ/sshd_proxy.orig ; echo "ChannelTimeout session:shell=1") \ + > $OBJ/sshd_proxy + open_mux + mux_client "sleep 5 ; exit 23" + r=$? + if [ $r -ne 23 ]; then + fail "ssh returned unexpected error code $r" + fi + close_mux + + verbose "global command timeout" + (cat $OBJ/sshd_proxy.orig ; echo "ChannelTimeout global=10") \ + > $OBJ/sshd_proxy + open_mux + mux_client "sleep 1 ; echo ok ; sleep 1; echo ok; sleep 60; touch $OBJ/finished.1" >/dev/null & + mux_client "sleep 60 ; touch $OBJ/finished.2" >/dev/null & + mux_client "sleep 2 ; touch $OBJ/finished.3" >/dev/null & + wait + test -f $OBJ/finished.1 && fail "first mux process completed" + test -f $OBJ/finished.2 && fail "second mux process completed" + test -f $OBJ/finished.3 || fail "third mux process did not complete" + close_mux +fi + # Set up a "slow sftp server" that sleeps before executing the real one. cat > $OBJ/slow-sftp-server.sh << _EOF #!/bin/sh @@ -88,4 +159,3 @@ if [ $r -ne 0 ]; then fail "sftp failed" fi cmp $DATA $COPY || fail "corrupted copy" - diff --git a/regress/dynamic-forward.sh b/regress/dynamic-forward.sh index 5a4aa6d..85901ea 100644 --- a/regress/dynamic-forward.sh +++ b/regress/dynamic-forward.sh @@ -1,4 +1,4 @@ -# $OpenBSD: dynamic-forward.sh,v 1.15 2023/01/06 08:50:33 dtucker Exp $ +# $OpenBSD: dynamic-forward.sh,v 1.17 2024/03/08 11:34:10 dtucker Exp $ # Placed in the Public Domain. tid="dynamic forwarding" @@ -20,6 +20,7 @@ start_ssh() { arg="$2" n=0 error="1" + # Use a multiplexed ssh so we can control its lifecycle. trace "start dynamic -$direction forwarding, fork to background" (cat $OBJ/ssh_config.orig ; echo "$arg") > $OBJ/ssh_config ${REAL_SSH} -vvvnNfF $OBJ/ssh_config -E$TEST_SSH_LOGFILE \ @@ -56,9 +57,9 @@ check_socks() { for s in 4 5; do for h in 127.0.0.1 localhost; do trace "testing ssh socks version $s host $h (-$direction)" - ${REAL_SSH} -q -F $OBJ/ssh_config \ - -o "ProxyCommand ${proxycmd}${s} $h $PORT 2>/dev/null" \ - somehost cat ${DATA} > ${COPY} + ${REAL_SSH} -q -F $OBJ/ssh_config -o \ + "ProxyCommand ${TEST_SHELL} -c '${proxycmd}${s} $h $PORT 2>/dev/null'" \ + somehost cat ${DATA} > ${COPY} r=$? if [ "x$expect_success" = "xY" ] ; then if [ $r -ne 0 ] ; then diff --git a/regress/misc/fuzz-harness/Makefile b/regress/misc/fuzz-harness/Makefile index 0b4238f..1072130 100644 --- a/regress/misc/fuzz-harness/Makefile +++ b/regress/misc/fuzz-harness/Makefile @@ -1,10 +1,10 @@ # NB. libssh and libopenbsd-compat should be built with the same sanitizer opts. -CC=clang-11 -CXX=clang++-11 +CC=clang-16 +CXX=clang++-16 FUZZ_FLAGS=-fsanitize=address,fuzzer -fno-omit-frame-pointer -FUZZ_LIBS=-lFuzzer +FUZZ_LIBS=-L/usr/lib/llvm-16/lib -lFuzzer -CXXFLAGS=-O2 -g -Wall -Wextra -Wno-unused-parameter -I ../../.. $(FUZZ_FLAGS) +CXXFLAGS=-O2 -g -Wall -Wextra -Wno-unused-parameter -Wno-exceptions -I ../../.. $(FUZZ_FLAGS) CFLAGS=$(CXXFLAGS) LDFLAGS=-L ../../.. -L ../../../openbsd-compat -g $(FUZZ_FLAGS) LIBS=-lssh -lopenbsd-compat -lmd -lcrypto -lfido2 -lcbor $(FUZZ_LIBS) diff --git a/regress/misc/fuzz-harness/agent_fuzz_helper.c b/regress/misc/fuzz-harness/agent_fuzz_helper.c index 1d41982..c3051c7 100644 --- a/regress/misc/fuzz-harness/agent_fuzz_helper.c +++ b/regress/misc/fuzz-harness/agent_fuzz_helper.c @@ -175,3 +175,10 @@ test_one(const uint8_t* s, size_t slen) cleanup_idtab(); cleanup_sockettab(); } + +int +pkcs11_make_cert(const struct sshkey *priv, + const struct sshkey *certpub, struct sshkey **certprivp) +{ + return -1; /* XXX */ +} diff --git a/regress/multiplex.sh b/regress/multiplex.sh index 8282d0d..b992cd4 100644 --- a/regress/multiplex.sh +++ b/regress/multiplex.sh @@ -8,8 +8,7 @@ tid="connection multiplexing" trace "will use ProxyCommand $proxycmd" if config_defined DISABLE_FD_PASSING ; then - echo "skipped (not supported on this platform)" - exit 0 + skip "not supported on this platform (FD passing disabled)" fi P=3301 # test port diff --git a/regress/putty-ciphers.sh b/regress/putty-ciphers.sh index 5b8e25a..30f6461 100644 --- a/regress/putty-ciphers.sh +++ b/regress/putty-ciphers.sh @@ -1,24 +1,47 @@ -# $OpenBSD: putty-ciphers.sh,v 1.11 2021/09/01 03:16:06 dtucker Exp $ +# $OpenBSD: putty-ciphers.sh,v 1.13 2024/02/09 08:56:59 dtucker Exp $ # Placed in the Public Domain. tid="putty ciphers" -if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then - skip "putty interop tests not enabled" -fi +puttysetup -# Re-enable ssh-rsa on older PuTTY versions. -oldver="`${PLINK} --version | awk '/plink: Release/{if ($3<0.76)print "yes"}'`" -if [ "x$oldver" = "xyes" ]; then - echo "HostKeyAlgorithms +ssh-rsa" >> ${OBJ}/sshd_proxy - echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> ${OBJ}/sshd_proxy -fi +cp ${OBJ}/sshd_proxy ${OBJ}/sshd_proxy_bak -for c in aes 3des aes128-ctr aes192-ctr aes256-ctr chacha20 ; do - verbose "$tid: cipher $c" +# Since there doesn't seem to be a way to set MACs on the PuTTY client side, +# we force each in turn on the server side, omitting the ones PuTTY doesn't +# support. Grepping the binary is pretty janky, but AFAIK there's no way to +# query for supported algos. +macs="" +for m in `${SSH} -Q MACs`; do + if strings "${PLINK}" | grep -E "^${m}$" >/dev/null; then + macs="${macs} ${m}" + else + trace "omitting unsupported MAC ${m}" + fi +done + +ciphers="" +for c in `${SSH} -Q Ciphers`; do + if strings "${PLINK}" | grep -E "^${c}$" >/dev/null; then + ciphers="${ciphers} ${c}" + else + trace "omitting unsupported cipher ${c}" + fi +done + +for c in default $ciphers; do + for m in default ${macs}; do + verbose "$tid: cipher $c mac $m" cp ${OBJ}/.putty/sessions/localhost_proxy \ ${OBJ}/.putty/sessions/cipher_$c - echo "Cipher=$c" >> ${OBJ}/.putty/sessions/cipher_$c + if [ "${c}" != "default" ]; then + echo "Cipher=$c" >> ${OBJ}/.putty/sessions/cipher_$c + fi + + cp ${OBJ}/sshd_proxy_bak ${OBJ}/sshd_proxy + if [ "${m}" != "default" ]; then + echo "MACs $m" >> ${OBJ}/sshd_proxy + fi rm -f ${COPY} env HOME=$PWD ${PLINK} -load cipher_$c -batch -i ${OBJ}/putty.rsa2 \ @@ -27,6 +50,6 @@ for c in aes 3des aes128-ctr aes192-ctr aes256-ctr chacha20 ; do fail "ssh cat $DATA failed" fi cmp ${DATA} ${COPY} || fail "corrupted copy" + done done rm -f ${COPY} - diff --git a/regress/putty-kex.sh b/regress/putty-kex.sh index c75802a..22f8bd7 100644 --- a/regress/putty-kex.sh +++ b/regress/putty-kex.sh @@ -1,28 +1,36 @@ -# $OpenBSD: putty-kex.sh,v 1.9 2021/09/01 03:16:06 dtucker Exp $ +# $OpenBSD: putty-kex.sh,v 1.11 2024/02/09 08:56:59 dtucker Exp $ # Placed in the Public Domain. tid="putty KEX" -if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then - skip "putty interop tests not enabled" -fi +puttysetup -# Re-enable ssh-rsa on older PuTTY versions. -oldver="`${PLINK} --version | awk '/plink: Release/{if ($3<0.76)print "yes"}'`" -if [ "x$oldver" = "xyes" ]; then - echo "HostKeyAlgorithms +ssh-rsa" >> ${OBJ}/sshd_proxy - echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> ${OBJ}/sshd_proxy -fi +cp ${OBJ}/sshd_proxy ${OBJ}/sshd_proxy_bak -for k in dh-gex-sha1 dh-group1-sha1 dh-group14-sha1 ecdh ; do +# Enable group1, which PuTTY now disables by default +echo "KEX=dh-group1-sha1" >>${OBJ}/.putty/sessions/localhost_proxy + +# Grepping algos out of the binary is pretty janky, but AFAIK there's no way +# to query supported algos. +kex="" +for k in `$SSH -Q kex`; do + if strings "${PLINK}" | grep -E "^${k}$" >/dev/null; then + kex="${kex} ${k}" + else + trace "omitting unsupported KEX ${k}" + fi +done + +for k in ${kex}; do verbose "$tid: kex $k" - cp ${OBJ}/.putty/sessions/localhost_proxy \ - ${OBJ}/.putty/sessions/kex_$k - echo "KEX=$k" >> ${OBJ}/.putty/sessions/kex_$k + cp ${OBJ}/sshd_proxy_bak ${OBJ}/sshd_proxy + echo "KexAlgorithms ${k}" >>${OBJ}/sshd_proxy - env HOME=$PWD ${PLINK} -load kex_$k -batch -i ${OBJ}/putty.rsa2 true + env HOME=$PWD ${PLINK} -v -load localhost_proxy -batch -i ${OBJ}/putty.rsa2 true \ + 2>${OBJ}/log/putty-kex-$k.log if [ $? -ne 0 ]; then fail "KEX $k failed" fi + kexmsg=`grep -E '^Doing.* key exchange' ${OBJ}/log/putty-kex-$k.log` + trace putty: ${kexmsg} done - diff --git a/regress/putty-transfer.sh b/regress/putty-transfer.sh index a6864f9..1920f49 100644 --- a/regress/putty-transfer.sh +++ b/regress/putty-transfer.sh @@ -1,18 +1,9 @@ -# $OpenBSD: putty-transfer.sh,v 1.11 2021/09/01 03:16:06 dtucker Exp $ +# $OpenBSD: putty-transfer.sh,v 1.12 2024/02/09 08:47:42 dtucker Exp $ # Placed in the Public Domain. tid="putty transfer data" -if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then - skip "putty interop tests not enabled" -fi - -# Re-enable ssh-rsa on older PuTTY versions. -oldver="`${PLINK} --version | awk '/plink: Release/{if ($3<0.76)print "yes"}'`" -if [ "x$oldver" = "xyes" ]; then - echo "HostKeyAlgorithms +ssh-rsa" >> ${OBJ}/sshd_proxy - echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> ${OBJ}/sshd_proxy -fi +puttysetup if [ "`${SSH} -Q compression`" = "none" ]; then comp="0" diff --git a/regress/test-exec.sh b/regress/test-exec.sh index 089ef73..ad62794 100644 --- a/regress/test-exec.sh +++ b/regress/test-exec.sh @@ -1,4 +1,4 @@ -# $OpenBSD: test-exec.sh,v 1.105 2023/10/31 04:15:40 dtucker Exp $ +# $OpenBSD: test-exec.sh,v 1.108 2024/03/08 11:34:10 dtucker Exp $ # Placed in the Public Domain. #SUDO=sudo @@ -104,6 +104,9 @@ DBCLIENT=/usr/local/bin/dbclient DROPBEARKEY=/usr/local/bin/dropbearkey DROPBEARCONVERT=/usr/local/bin/dropbearconvert +# So we can override this in Portable. +TEST_SHELL="${TEST_SHELL:-/bin/sh}" + # Tools used by multiple tests NC=$OBJ/netcat # Always use the one configure tells us to, even if that's empty. @@ -761,7 +764,11 @@ case "$SCRIPT" in *) REGRESS_INTEROP_PUTTY=no ;; esac -if test "$REGRESS_INTEROP_PUTTY" = "yes" ; then +puttysetup() { + if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then + skip "putty interop tests not enabled" + fi + mkdir -p ${OBJ}/.putty # Add a PuTTY key to authorized_keys @@ -794,9 +801,24 @@ if test "$REGRESS_INTEROP_PUTTY" = "yes" ; then echo "ProxyTelnetCommand=${OBJ}/sshd-log-wrapper.sh -i -f $OBJ/sshd_proxy" >> ${OBJ}/.putty/sessions/localhost_proxy echo "ProxyLocalhost=1" >> ${OBJ}/.putty/sessions/localhost_proxy + PUTTYVER="`${PLINK} --version | awk '/plink: Release/{print $3}'`" + PUTTYMINORVER="`echo ${PUTTYVER} | cut -f2 -d.`" + verbose "plink version ${PUTTYVER} minor ${PUTTYMINORVER}" + + # Re-enable ssh-rsa on older PuTTY versions since they don't do newer + # key types. + if [ "$PUTTYMINORVER" -lt "76" ]; then + echo "HostKeyAlgorithms +ssh-rsa" >> ${OBJ}/sshd_proxy + echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> ${OBJ}/sshd_proxy + fi + + if [ "$PUTTYMINORVER" -le "64" ]; then + echo "KexAlgorithms +diffie-hellman-group14-sha1" \ + >>${OBJ}/sshd_proxy + fi PUTTYDIR=${OBJ}/.putty export PUTTYDIR -fi +} REGRESS_INTEROP_DROPBEAR=no if test -x "$DROPBEARKEY" -a -x "$DBCLIENT" -a -x "$DROPBEARCONVERT"; then diff --git a/regress/unittests/Makefile.inc b/regress/unittests/Makefile.inc index 623896f..98e2804 100644 --- a/regress/unittests/Makefile.inc +++ b/regress/unittests/Makefile.inc @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile.inc,v 1.15 2023/09/24 08:14:13 claudio Exp $ +# $OpenBSD: Makefile.inc,v 1.16 2024/01/11 01:45:58 djm Exp $ .include .include @@ -13,6 +13,11 @@ TEST_ENV?= MALLOC_OPTIONS=${MALLOC_OPTIONS} # XXX detect from ssh binary? OPENSSL?= yes +DSAKEY?= yes + +.if (${DSAKEY:L} == "yes") +CFLAGS+= -DWITH_DSA +.endif .if (${OPENSSL:L} == "yes") CFLAGS+= -DWITH_OPENSSL diff --git a/regress/unittests/hostkeys/test_iterate.c b/regress/unittests/hostkeys/test_iterate.c index 84f26b5..7efb8e1 100644 --- a/regress/unittests/hostkeys/test_iterate.c +++ b/regress/unittests/hostkeys/test_iterate.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_iterate.c,v 1.8 2021/12/14 21:25:27 deraadt Exp $ */ +/* $OpenBSD: test_iterate.c,v 1.9 2024/01/11 01:45:58 djm Exp $ */ /* * Regress test for hostfile.h hostkeys_foreach() * @@ -94,6 +94,11 @@ check(struct hostkey_foreach_line *l, void *_ctx) expected->no_parse_keytype == KEY_ECDSA) skip = 1; #endif /* OPENSSL_HAS_ECC */ +#ifndef WITH_DSA + if (expected->l.keytype == KEY_DSA || + expected->no_parse_keytype == KEY_DSA) + skip = 1; +#endif #ifndef WITH_OPENSSL if (expected->l.keytype == KEY_DSA || expected->no_parse_keytype == KEY_DSA || @@ -155,6 +160,10 @@ prepare_expected(struct expected *expected, size_t n) if (expected[i].l.keytype == KEY_ECDSA) continue; #endif /* OPENSSL_HAS_ECC */ +#ifndef WITH_DSA + if (expected[i].l.keytype == KEY_DSA) + continue; +#endif #ifndef WITH_OPENSSL switch (expected[i].l.keytype) { case KEY_RSA: diff --git a/regress/unittests/kex/test_kex.c b/regress/unittests/kex/test_kex.c index c26761e..dc1014e 100644 --- a/regress/unittests/kex/test_kex.c +++ b/regress/unittests/kex/test_kex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_kex.c,v 1.6 2021/12/14 21:25:27 deraadt Exp $ */ +/* $OpenBSD: test_kex.c,v 1.7 2024/01/11 01:45:58 djm Exp $ */ /* * Regress test KEX * @@ -179,7 +179,9 @@ do_kex(char *kex) { #ifdef WITH_OPENSSL do_kex_with_key(kex, KEY_RSA, 2048); +#ifdef WITH_DSA do_kex_with_key(kex, KEY_DSA, 1024); +#endif #ifdef OPENSSL_HAS_ECC do_kex_with_key(kex, KEY_ECDSA, 256); #endif /* OPENSSL_HAS_ECC */ diff --git a/regress/unittests/sshkey/test_file.c b/regress/unittests/sshkey/test_file.c index 488944c..4528405 100644 --- a/regress/unittests/sshkey/test_file.c +++ b/regress/unittests/sshkey/test_file.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_file.c,v 1.10 2021/12/14 21:25:27 deraadt Exp $ */ +/* $OpenBSD: test_file.c,v 1.11 2024/01/11 01:45:58 djm Exp $ */ /* * Regress test for sshkey.h key management API * @@ -165,6 +165,7 @@ sshkey_file_tests(void) sshkey_free(k1); +#ifdef WITH_DSA TEST_START("parse DSA from private"); buf = load_file("dsa_1"); ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); @@ -255,6 +256,7 @@ sshkey_file_tests(void) TEST_DONE(); sshkey_free(k1); +#endif #ifdef OPENSSL_HAS_ECC TEST_START("parse ECDSA from private"); diff --git a/regress/unittests/sshkey/test_fuzz.c b/regress/unittests/sshkey/test_fuzz.c index 2fae19d..0aff7c9 100644 --- a/regress/unittests/sshkey/test_fuzz.c +++ b/regress/unittests/sshkey/test_fuzz.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_fuzz.c,v 1.13 2021/12/14 21:25:27 deraadt Exp $ */ +/* $OpenBSD: test_fuzz.c,v 1.14 2024/01/11 01:45:58 djm Exp $ */ /* * Fuzz tests for key parsing * @@ -160,6 +160,7 @@ sshkey_fuzz_tests(void) fuzz_cleanup(fuzz); TEST_DONE(); +#ifdef WITH_DSA TEST_START("fuzz DSA private"); buf = load_file("dsa_1"); fuzz = fuzz_begin(FUZZ_BASE64, sshbuf_mutable_ptr(buf), @@ -203,6 +204,7 @@ sshkey_fuzz_tests(void) sshbuf_free(fuzzed); fuzz_cleanup(fuzz); TEST_DONE(); +#endif #ifdef OPENSSL_HAS_ECC TEST_START("fuzz ECDSA private"); @@ -288,6 +290,7 @@ sshkey_fuzz_tests(void) sshkey_free(k1); TEST_DONE(); +#ifdef WITH_DSA TEST_START("fuzz DSA public"); buf = load_file("dsa_1"); ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); @@ -301,6 +304,7 @@ sshkey_fuzz_tests(void) public_fuzz(k1); sshkey_free(k1); TEST_DONE(); +#endif #ifdef OPENSSL_HAS_ECC TEST_START("fuzz ECDSA public"); @@ -358,6 +362,7 @@ sshkey_fuzz_tests(void) sshkey_free(k1); TEST_DONE(); +#ifdef WITH_DSA TEST_START("fuzz DSA sig"); buf = load_file("dsa_1"); ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); @@ -365,6 +370,7 @@ sshkey_fuzz_tests(void) sig_fuzz(k1, NULL); sshkey_free(k1); TEST_DONE(); +#endif #ifdef OPENSSL_HAS_ECC TEST_START("fuzz ECDSA sig"); diff --git a/regress/unittests/sshkey/test_sshkey.c b/regress/unittests/sshkey/test_sshkey.c index cc359ae..c1cbb11 100644 --- a/regress/unittests/sshkey/test_sshkey.c +++ b/regress/unittests/sshkey/test_sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_sshkey.c,v 1.23 2023/01/04 22:48:57 tb Exp $ */ +/* $OpenBSD: test_sshkey.c,v 1.24 2024/01/11 01:45:58 djm Exp $ */ /* * Regress test for sshkey.h key management API * @@ -180,14 +180,14 @@ get_private(const char *n) void sshkey_tests(void) { - struct sshkey *k1, *k2, *k3, *kf; + struct sshkey *k1 = NULL, *k2 = NULL, *k3 = NULL, *kf = NULL; #ifdef WITH_OPENSSL - struct sshkey *k4, *kr, *kd; + struct sshkey *k4 = NULL, *kr = NULL, *kd = NULL; #ifdef OPENSSL_HAS_ECC - struct sshkey *ke; + struct sshkey *ke = NULL; #endif /* OPENSSL_HAS_ECC */ #endif /* WITH_OPENSSL */ - struct sshbuf *b; + struct sshbuf *b = NULL; TEST_START("new invalid"); k1 = sshkey_new(-42); @@ -208,12 +208,14 @@ sshkey_tests(void) sshkey_free(k1); TEST_DONE(); +#ifdef WITH_DSA TEST_START("new/free KEY_DSA"); k1 = sshkey_new(KEY_DSA); ASSERT_PTR_NE(k1, NULL); ASSERT_PTR_NE(k1->dsa, NULL); sshkey_free(k1); TEST_DONE(); +#endif #ifdef OPENSSL_HAS_ECC TEST_START("new/free KEY_ECDSA"); @@ -245,12 +247,14 @@ sshkey_tests(void) ASSERT_PTR_EQ(k1, NULL); TEST_DONE(); +#ifdef WITH_DSA TEST_START("generate KEY_DSA wrong bits"); ASSERT_INT_EQ(sshkey_generate(KEY_DSA, 2048, &k1), SSH_ERR_KEY_LENGTH); ASSERT_PTR_EQ(k1, NULL); sshkey_free(k1); TEST_DONE(); +#endif #ifdef OPENSSL_HAS_ECC TEST_START("generate KEY_ECDSA wrong bits"); @@ -273,6 +277,7 @@ sshkey_tests(void) ASSERT_INT_EQ(BN_num_bits(rsa_n(kr)), 1024); TEST_DONE(); +#ifdef WITH_DSA TEST_START("generate KEY_DSA"); ASSERT_INT_EQ(sshkey_generate(KEY_DSA, 1024, &kd), 0); ASSERT_PTR_NE(kd, NULL); @@ -280,6 +285,7 @@ sshkey_tests(void) ASSERT_PTR_NE(dsa_g(kd), NULL); ASSERT_PTR_NE(dsa_priv_key(kd), NULL); TEST_DONE(); +#endif #ifdef OPENSSL_HAS_ECC TEST_START("generate KEY_ECDSA"); @@ -317,6 +323,7 @@ sshkey_tests(void) sshkey_free(k1); TEST_DONE(); +#ifdef WITH_DSA TEST_START("demote KEY_DSA"); ASSERT_INT_EQ(sshkey_from_private(kd, &k1), 0); ASSERT_PTR_NE(k1, NULL); @@ -331,6 +338,7 @@ sshkey_tests(void) ASSERT_INT_EQ(sshkey_equal(kd, k1), 1); sshkey_free(k1); TEST_DONE(); +#endif #ifdef OPENSSL_HAS_ECC TEST_START("demote KEY_ECDSA"); @@ -382,9 +390,6 @@ sshkey_tests(void) ASSERT_INT_EQ(sshkey_generate(KEY_RSA, 1024, &k1), 0); ASSERT_INT_EQ(sshkey_equal(kr, k1), 0); sshkey_free(k1); - ASSERT_INT_EQ(sshkey_generate(KEY_DSA, 1024, &k1), 0); - ASSERT_INT_EQ(sshkey_equal(kd, k1), 0); - sshkey_free(k1); #ifdef OPENSSL_HAS_ECC ASSERT_INT_EQ(sshkey_generate(KEY_ECDSA, 256, &k1), 0); ASSERT_INT_EQ(sshkey_equal(ke, k1), 0); @@ -479,6 +484,7 @@ sshkey_tests(void) sshkey_free(k2); TEST_DONE(); +#ifdef WITH_DSA TEST_START("sign and verify DSA"); k1 = get_private("dsa_1"); ASSERT_INT_EQ(sshkey_load_public(test_data_file("dsa_2.pub"), &k2, @@ -487,6 +493,7 @@ sshkey_tests(void) sshkey_free(k1); sshkey_free(k2); TEST_DONE(); +#endif #ifdef OPENSSL_HAS_ECC TEST_START("sign and verify ECDSA"); diff --git a/regress/unittests/sshsig/tests.c b/regress/unittests/sshsig/tests.c index 13cfcfd..80966bd 100644 --- a/regress/unittests/sshsig/tests.c +++ b/regress/unittests/sshsig/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.3 2021/12/14 21:25:27 deraadt Exp $ */ +/* $OpenBSD: tests.c,v 1.4 2024/01/11 01:45:59 djm Exp $ */ /* * Regress test for sshbuf.h buffer API * @@ -103,9 +103,11 @@ tests(void) check_sig("rsa.pub", "rsa.sig", msg, namespace); TEST_DONE(); +#ifdef WITH_DSA TEST_START("check DSA signature"); check_sig("dsa.pub", "dsa.sig", msg, namespace); TEST_DONE(); +#endif #ifdef OPENSSL_HAS_ECC TEST_START("check ECDSA signature"); diff --git a/scp.0 b/scp.0 index 8153dbc..e098ddf 100644 --- a/scp.0 +++ b/scp.0 @@ -229,4 +229,4 @@ CAVEATS requires careful quoting of any characters that have special meaning to the remote shell, such as quote characters. -OpenBSD 7.3 December 16, 2022 OpenBSD 7.3 +OpenBSD 7.5 December 16, 2022 OpenBSD 7.5 diff --git a/servconf.c b/servconf.c index 86c2979..4b43490 100644 --- a/servconf.c +++ b/servconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.c,v 1.403 2023/10/11 22:42:26 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.405 2024/03/04 02:16:11 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1298,12 +1298,12 @@ process_server_config_line_depth(ServerOptions *options, char *line, struct include_list *includes) { char *str, ***chararrayptr, **charptr, *arg, *arg2, *p, *keyword; - int cmdline = 0, *intptr, value, value2, n, port, oactive, r, found; - int ca_only = 0; + int cmdline = 0, *intptr, value, value2, n, port, oactive, r; + int ca_only = 0, found = 0; SyslogFacility *log_facility_ptr; LogLevel *log_level_ptr; ServerOpCodes opcode; - u_int i, *uintptr, uvalue, flags = 0; + u_int i, *uintptr, flags = 0; size_t len; long long val64; const struct multistate *multistate_ptr; @@ -1313,6 +1313,8 @@ process_server_config_line_depth(ServerOptions *options, char *line, char **oav = NULL, **av; int oac = 0, ac; int ret = -1; + char **strs = NULL; /* string array arguments; freed implicitly */ + u_int nstrs = 0; /* Strip trailing whitespace. Allow \f (form feed) at EOL only */ if ((len = strlen(line)) == 0) @@ -1775,7 +1777,6 @@ process_server_config_line_depth(ServerOptions *options, char *line, case sLogVerbose: found = options->num_log_verbose == 0; - i = 0; while ((arg = argv_next(&ac, &av)) != NULL) { if (*arg == '\0') { error("%s line %d: keyword %s empty argument", @@ -1784,19 +1785,25 @@ process_server_config_line_depth(ServerOptions *options, char *line, } /* Allow "none" only in first position */ if (strcasecmp(arg, "none") == 0) { - if (i > 0 || ac > 0) { + if (nstrs > 0 || ac > 0) { error("%s line %d: keyword %s \"none\" " "argument must appear alone.", filename, linenum, keyword); goto out; } } - i++; - if (!found || !*activep) - continue; opt_array_append(filename, linenum, keyword, - &options->log_verbose, &options->num_log_verbose, - arg); + &strs, &nstrs, arg); + } + if (nstrs == 0) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } + if (found && *activep) { + options->log_verbose = strs; + options->num_log_verbose = nstrs; + strs = NULL; /* transferred */ + nstrs = 0; } break; @@ -1822,16 +1829,22 @@ process_server_config_line_depth(ServerOptions *options, char *line, chararrayptr = &options->allow_users; uintptr = &options->num_allow_users; parse_allowdenyusers: + /* XXX appends to list; doesn't respect first-match-wins */ while ((arg = argv_next(&ac, &av)) != NULL) { if (*arg == '\0' || match_user(NULL, NULL, NULL, arg) == -1) fatal("%s line %d: invalid %s pattern: \"%s\"", filename, linenum, keyword, arg); + found = 1; if (!*activep) continue; opt_array_append(filename, linenum, keyword, chararrayptr, uintptr, arg); } + if (!found) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } break; case sDenyUsers: @@ -1842,16 +1855,22 @@ process_server_config_line_depth(ServerOptions *options, char *line, case sAllowGroups: chararrayptr = &options->allow_groups; uintptr = &options->num_allow_groups; + /* XXX appends to list; doesn't respect first-match-wins */ parse_allowdenygroups: while ((arg = argv_next(&ac, &av)) != NULL) { if (*arg == '\0') fatal("%s line %d: empty %s pattern", filename, linenum, keyword); + found = 1; if (!*activep) continue; opt_array_append(filename, linenum, keyword, chararrayptr, uintptr, arg); } + if (!found) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } break; case sDenyGroups: @@ -1945,7 +1964,7 @@ process_server_config_line_depth(ServerOptions *options, char *line, arg = argv_assemble(1, &arg); /* quote command correctly */ arg2 = argv_assemble(ac, av); /* rest of command */ xasprintf(&options->subsystem_args[options->num_subsystems], - "%s %s", arg, arg2); + "%s%s%s", arg, *arg2 == '\0' ? "" : " ", arg2); free(arg2); argv_consume(&ac); options->num_subsystems++; @@ -2035,7 +2054,7 @@ process_server_config_line_depth(ServerOptions *options, char *line, * AuthorizedKeysFile /etc/ssh_keys/%u */ case sAuthorizedKeysFile: - uvalue = options->num_authkeys_files; + found = options->num_authkeys_files == 0; while ((arg = argv_next(&ac, &av)) != NULL) { if (*arg == '\0') { error("%s line %d: keyword %s empty argument", @@ -2043,13 +2062,20 @@ process_server_config_line_depth(ServerOptions *options, char *line, goto out; } arg2 = tilde_expand_filename(arg, getuid()); - if (*activep && uvalue == 0) { - opt_array_append(filename, linenum, keyword, - &options->authorized_keys_files, - &options->num_authkeys_files, arg2); - } + opt_array_append(filename, linenum, keyword, + &strs, &nstrs, arg2); free(arg2); } + if (nstrs == 0) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } + if (found && *activep) { + options->authorized_keys_files = strs; + options->num_authkeys_files = nstrs; + strs = NULL; /* transferred */ + nstrs = 0; + } break; case sAuthorizedPrincipalsFile: @@ -2075,34 +2101,47 @@ process_server_config_line_depth(ServerOptions *options, char *line, goto parse_int; case sAcceptEnv: + /* XXX appends to list; doesn't respect first-match-wins */ while ((arg = argv_next(&ac, &av)) != NULL) { if (*arg == '\0' || strchr(arg, '=') != NULL) fatal("%s line %d: Invalid environment name.", filename, linenum); + found = 1; if (!*activep) continue; opt_array_append(filename, linenum, keyword, &options->accept_env, &options->num_accept_env, arg); } + if (!found) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } break; case sSetEnv: - uvalue = options->num_setenv; + found = options->num_setenv == 0; while ((arg = argv_next(&ac, &av)) != NULL) { if (*arg == '\0' || strchr(arg, '=') == NULL) fatal("%s line %d: Invalid environment.", filename, linenum); - if (!*activep || uvalue != 0) - continue; - if (lookup_setenv_in_list(arg, options->setenv, - options->num_setenv) != NULL) { + if (lookup_setenv_in_list(arg, strs, nstrs) != NULL) { debug2("%s line %d: ignoring duplicate env " "name \"%.64s\"", filename, linenum, arg); continue; } opt_array_append(filename, linenum, keyword, - &options->setenv, &options->num_setenv, arg); + &strs, &nstrs, arg); + } + if (nstrs == 0) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } + if (found && *activep) { + options->setenv = strs; + options->num_setenv = nstrs; + strs = NULL; /* transferred */ + nstrs = 0; } break; @@ -2253,21 +2292,20 @@ process_server_config_line_depth(ServerOptions *options, char *line, uintptr = &options->num_permitted_opens; chararrayptr = &options->permitted_opens; } - arg = argv_next(&ac, &av); - if (!arg || *arg == '\0') - fatal("%s line %d: %s missing argument.", - filename, linenum, keyword); - uvalue = *uintptr; /* modified later */ - if (strcmp(arg, "any") == 0 || strcmp(arg, "none") == 0) { - if (*activep && uvalue == 0) { - *uintptr = 1; - *chararrayptr = xcalloc(1, - sizeof(**chararrayptr)); - (*chararrayptr)[0] = xstrdup(arg); + found = *uintptr == 0; + while ((arg = argv_next(&ac, &av)) != NULL) { + if (strcmp(arg, "any") == 0 || + strcmp(arg, "none") == 0) { + if (nstrs != 0) { + fatal("%s line %d: %s must appear " + "alone on a %s line.", + filename, linenum, arg, keyword); + } + opt_array_append(filename, linenum, keyword, + &strs, &nstrs, arg); + continue; } - break; - } - for (; arg != NULL && *arg != '\0'; arg = argv_next(&ac, &av)) { + if (opcode == sPermitListen && strchr(arg, ':') == NULL) { /* @@ -2289,12 +2327,20 @@ process_server_config_line_depth(ServerOptions *options, char *line, fatal("%s line %d: %s bad port number", filename, linenum, keyword); } - if (*activep && uvalue == 0) { - opt_array_append(filename, linenum, keyword, - chararrayptr, uintptr, arg2); - } + opt_array_append(filename, linenum, keyword, + &strs, &nstrs, arg2); free(arg2); } + if (nstrs == 0) { + fatal("%s line %d: %s missing argument.", + filename, linenum, keyword); + } + if (found && *activep) { + *chararrayptr = strs; + *uintptr = nstrs; + strs = NULL; /* transferred */ + nstrs = 0; + } break; case sForceCommand: @@ -2419,10 +2465,9 @@ process_server_config_line_depth(ServerOptions *options, char *line, case sAuthenticationMethods: found = options->num_auth_methods == 0; value = 0; /* seen "any" pseudo-method */ - value2 = 0; /* successfully parsed any method */ while ((arg = argv_next(&ac, &av)) != NULL) { if (strcmp(arg, "any") == 0) { - if (options->num_auth_methods > 0) { + if (nstrs > 0) { fatal("%s line %d: \"any\" must " "appear alone in %s", filename, linenum, keyword); @@ -2435,17 +2480,19 @@ process_server_config_line_depth(ServerOptions *options, char *line, fatal("%s line %d: invalid %s method list.", filename, linenum, keyword); } - value2 = 1; - if (!found || !*activep) - continue; opt_array_append(filename, linenum, keyword, - &options->auth_methods, - &options->num_auth_methods, arg); + &strs, &nstrs, arg); } - if (value2 == 0) { + if (nstrs == 0) { fatal("%s line %d: no %s specified", filename, linenum, keyword); } + if (found && *activep) { + options->auth_methods = strs; + options->num_auth_methods = nstrs; + strs = NULL; /* transferred */ + nstrs = 0; + } break; case sStreamLocalBindMask: @@ -2505,12 +2552,11 @@ process_server_config_line_depth(ServerOptions *options, char *line, goto parse_int; case sChannelTimeout: - uvalue = options->num_channel_timeouts; - i = 0; + found = options->num_channel_timeouts == 0; while ((arg = argv_next(&ac, &av)) != NULL) { /* Allow "none" only in first position */ if (strcasecmp(arg, "none") == 0) { - if (i > 0 || ac > 0) { + if (nstrs > 0 || ac > 0) { error("%s line %d: keyword %s \"none\" " "argument must appear alone.", filename, linenum, keyword); @@ -2521,11 +2567,18 @@ process_server_config_line_depth(ServerOptions *options, char *line, fatal("%s line %d: invalid channel timeout %s", filename, linenum, arg); } - if (!*activep || uvalue != 0) - continue; opt_array_append(filename, linenum, keyword, - &options->channel_timeouts, - &options->num_channel_timeouts, arg); + &strs, &nstrs, arg); + } + if (nstrs == 0) { + fatal("%s line %d: no %s specified", + filename, linenum, keyword); + } + if (found && *activep) { + options->channel_timeouts = strs; + options->num_channel_timeouts = nstrs; + strs = NULL; /* transferred */ + nstrs = 0; } break; @@ -2565,6 +2618,7 @@ process_server_config_line_depth(ServerOptions *options, char *line, /* success */ ret = 0; out: + opt_array_free2(strs, NULL, nstrs); argv_free(oav, oac); return ret; } diff --git a/session.c b/session.c index aa342e8..c821dcd 100644 --- a/session.c +++ b/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.336 2023/08/10 23:05:48 djm Exp $ */ +/* $OpenBSD: session.c,v 1.337 2024/02/01 02:37:33 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1327,7 +1327,7 @@ safely_chroot(const char *path, uid_t uid) memcpy(component, path, cp - path); component[cp - path] = '\0'; } - + debug3_f("checking '%s'", component); if (stat(component, &st) != 0) diff --git a/sftp-server.0 b/sftp-server.0 index 22c307f..23fdda3 100644 --- a/sftp-server.0 +++ b/sftp-server.0 @@ -95,4 +95,4 @@ HISTORY AUTHORS Markus Friedl -OpenBSD 7.3 July 27, 2021 OpenBSD 7.3 +OpenBSD 7.5 July 27, 2021 OpenBSD 7.5 diff --git a/sftp.0 b/sftp.0 index 0183da3..c6a9e60 100644 --- a/sftp.0 +++ b/sftp.0 @@ -435,4 +435,4 @@ SEE ALSO T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh- filexfer-00.txt, January 2001, work in progress material. -OpenBSD 7.3 December 16, 2022 OpenBSD 7.3 +OpenBSD 7.5 December 16, 2022 OpenBSD 7.5 diff --git a/sftp.c b/sftp.c index c609b41..76ba4de 100644 --- a/sftp.c +++ b/sftp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.236 2023/09/10 23:12:32 djm Exp $ */ +/* $OpenBSD: sftp.c,v 1.237 2024/02/01 02:37:33 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -177,24 +177,24 @@ struct CMD { #define LOCAL 2 static const struct CMD cmds[] = { - { "bye", I_QUIT, NOARGS, NOARGS }, - { "cd", I_CHDIR, REMOTE, NOARGS }, - { "chdir", I_CHDIR, REMOTE, NOARGS }, - { "chgrp", I_CHGRP, REMOTE, NOARGS }, - { "chmod", I_CHMOD, REMOTE, NOARGS }, - { "chown", I_CHOWN, REMOTE, NOARGS }, - { "copy", I_COPY, REMOTE, LOCAL }, - { "cp", I_COPY, REMOTE, LOCAL }, - { "df", I_DF, REMOTE, NOARGS }, - { "dir", I_LS, REMOTE, NOARGS }, - { "exit", I_QUIT, NOARGS, NOARGS }, - { "get", I_GET, REMOTE, LOCAL }, - { "help", I_HELP, NOARGS, NOARGS }, + { "bye", I_QUIT, NOARGS, NOARGS }, + { "cd", I_CHDIR, REMOTE, NOARGS }, + { "chdir", I_CHDIR, REMOTE, NOARGS }, + { "chgrp", I_CHGRP, REMOTE, NOARGS }, + { "chmod", I_CHMOD, REMOTE, NOARGS }, + { "chown", I_CHOWN, REMOTE, NOARGS }, + { "copy", I_COPY, REMOTE, LOCAL }, + { "cp", I_COPY, REMOTE, LOCAL }, + { "df", I_DF, REMOTE, NOARGS }, + { "dir", I_LS, REMOTE, NOARGS }, + { "exit", I_QUIT, NOARGS, NOARGS }, + { "get", I_GET, REMOTE, LOCAL }, + { "help", I_HELP, NOARGS, NOARGS }, { "lcd", I_LCHDIR, LOCAL, NOARGS }, { "lchdir", I_LCHDIR, LOCAL, NOARGS }, { "lls", I_LLS, LOCAL, NOARGS }, { "lmkdir", I_LMKDIR, LOCAL, NOARGS }, - { "ln", I_LINK, REMOTE, REMOTE }, + { "ln", I_LINK, REMOTE, REMOTE }, { "lpwd", I_LPWD, LOCAL, NOARGS }, { "ls", I_LS, REMOTE, NOARGS }, { "lumask", I_LUMASK, NOARGS, NOARGS }, @@ -203,17 +203,17 @@ static const struct CMD cmds[] = { { "mput", I_PUT, LOCAL, REMOTE }, { "progress", I_PROGRESS, NOARGS, NOARGS }, { "put", I_PUT, LOCAL, REMOTE }, - { "pwd", I_PWD, REMOTE, NOARGS }, - { "quit", I_QUIT, NOARGS, NOARGS }, - { "reget", I_REGET, REMOTE, LOCAL }, - { "rename", I_RENAME, REMOTE, REMOTE }, + { "pwd", I_PWD, REMOTE, NOARGS }, + { "quit", I_QUIT, NOARGS, NOARGS }, + { "reget", I_REGET, REMOTE, LOCAL }, + { "rename", I_RENAME, REMOTE, REMOTE }, { "reput", I_REPUT, LOCAL, REMOTE }, { "rm", I_RM, REMOTE, NOARGS }, { "rmdir", I_RMDIR, REMOTE, NOARGS }, { "symlink", I_SYMLINK, REMOTE, REMOTE }, - { "version", I_VERSION, NOARGS, NOARGS }, - { "!", I_SHELL, NOARGS, NOARGS }, - { "?", I_HELP, NOARGS, NOARGS }, + { "version", I_VERSION, NOARGS, NOARGS }, + { "!", I_SHELL, NOARGS, NOARGS }, + { "?", I_HELP, NOARGS, NOARGS }, { NULL, -1, -1, -1 } }; diff --git a/ssh-add.0 b/ssh-add.0 index fed9969..6ce88e0 100644 --- a/ssh-add.0 +++ b/ssh-add.0 @@ -4,9 +4,9 @@ NAME ssh-add M-bM-^@M-^S adds private key identities to the OpenSSH authentication agent SYNOPSIS - ssh-add [-cCDdKkLlqvXx] [-E fingerprint_hash] [-H hostkey_file] + ssh-add [-CcDdKkLlqvXx] [-E fingerprint_hash] [-H hostkey_file] [-h destination_constraint] [-S provider] [-t life] [file ...] - ssh-add -s pkcs11 [-vC] [certificate ...] + ssh-add -s pkcs11 [-Cv] [certificate ...] ssh-add -e pkcs11 ssh-add -T pubkey ... @@ -29,15 +29,15 @@ DESCRIPTION The options are as follows: + -C When loading keys into or deleting keys from the agent, process + certificates only and skip plain keys. + -c Indicates that added identities should be subject to confirmation before being used for authentication. Confirmation is performed by ssh-askpass(1). Successful confirmation is signaled by a zero exit status from ssh-askpass(1), rather than text entered into the requester. - -C When loading keys into or deleting keys from the agent, process - certificates only and skip plain keys. - -D Deletes all identities from the agent. -d Instead of adding identities, removes identities from the agent. @@ -207,4 +207,4 @@ AUTHORS created OpenSSH. Markus Friedl contributed the support for SSH protocol versions 1.5 and 2.0. -OpenBSD 7.3 December 18, 2023 OpenBSD 7.3 +OpenBSD 7.5 December 19, 2023 OpenBSD 7.5 diff --git a/ssh-add.1 b/ssh-add.1 index f0186cd..290ba91 100644 --- a/ssh-add.1 +++ b/ssh-add.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-add.1,v 1.85 2023/12/18 14:46:56 djm Exp $ +.\" $OpenBSD: ssh-add.1,v 1.86 2023/12/19 06:57:34 jmc Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -35,7 +35,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: December 18 2023 $ +.Dd $Mdocdate: December 19 2023 $ .Dt SSH-ADD 1 .Os .Sh NAME @@ -43,7 +43,7 @@ .Nd adds private key identities to the OpenSSH authentication agent .Sh SYNOPSIS .Nm ssh-add -.Op Fl cCDdKkLlqvXx +.Op Fl CcDdKkLlqvXx .Op Fl E Ar fingerprint_hash .Op Fl H Ar hostkey_file .Op Fl h Ar destination_constraint @@ -52,7 +52,7 @@ .Op Ar .Nm ssh-add .Fl s Ar pkcs11 -.Op Fl vC +.Op Fl Cv .Op Ar certificate ... .Nm ssh-add .Fl e Ar pkcs11 @@ -94,6 +94,9 @@ to work. .Pp The options are as follows: .Bl -tag -width Ds +.It Fl C +When loading keys into or deleting keys from the agent, process +certificates only and skip plain keys. .It Fl c Indicates that added identities should be subject to confirmation before being used for authentication. @@ -102,9 +105,6 @@ Confirmation is performed by Successful confirmation is signaled by a zero exit status from .Xr ssh-askpass 1 , rather than text entered into the requester. -.It Fl C -When loading keys into or deleting keys from the agent, process -certificates only and skip plain keys. .It Fl D Deletes all identities from the agent. .It Fl d diff --git a/ssh-add.c b/ssh-add.c index 99ba23b..e532d5c 100644 --- a/ssh-add.c +++ b/ssh-add.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-add.c,v 1.169 2023/12/18 14:46:56 djm Exp $ */ +/* $OpenBSD: ssh-add.c,v 1.172 2024/01/11 01:45:36 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -85,7 +85,9 @@ static char *default_files[] = { _PATH_SSH_CLIENT_ID_ED25519, _PATH_SSH_CLIENT_ID_ED25519_SK, _PATH_SSH_CLIENT_ID_XMSS, +#ifdef WITH_DSA _PATH_SSH_CLIENT_ID_DSA, +#endif NULL }; @@ -790,13 +792,13 @@ static void usage(void) { fprintf(stderr, -"usage: ssh-add [-cDdKkLlqvXx] [-E fingerprint_hash] [-H hostkey_file]\n" +"usage: ssh-add [-CcDdKkLlqvXx] [-E fingerprint_hash] [-H hostkey_file]\n" " [-h destination_constraint] [-S provider] [-t life]\n" #ifdef WITH_XMSS " [-M maxsign] [-m minleft]\n" #endif " [file ...]\n" -" ssh-add -s pkcs11\n" +" ssh-add -s pkcs11 [-Cv] [certificate ...]\n" " ssh-add -e pkcs11\n" " ssh-add -T pubkey ...\n" ); @@ -817,7 +819,7 @@ main(int argc, char **argv) LogLevel log_level = SYSLOG_LEVEL_INFO; struct sshkey *k, **certs = NULL; struct dest_constraint **dest_constraints = NULL; - size_t ndest_constraints = 0i, ncerts = 0; + size_t ndest_constraints = 0, ncerts = 0; /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); diff --git a/ssh-agent.0 b/ssh-agent.0 index 9be740d..2e4ef7b 100644 --- a/ssh-agent.0 +++ b/ssh-agent.0 @@ -137,4 +137,4 @@ AUTHORS created OpenSSH. Markus Friedl contributed the support for SSH protocol versions 1.5 and 2.0. -OpenBSD 7.3 August 10, 2023 OpenBSD 7.3 +OpenBSD 7.5 August 10, 2023 OpenBSD 7.5 diff --git a/ssh-agent.c b/ssh-agent.c index b6a3f48..d35741a 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.303 2023/12/18 14:48:08 djm Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.306 2024/03/09 05:12:13 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -162,6 +162,8 @@ int max_fd = 0; pid_t parent_pid = -1; time_t parent_alive_interval = 0; +sig_atomic_t signalled = 0; + /* pid of process for which cleanup_socket is applicable */ pid_t cleanup_pid = 0; @@ -250,6 +252,7 @@ free_dest_constraints(struct dest_constraint *dcs, size_t ndcs) free(dcs); } +#ifdef ENABLE_PKCS11 static void dup_dest_constraint_hop(const struct dest_constraint_hop *dch, struct dest_constraint_hop *out) @@ -289,6 +292,7 @@ dup_dest_constraints(const struct dest_constraint *dcs, size_t ndcs) } return ret; } +#endif /* ENABLE_PKCS11 */ #ifdef DEBUG_CONSTRAINTS static void @@ -1522,10 +1526,11 @@ no_identities(SocketEntry *e) sshbuf_free(msg); } +#ifdef ENABLE_PKCS11 /* Add an identity to idlist; takes ownership of 'key' and 'comment' */ static void add_p11_identity(struct sshkey *key, char *comment, const char *provider, - time_t death, int confirm, struct dest_constraint *dest_constraints, + time_t death, u_int confirm, struct dest_constraint *dest_constraints, size_t ndest_constraints) { Identity *id; @@ -1548,7 +1553,6 @@ add_p11_identity(struct sshkey *key, char *comment, const char *provider, idtab->nentries++; } -#ifdef ENABLE_PKCS11 static void process_add_smartcard_key(SocketEntry *e) { @@ -2060,7 +2064,7 @@ after_poll(struct pollfd *pfd, size_t npfd, u_int maxfds) } static int -prepare_poll(struct pollfd **pfdp, size_t *npfdp, int *timeoutp, u_int maxfds) +prepare_poll(struct pollfd **pfdp, size_t *npfdp, struct timespec *timeoutp, u_int maxfds) { struct pollfd *pfd = *pfdp; size_t i, j, npfd = 0; @@ -2126,14 +2130,8 @@ prepare_poll(struct pollfd **pfdp, size_t *npfdp, int *timeoutp, u_int maxfds) if (parent_alive_interval != 0) deadline = (deadline == 0) ? parent_alive_interval : MINIMUM(deadline, parent_alive_interval); - if (deadline == 0) { - *timeoutp = -1; /* INFTIM */ - } else { - if (deadline > INT_MAX / 1000) - *timeoutp = INT_MAX / 1000; - else - *timeoutp = deadline * 1000; - } + if (deadline != 0) + ptimeout_deadline_sec(timeoutp, deadline); return (1); } @@ -2153,17 +2151,16 @@ void cleanup_exit(int i) { cleanup_socket(); +#ifdef ENABLE_PKCS11 + pkcs11_terminate(); +#endif _exit(i); } static void cleanup_handler(int sig) { - cleanup_socket(); -#ifdef ENABLE_PKCS11 - pkcs11_terminate(); -#endif - _exit(2); + signalled = sig; } static void @@ -2207,10 +2204,11 @@ main(int ac, char **av) char pidstrbuf[1 + 3 * sizeof pid]; size_t len; mode_t prev_mask; - int timeout = -1; /* INFTIM */ + struct timespec timeout; struct pollfd *pfd = NULL; size_t npfd = 0; u_int maxfds; + sigset_t nsigset, osigset; /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); @@ -2446,13 +2444,25 @@ skip: ssh_signal(SIGHUP, cleanup_handler); ssh_signal(SIGTERM, cleanup_handler); + sigemptyset(&nsigset); + sigaddset(&nsigset, SIGINT); + sigaddset(&nsigset, SIGHUP); + sigaddset(&nsigset, SIGTERM); + if (pledge("stdio rpath cpath unix id proc exec", NULL) == -1) fatal("%s: pledge: %s", __progname, strerror(errno)); platform_pledge_agent(); while (1) { + sigprocmask(SIG_BLOCK, &nsigset, &osigset); + if (signalled != 0) { + logit("exiting on signal %d", (int)signalled); + cleanup_exit(2); + } + ptimeout_init(&timeout); prepare_poll(&pfd, &npfd, &timeout, maxfds); - result = poll(pfd, npfd, timeout); + result = ppoll(pfd, npfd, ptimeout_get_tsp(&timeout), &osigset); + sigprocmask(SIG_SETMASK, &osigset, NULL); saved_errno = errno; if (parent_alive_interval != 0) check_parent_exists(); diff --git a/ssh-dss.c b/ssh-dss.c index 3174ef1..aea6613 100644 --- a/ssh-dss.c +++ b/ssh-dss.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-dss.c,v 1.49 2023/03/05 05:34:09 dtucker Exp $ */ +/* $OpenBSD: ssh-dss.c,v 1.50 2024/01/11 01:45:36 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -25,7 +25,7 @@ #include "includes.h" -#ifdef WITH_OPENSSL +#if defined(WITH_OPENSSL) && defined(WITH_DSA) #include @@ -453,4 +453,5 @@ const struct sshkey_impl sshkey_dsa_cert_impl = { /* .keybits = */ 0, /* .funcs = */ &sshkey_dss_funcs, }; -#endif /* WITH_OPENSSL */ + +#endif /* WITH_OPENSSL && WITH_DSA */ diff --git a/ssh-keygen.0 b/ssh-keygen.0 index 95e4aa3..b0c22f7 100644 --- a/ssh-keygen.0 +++ b/ssh-keygen.0 @@ -907,4 +907,4 @@ AUTHORS created OpenSSH. Markus Friedl contributed the support for SSH protocol versions 1.5 and 2.0. -OpenBSD 7.3 September 4, 2023 OpenBSD 7.3 +OpenBSD 7.5 September 4, 2023 OpenBSD 7.5 diff --git a/ssh-keygen.c b/ssh-keygen.c index 5b945a8..97c6d13 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.471 2023/09/04 10:29:58 job Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.472 2024/01/11 01:45:36 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -262,10 +262,12 @@ ask_filename(struct passwd *pw, const char *prompt) name = _PATH_SSH_CLIENT_ID_ED25519; else { switch (sshkey_type_from_name(key_type_name)) { +#ifdef WITH_DSA case KEY_DSA_CERT: case KEY_DSA: name = _PATH_SSH_CLIENT_ID_DSA; break; +#endif #ifdef OPENSSL_HAS_ECC case KEY_ECDSA_CERT: case KEY_ECDSA: @@ -376,10 +378,12 @@ do_convert_to_pkcs8(struct sshkey *k) if (!PEM_write_RSA_PUBKEY(stdout, k->rsa)) fatal("PEM_write_RSA_PUBKEY failed"); break; +#ifdef WITH_DSA case KEY_DSA: if (!PEM_write_DSA_PUBKEY(stdout, k->dsa)) fatal("PEM_write_DSA_PUBKEY failed"); break; +#endif #ifdef OPENSSL_HAS_ECC case KEY_ECDSA: if (!PEM_write_EC_PUBKEY(stdout, k->ecdsa)) @@ -400,10 +404,12 @@ do_convert_to_pem(struct sshkey *k) if (!PEM_write_RSAPublicKey(stdout, k->rsa)) fatal("PEM_write_RSAPublicKey failed"); break; +#ifdef WITH_DSA case KEY_DSA: if (!PEM_write_DSA_PUBKEY(stdout, k->dsa)) fatal("PEM_write_DSA_PUBKEY failed"); break; +#endif #ifdef OPENSSL_HAS_ECC case KEY_ECDSA: if (!PEM_write_EC_PUBKEY(stdout, k->ecdsa)) @@ -478,8 +484,10 @@ do_convert_private_ssh2(struct sshbuf *b) u_int magic, i1, i2, i3, i4; size_t slen; u_long e; +#ifdef WITH_DSA BIGNUM *dsa_p = NULL, *dsa_q = NULL, *dsa_g = NULL; BIGNUM *dsa_pub_key = NULL, *dsa_priv_key = NULL; +#endif BIGNUM *rsa_n = NULL, *rsa_e = NULL, *rsa_d = NULL; BIGNUM *rsa_p = NULL, *rsa_q = NULL, *rsa_iqmp = NULL; @@ -507,10 +515,12 @@ do_convert_private_ssh2(struct sshbuf *b) } free(cipher); - if (strstr(type, "dsa")) { - ktype = KEY_DSA; - } else if (strstr(type, "rsa")) { + if (strstr(type, "rsa")) { ktype = KEY_RSA; +#ifdef WITH_DSA + } else if (strstr(type, "dsa")) { + ktype = KEY_DSA; +#endif } else { free(type); return NULL; @@ -520,6 +530,7 @@ do_convert_private_ssh2(struct sshbuf *b) free(type); switch (key->type) { +#ifdef WITH_DSA case KEY_DSA: if ((dsa_p = BN_new()) == NULL || (dsa_q = BN_new()) == NULL || @@ -539,6 +550,7 @@ do_convert_private_ssh2(struct sshbuf *b) fatal_f("DSA_set0_key failed"); dsa_pub_key = dsa_priv_key = NULL; /* transferred */ break; +#endif case KEY_RSA: if ((r = sshbuf_get_u8(b, &e1)) != 0 || (e1 < 30 && (r = sshbuf_get_u8(b, &e2)) != 0) || @@ -702,12 +714,14 @@ do_convert_from_pkcs8(struct sshkey **k, int *private) (*k)->type = KEY_RSA; (*k)->rsa = EVP_PKEY_get1_RSA(pubkey); break; +#ifdef WITH_DSA case EVP_PKEY_DSA: if ((*k = sshkey_new(KEY_UNSPEC)) == NULL) fatal("sshkey_new failed"); (*k)->type = KEY_DSA; (*k)->dsa = EVP_PKEY_get1_DSA(pubkey); break; +#endif #ifdef OPENSSL_HAS_ECC case EVP_PKEY_EC: if ((*k = sshkey_new(KEY_UNSPEC)) == NULL) @@ -777,10 +791,12 @@ do_convert_from(struct passwd *pw) fprintf(stdout, "\n"); } else { switch (k->type) { +#ifdef WITH_DSA case KEY_DSA: ok = PEM_write_DSAPrivateKey(stdout, k->dsa, NULL, NULL, 0, NULL, NULL); break; +#endif #ifdef OPENSSL_HAS_ECC case KEY_ECDSA: ok = PEM_write_ECPrivateKey(stdout, k->ecdsa, NULL, @@ -3752,9 +3768,11 @@ main(int argc, char **argv) n += do_print_resource_record(pw, _PATH_HOST_RSA_KEY_FILE, rr_hostname, print_generic, opts, nopts); +#ifdef WITH_DSA n += do_print_resource_record(pw, _PATH_HOST_DSA_KEY_FILE, rr_hostname, print_generic, opts, nopts); +#endif n += do_print_resource_record(pw, _PATH_HOST_ECDSA_KEY_FILE, rr_hostname, print_generic, opts, nopts); diff --git a/ssh-keyscan.0 b/ssh-keyscan.0 index ee73788..e2055e7 100644 --- a/ssh-keyscan.0 +++ b/ssh-keyscan.0 @@ -118,4 +118,4 @@ AUTHORS Davison added support for protocol version 2. -OpenBSD 7.3 February 10, 2023 OpenBSD 7.3 +OpenBSD 7.5 February 10, 2023 OpenBSD 7.5 diff --git a/ssh-keyscan.c b/ssh-keyscan.c index 1d2df70..f2e6b59 100644 --- a/ssh-keyscan.c +++ b/ssh-keyscan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keyscan.c,v 1.153 2023/06/21 05:06:04 djm Exp $ */ +/* $OpenBSD: ssh-keyscan.c,v 1.155 2024/01/11 01:45:36 djm Exp $ */ /* * Copyright 1995, 1996 by David Mazieres . * @@ -504,11 +504,11 @@ congreet(int s) /* * Read the server banner as per RFC4253 section 4.2. The "SSH-" - * protocol identification string may be preceeded by an arbitrarily + * protocol identification string may be preceded by an arbitrarily * large banner which we must read and ignore. Loop while reading * newline-terminated lines until we have one starting with "SSH-". * The ID string cannot be longer than 255 characters although the - * preceeding banner lines may (in which case they'll be discarded + * preceding banner lines may (in which case they'll be discarded * in multiple iterations of the outer loop). */ for (;;) { @@ -791,9 +791,11 @@ main(int argc, char **argv) int type = sshkey_type_from_name(tname); switch (type) { +#ifdef WITH_DSA case KEY_DSA: get_keytypes |= KT_DSA; break; +#endif case KEY_ECDSA: get_keytypes |= KT_ECDSA; break; diff --git a/ssh-keysign.0 b/ssh-keysign.0 index 71fa63b..c7fe6c8 100644 --- a/ssh-keysign.0 +++ b/ssh-keysign.0 @@ -49,4 +49,4 @@ HISTORY AUTHORS Markus Friedl -OpenBSD 7.3 March 31, 2022 OpenBSD 7.3 +OpenBSD 7.5 March 31, 2022 OpenBSD 7.5 diff --git a/ssh-keysign.c b/ssh-keysign.c index b989f5e..c54a4bb 100644 --- a/ssh-keysign.c +++ b/ssh-keysign.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keysign.c,v 1.71 2022/08/01 11:09:26 djm Exp $ */ +/* $OpenBSD: ssh-keysign.c,v 1.73 2024/01/11 01:51:16 djm Exp $ */ /* * Copyright (c) 2002 Markus Friedl. All rights reserved. * @@ -195,9 +195,14 @@ main(int argc, char **argv) if (fd > 2) close(fd); + for (i = 0; i < NUM_KEYTYPES; i++) + key_fd[i] = -1; + i = 0; /* XXX This really needs to read sshd_config for the paths */ +#ifdef WITH_DSA key_fd[i++] = open(_PATH_HOST_DSA_KEY_FILE, O_RDONLY); +#endif key_fd[i++] = open(_PATH_HOST_ECDSA_KEY_FILE, O_RDONLY); key_fd[i++] = open(_PATH_HOST_ED25519_KEY_FILE, O_RDONLY); key_fd[i++] = open(_PATH_HOST_XMSS_KEY_FILE, O_RDONLY); diff --git a/ssh-pkcs11-client.c b/ssh-pkcs11-client.c index 82e86a5..5fa8bf0 100644 --- a/ssh-pkcs11-client.c +++ b/ssh-pkcs11-client.c @@ -457,6 +457,7 @@ pkcs11_make_cert(const struct sshkey *priv, RSA_set_method(ret->rsa, helper->rsa_meth); if (helper->nrsa++ >= INT_MAX) fatal_f("RSA refcount error"); +#if defined(OPENSSL_HAS_ECC) && defined(HAVE_EC_KEY_METHOD_NEW) } else if (priv->type == KEY_ECDSA) { if ((helper = helper_by_ec(priv->ecdsa)) == NULL || helper->fd == -1) @@ -466,6 +467,7 @@ pkcs11_make_cert(const struct sshkey *priv, EC_KEY_set_method(ret->ecdsa, helper->ec_meth); if (helper->nec++ >= INT_MAX) fatal_f("EC refcount error"); +#endif } else fatal_f("unknown key type %s", sshkey_type(priv)); diff --git a/ssh-pkcs11-helper.0 b/ssh-pkcs11-helper.0 index 07f7d66..5645872 100644 --- a/ssh-pkcs11-helper.0 +++ b/ssh-pkcs11-helper.0 @@ -32,4 +32,4 @@ HISTORY AUTHORS Markus Friedl -OpenBSD 7.3 April 29, 2022 OpenBSD 7.3 +OpenBSD 7.5 April 29, 2022 OpenBSD 7.5 diff --git a/ssh-sk-helper.0 b/ssh-sk-helper.0 index 1eb123b..ea2117a 100644 --- a/ssh-sk-helper.0 +++ b/ssh-sk-helper.0 @@ -31,4 +31,4 @@ HISTORY AUTHORS Damien Miller -OpenBSD 7.3 April 29, 2022 OpenBSD 7.3 +OpenBSD 7.5 April 29, 2022 OpenBSD 7.5 diff --git a/ssh.0 b/ssh.0 index 5b5e2ad..f2c32af 100644 --- a/ssh.0 +++ b/ssh.0 @@ -1020,4 +1020,4 @@ AUTHORS created OpenSSH. Markus Friedl contributed the support for SSH protocol versions 1.5 and 2.0. -OpenBSD 7.3 October 11, 2023 OpenBSD 7.3 +OpenBSD 7.5 October 11, 2023 OpenBSD 7.5 diff --git a/ssh.c b/ssh.c index 48d93dd..0019281 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.599 2023/12/18 14:47:44 djm Exp $ */ +/* $OpenBSD: ssh.c,v 1.600 2024/01/11 01:45:36 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1687,11 +1687,15 @@ main(int ac, char **av) L_CERT(_PATH_HOST_ECDSA_KEY_FILE, 0); L_CERT(_PATH_HOST_ED25519_KEY_FILE, 1); L_CERT(_PATH_HOST_RSA_KEY_FILE, 2); +#ifdef WITH_DSA L_CERT(_PATH_HOST_DSA_KEY_FILE, 3); +#endif L_PUBKEY(_PATH_HOST_ECDSA_KEY_FILE, 4); L_PUBKEY(_PATH_HOST_ED25519_KEY_FILE, 5); L_PUBKEY(_PATH_HOST_RSA_KEY_FILE, 6); +#ifdef WITH_DSA L_PUBKEY(_PATH_HOST_DSA_KEY_FILE, 7); +#endif L_CERT(_PATH_HOST_XMSS_KEY_FILE, 8); L_PUBKEY(_PATH_HOST_XMSS_KEY_FILE, 9); if (loaded == 0) diff --git a/ssh_api.c b/ssh_api.c index d3c6617..fadf2f4 100644 --- a/ssh_api.c +++ b/ssh_api.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh_api.c,v 1.27 2021/04/03 06:18:41 djm Exp $ */ +/* $OpenBSD: ssh_api.c,v 1.28 2024/01/09 21:39:14 djm Exp $ */ /* * Copyright (c) 2012 Markus Friedl. All rights reserved. * @@ -82,6 +82,7 @@ int ssh_init(struct ssh **sshp, int is_server, struct kex_params *kex_params) { char *myproposal[PROPOSAL_MAX] = { KEX_CLIENT }; + char *populated[PROPOSAL_MAX]; struct ssh *ssh; char **proposal; static int called; @@ -99,10 +100,19 @@ ssh_init(struct ssh **sshp, int is_server, struct kex_params *kex_params) /* Initialize key exchange */ proposal = kex_params ? kex_params->proposal : myproposal; - if ((r = kex_ready(ssh, proposal)) != 0) { + kex_proposal_populate_entries(ssh, populated, + proposal[PROPOSAL_KEX_ALGS], + proposal[PROPOSAL_ENC_ALGS_CTOS], + proposal[PROPOSAL_MAC_ALGS_CTOS], + proposal[PROPOSAL_COMP_ALGS_CTOS], + proposal[PROPOSAL_SERVER_HOST_KEY_ALGS]); + r = kex_ready(ssh, populated); + kex_proposal_free_entries(populated); + if (r != 0) { ssh_free(ssh); return r; } + ssh->kex->server = is_server; if (is_server) { #ifdef WITH_OPENSSL diff --git a/ssh_config.0 b/ssh_config.0 index 053cabc..aaf8b14 100644 --- a/ssh_config.0 +++ b/ssh_config.0 @@ -55,11 +55,12 @@ DESCRIPTION Match keyword are satisfied. Match conditions are specified using one or more criteria or the single token all which always matches. The available criteria keywords are: canonical, final, - exec, localnetwork, host, originalhost, Tag, user, and localuser. - The all criteria must appear alone or immediately after canonical - or final. Other criteria may be combined arbitrarily. All - criteria but all, canonical, and final require an argument. - Criteria may be negated by prepending an exclamation mark (M-bM-^@M-^X!M-bM-^@M-^Y). + exec, localnetwork, host, originalhost, tagged, user, and + localuser. The all criteria must appear alone or immediately + after canonical or final. Other criteria may be combined + arbitrarily. All criteria but all, canonical, and final require + an argument. Criteria may be negated by prepending an + exclamation mark (M-bM-^@M-^X!M-bM-^@M-^Y). The canonical keyword matches only when the configuration file is being re-parsed after hostname canonicalization (see the @@ -226,17 +227,23 @@ DESCRIPTION ChannelTimeout Specifies whether and how quickly ssh(1) should close inactive channels. Timeouts are specified as one or more M-bM-^@M-^\type=intervalM-bM-^@M-^] - pairs separated by whitespace, where the M-bM-^@M-^\typeM-bM-^@M-^] must be a channel - type name (as described in the table below), optionally - containing wildcard characters. + pairs separated by whitespace, where the M-bM-^@M-^\typeM-bM-^@M-^] must be the + special keyword M-bM-^@M-^\globalM-bM-^@M-^] or a channel type name from the list + below, optionally containing wildcard characters. The timeout value M-bM-^@M-^\intervalM-bM-^@M-^] is specified in seconds or may use any of the units documented in the TIME FORMATS section. For - example, M-bM-^@M-^\session=5mM-bM-^@M-^] would cause the interactive session to + example, M-bM-^@M-^\session=5mM-bM-^@M-^] would cause interactive sessions to terminate after five minutes of inactivity. Specifying a zero value disables the inactivity timeout. - The available channel types include: + The special timeout M-bM-^@M-^\globalM-bM-^@M-^] applies to all active channels, + taken together. Traffic on any active channel will reset the + timeout, but when the timeout expires then all open channels will + be closed. Note that this global timeout is not matched by + wildcards and must be specified explicitly. + + The available channel type names include: agent-connection Open connections to ssh-agent(1). @@ -1415,4 +1422,4 @@ AUTHORS created OpenSSH. Markus Friedl contributed the support for SSH protocol versions 1.5 and 2.0. -OpenBSD 7.3 October 12, 2023 OpenBSD 7.3 +OpenBSD 7.5 February 21, 2024 OpenBSD 7.5 diff --git a/ssh_config.5 b/ssh_config.5 index 4bbdfef..2931d80 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.391 2023/10/12 02:18:18 djm Exp $ -.Dd $Mdocdate: October 12 2023 $ +.\" $OpenBSD: ssh_config.5,v 1.394 2024/02/21 06:01:13 djm Exp $ +.Dd $Mdocdate: February 21 2024 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -144,7 +144,7 @@ The available criteria keywords are: .Cm localnetwork , .Cm host , .Cm originalhost , -.Cm Tag , +.Cm tagged , .Cm user , and .Cm localuser . @@ -463,8 +463,10 @@ Timeouts are specified as one or more .Dq type=interval pairs separated by whitespace, where the .Dq type -must be a channel type name (as described in the table below), optionally -containing wildcard characters. +must be the special keyword +.Dq global +or a channel type name from the list below, optionally containing +wildcard characters. .Pp The timeout value .Dq interval @@ -473,11 +475,19 @@ is specified in seconds or may use any of the units documented in the section. For example, .Dq session=5m -would cause the interactive session to terminate after five minutes of +would cause interactive sessions to terminate after five minutes of inactivity. Specifying a zero value disables the inactivity timeout. .Pp -The available channel types include: +The special timeout +.Dq global +applies to all active channels, taken together. +Traffic on any active channel will reset the timeout, but when the timeout +expires then all open channels will be closed. +Note that this global timeout is not matched by wildcards and must be +specified explicitly. +.Pp +The available channel type names include: .Bl -tag -width Ds .It Cm agent-connection Open connections to diff --git a/sshbuf-getput-crypto.c b/sshbuf-getput-crypto.c index 56ffdd8..af3f397 100644 --- a/sshbuf-getput-crypto.c +++ b/sshbuf-getput-crypto.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshbuf-getput-crypto.c,v 1.10 2022/05/25 06:03:44 djm Exp $ */ +/* $OpenBSD: sshbuf-getput-crypto.c,v 1.11 2024/02/01 02:37:33 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -123,7 +123,7 @@ sshbuf_get_eckey(struct sshbuf *buf, EC_KEY *v) SSHBUF_ABORT(); return SSH_ERR_INTERNAL_ERROR; } - return 0; + return 0; } #endif /* OPENSSL_HAS_ECC */ diff --git a/sshconnect.c b/sshconnect.c index bd077c7..d8efc50 100644 --- a/sshconnect.c +++ b/sshconnect.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect.c,v 1.365 2023/11/20 02:50:00 djm Exp $ */ +/* $OpenBSD: sshconnect.c,v 1.366 2024/01/11 01:45:36 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1595,7 +1595,9 @@ show_other_keys(struct hostkeys *hostkeys, struct sshkey *key) { int type[] = { KEY_RSA, +#ifdef WITH_DSA KEY_DSA, +#endif KEY_ECDSA, KEY_ED25519, KEY_XMSS, diff --git a/sshconnect2.c b/sshconnect2.c index fab1e36..745c2a0 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.371 2023/12/18 14:45:49 djm Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.372 2024/01/08 00:34:34 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -221,7 +221,7 @@ ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port, const struct ssh_conn_info *cinfo) { char *myproposal[PROPOSAL_MAX]; - char *s, *all_key, *hkalgs = NULL; + char *all_key, *hkalgs = NULL; int r, use_known_hosts_order = 0; xxx_host = host; @@ -249,14 +249,12 @@ ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port, fatal_fr(r, "kex_assemble_namelist"); free(all_key); - if ((s = kex_names_cat(options.kex_algorithms, "ext-info-c")) == NULL) - fatal_f("kex_names_cat"); - if (use_known_hosts_order) hkalgs = order_hostkeyalgs(host, hostaddr, port, cinfo); - kex_proposal_populate_entries(ssh, myproposal, s, options.ciphers, - options.macs, compression_alg_list(options.compression), + kex_proposal_populate_entries(ssh, myproposal, + options.kex_algorithms, options.ciphers, options.macs, + compression_alg_list(options.compression), hkalgs ? hkalgs : options.hostkeyalgorithms); free(hkalgs); @@ -281,13 +279,7 @@ ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port, ssh->kex->verify_host_key=&verify_host_key_callback; ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &ssh->kex->done); - - /* remove ext-info from the KEX proposals for rekeying */ - free(myproposal[PROPOSAL_KEX_ALGS]); - myproposal[PROPOSAL_KEX_ALGS] = - compat_kex_proposal(ssh, options.kex_algorithms); - if ((r = kex_prop2buf(ssh->kex->my, myproposal)) != 0) - fatal_r(r, "kex_prop2buf"); + kex_proposal_free_entries(myproposal); #ifdef DEBUG_KEXDH /* send 1st encrypted/maced/compressed message */ @@ -297,7 +289,6 @@ ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port, (r = ssh_packet_write_wait(ssh)) != 0) fatal_fr(r, "send packet"); #endif - kex_proposal_free_entries(myproposal); } /* diff --git a/sshd.0 b/sshd.0 index 98855e8..ef26622 100644 --- a/sshd.0 +++ b/sshd.0 @@ -683,4 +683,4 @@ AUTHORS versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support for privilege separation. -OpenBSD 7.3 September 19, 2023 OpenBSD 7.3 +OpenBSD 7.5 September 19, 2023 OpenBSD 7.5 diff --git a/sshd.c b/sshd.c index 9cbe922..b4f2b97 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.601 2023/12/18 14:45:49 djm Exp $ */ +/* $OpenBSD: sshd.c,v 1.602 2024/01/08 00:34:34 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2428,6 +2428,7 @@ do_ssh2_kex(struct ssh *ssh) kex->sign = sshd_hostkey_sign; ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &kex->done); + kex_proposal_free_entries(myproposal); #ifdef DEBUG_KEXDH /* send 1st encrypted/maced/compressed message */ @@ -2437,7 +2438,6 @@ do_ssh2_kex(struct ssh *ssh) (r = ssh_packet_write_wait(ssh)) != 0) fatal_fr(r, "send test"); #endif - kex_proposal_free_entries(myproposal); debug("KEX done"); } diff --git a/sshd_config.0 b/sshd_config.0 index 94c0ac8..8b39739 100644 --- a/sshd_config.0 +++ b/sshd_config.0 @@ -229,17 +229,23 @@ DESCRIPTION ChannelTimeout Specifies whether and how quickly sshd(8) should close inactive channels. Timeouts are specified as one or more M-bM-^@M-^\type=intervalM-bM-^@M-^] - pairs separated by whitespace, where the M-bM-^@M-^\typeM-bM-^@M-^] must be a channel - type name (as described in the table below), optionally - containing wildcard characters. + pairs separated by whitespace, where the M-bM-^@M-^\typeM-bM-^@M-^] must be the + special keyword M-bM-^@M-^\globalM-bM-^@M-^] or a channel type name from the list + below, optionally containing wildcard characters. The timeout value M-bM-^@M-^\intervalM-bM-^@M-^] is specified in seconds or may use any of the units documented in the TIME FORMATS section. For - example, M-bM-^@M-^\session:*=5mM-bM-^@M-^] would cause all sessions to terminate - after five minutes of inactivity. Specifying a zero value - disables the inactivity timeout. + example, M-bM-^@M-^\session=5mM-bM-^@M-^] would cause interactive sessions to + terminate after five minutes of inactivity. Specifying a zero + value disables the inactivity timeout. - The available channel types include: + The special timeout M-bM-^@M-^\globalM-bM-^@M-^] applies to all active channels, + taken together. Traffic on any active channel will reset the + timeout, but when the timeout expires then all open channels will + be closed. Note that this global timeout is not matched by + wildcards and must be specified explicitly. + + The available channel type names include: agent-connection Open connections to ssh-agent(1). @@ -254,15 +260,12 @@ DESCRIPTION have been established to a sshd(8) listening on behalf of a ssh(1) remote forwarding, i.e. RemoteForward. - session:command - Command execution sessions. - - session:shell - Interactive shell sessions. + session + The interactive main session, including shell session, + command execution, scp(1), sftp(1), etc. - session:subsystem:... - Subsystem sessions, e.g. for sftp(1), which could be - identified as session:subsystem:sftp. + tun-connection + Open TunnelForward connections. x11-connection Open X11 forwarding sessions. @@ -277,8 +280,7 @@ DESCRIPTION client from requesting another channel of the same type. In particular, expiring an inactive forwarding session does not prevent another identical forwarding from being subsequently - created. See also UnusedConnectionTimeout, which may be used in - conjunction with this option. + created. The default is not to expire channels of any type for inactivity. @@ -286,10 +288,10 @@ DESCRIPTION Specifies the pathname of a directory to chroot(2) to after authentication. At session startup sshd(8) checks that all components of the pathname are root-owned directories which are - not writable by any other user or group. After the chroot, - sshd(8) changes the working directory to the user's home - directory. Arguments to ChrootDirectory accept the tokens - described in the TOKENS section. + not writable by group or others. After the chroot, sshd(8) + changes the working directory to the user's home directory. + Arguments to ChrootDirectory accept the tokens described in the + TOKENS section. The ChrootDirectory must contain the necessary files and directories to support the user's session. For an interactive @@ -1084,7 +1086,11 @@ DESCRIPTION Alternately the name internal-sftp implements an in-process SFTP server. This may simplify configurations using ChrootDirectory - to force a different filesystem root on clients. + to force a different filesystem root on clients. It accepts the + same command line arguments as sftp-server and even though it is + in-process, settings such as LogLevel or SyslogFacility do not + apply to it and must be set explicitly via command line + arguments. By default no subsystems are defined. @@ -1287,4 +1293,4 @@ AUTHORS versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support for privilege separation. -OpenBSD 7.3 July 28, 2023 OpenBSD 7.3 +OpenBSD 7.5 February 21, 2024 OpenBSD 7.5 diff --git a/sshd_config.5 b/sshd_config.5 index 7e1a56c..a0f1687 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.350 2023/07/28 05:42:36 jmc Exp $ -.Dd $Mdocdate: July 28 2023 $ +.\" $OpenBSD: sshd_config.5,v 1.355 2024/02/21 06:17:29 djm Exp $ +.Dd $Mdocdate: February 21 2024 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -409,8 +409,10 @@ Timeouts are specified as one or more .Dq type=interval pairs separated by whitespace, where the .Dq type -must be a channel type name (as described in the table below), optionally -containing wildcard characters. +must be the special keyword +.Dq global +or a channel type name from the list below, optionally containing +wildcard characters. .Pp The timeout value .Dq interval @@ -418,11 +420,20 @@ is specified in seconds or may use any of the units documented in the .Sx TIME FORMATS section. For example, -.Dq session:*=5m -would cause all sessions to terminate after five minutes of inactivity. +.Dq session=5m +would cause interactive sessions to terminate after five minutes of +inactivity. Specifying a zero value disables the inactivity timeout. .Pp -The available channel types include: +The special timeout +.Dq global +applies to all active channels, taken together. +Traffic on any active channel will reset the timeout, but when the timeout +expires then all open channels will be closed. +Note that this global timeout is not matched by wildcards and must be +specified explicitly. +.Pp +The available channel type names include: .Bl -tag -width Ds .It Cm agent-connection Open connections to @@ -443,15 +454,15 @@ listening on behalf of a .Xr ssh 1 remote forwarding, i.e.\& .Cm RemoteForward . -.It Cm session:command -Command execution sessions. -.It Cm session:shell -Interactive shell sessions. -.It Cm session:subsystem:... -Subsystem sessions, e.g. for +.It Cm session +The interactive main session, including shell session, command execution, +.Xr scp 1 , .Xr sftp 1 , -which could be identified as -.Cm session:subsystem:sftp . +etc. +.It Cm tun-connection +Open +.Cm TunnelForward +connections. .It Cm x11-connection Open X11 forwarding sessions. .El @@ -465,9 +476,6 @@ close the SSH connection, nor does it prevent a client from requesting another channel of the same type. In particular, expiring an inactive forwarding session does not prevent another identical forwarding from being subsequently created. -See also -.Cm UnusedConnectionTimeout , -which may be used in conjunction with this option. .Pp The default is not to expire channels of any type for inactivity. .It Cm ChrootDirectory @@ -477,7 +485,7 @@ to after authentication. At session startup .Xr sshd 8 checks that all components of the pathname are root-owned directories -which are not writable by any other user or group. +which are not writable by group or others. After the chroot, .Xr sshd 8 changes the working directory to the user's home directory. @@ -1118,7 +1126,8 @@ DEBUG and DEBUG1 are equivalent. DEBUG2 and DEBUG3 each specify higher levels of debugging output. Logging with a DEBUG level violates the privacy of users and is not recommended. .It Cm LogVerbose -Specify one or more overrides to LogLevel. +Specify one or more overrides to +.Cm LogLevel . An override consists of a pattern lists that matches the source file, function and line number to force detailed logging for. For example, an override pattern of: @@ -1783,6 +1792,14 @@ implements an in-process SFTP server. This may simplify configurations using .Cm ChrootDirectory to force a different filesystem root on clients. +It accepts the same command line arguments as +.Cm sftp-server +and even though it is in-process, settings such as +.Cm LogLevel +or +.Cm SyslogFacility +do not apply to it and must be set explicitly via +command line arguments. .Pp By default no subsystems are defined. .It Cm SyslogFacility diff --git a/sshkey.c b/sshkey.c index 06db9b5..d4356e7 100644 --- a/sshkey.c +++ b/sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.c,v 1.140 2023/10/16 08:40:00 dtucker Exp $ */ +/* $OpenBSD: sshkey.c,v 1.142 2024/01/11 01:45:36 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * Copyright (c) 2008 Alexander von Gernler. All rights reserved. @@ -121,8 +121,10 @@ extern const struct sshkey_impl sshkey_rsa_sha256_impl; extern const struct sshkey_impl sshkey_rsa_sha256_cert_impl; extern const struct sshkey_impl sshkey_rsa_sha512_impl; extern const struct sshkey_impl sshkey_rsa_sha512_cert_impl; +# ifdef WITH_DSA extern const struct sshkey_impl sshkey_dss_impl; extern const struct sshkey_impl sshkey_dsa_cert_impl; +# endif #endif /* WITH_OPENSSL */ #ifdef WITH_XMSS extern const struct sshkey_impl sshkey_xmss_impl; @@ -152,8 +154,10 @@ const struct sshkey_impl * const keyimpls[] = { &sshkey_ecdsa_sk_webauthn_impl, # endif /* ENABLE_SK */ # endif /* OPENSSL_HAS_ECC */ +# ifdef WITH_DSA &sshkey_dss_impl, &sshkey_dsa_cert_impl, +# endif &sshkey_rsa_impl, &sshkey_rsa_cert_impl, &sshkey_rsa_sha256_impl, @@ -1927,7 +1931,7 @@ sshkey_from_blob_internal(struct sshbuf *b, struct sshkey **keyp, goto out; } if (sshkey_type_is_cert(type)) { - /* Skip nonce that preceeds all certificates */ + /* Skip nonce that precedes all certificates */ if (sshbuf_get_string_direct(b, NULL, NULL) != 0) { ret = SSH_ERR_INVALID_FORMAT; goto out; @@ -3230,6 +3234,7 @@ sshkey_private_to_blob_pem_pkcs8(struct sshkey *key, struct sshbuf *buf, goto out; switch (key->type) { +#ifdef WITH_DSA case KEY_DSA: if (format == SSHKEY_PRIVATE_PEM) { success = PEM_write_bio_DSAPrivateKey(bio, key->dsa, @@ -3238,6 +3243,7 @@ sshkey_private_to_blob_pem_pkcs8(struct sshkey *key, struct sshbuf *buf, success = EVP_PKEY_set1_DSA(pkey, key->dsa); } break; +#endif #ifdef OPENSSL_HAS_ECC case KEY_ECDSA: if (format == SSHKEY_PRIVATE_PEM) { @@ -3466,6 +3472,7 @@ sshkey_parse_private_pem_fileblob(struct sshbuf *blob, int type, } if ((r = sshkey_check_rsa_length(prv, 0)) != 0) goto out; +#ifdef WITH_DSA } else if (EVP_PKEY_base_id(pk) == EVP_PKEY_DSA && (type == KEY_UNSPEC || type == KEY_DSA)) { if ((prv = sshkey_new(KEY_UNSPEC)) == NULL) { @@ -3477,6 +3484,7 @@ sshkey_parse_private_pem_fileblob(struct sshbuf *blob, int type, #ifdef DEBUG_PK DSA_print_fp(stderr, prv->dsa, 8); #endif +#endif #ifdef OPENSSL_HAS_ECC } else if (EVP_PKEY_base_id(pk) == EVP_PKEY_EC && (type == KEY_UNSPEC || type == KEY_ECDSA)) { diff --git a/sshsig.c b/sshsig.c index d50d65f..470b286 100644 --- a/sshsig.c +++ b/sshsig.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshsig.c,v 1.34 2023/12/08 09:18:39 markus Exp $ */ +/* $OpenBSD: sshsig.c,v 1.35 2024/03/08 22:16:32 djm Exp $ */ /* * Copyright (c) 2019 Google LLC * @@ -746,7 +746,7 @@ parse_principals_key_and_options(const char *path, u_long linenum, char *line, *keyp = NULL; cp = line; - cp = cp + strspn(cp, " \t"); /* skip leading whitespace */ + cp = cp + strspn(cp, " \t\n\r"); /* skip leading whitespace */ if (*cp == '#' || *cp == '\0') return SSH_ERR_KEY_NOT_FOUND; /* blank or all-comment line */ diff --git a/version.h b/version.h index a4b7b59..052a581 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ -/* $OpenBSD: version.h,v 1.100 2023/12/18 14:48:44 djm Exp $ */ +/* $OpenBSD: version.h,v 1.101 2024/03/11 04:59:47 djm Exp $ */ -#define SSH_VERSION "OpenSSH_9.6" +#define SSH_VERSION "OpenSSH_9.7" #define SSH_PORTABLE "p1" #define SSH_RELEASE SSH_VERSION SSH_PORTABLE diff --git a/xmss_hash.c b/xmss_hash.c index db0e5fa..70c126a 100644 --- a/xmss_hash.c +++ b/xmss_hash.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xmss_hash.c,v 1.3 2022/04/20 16:00:25 millert Exp $ */ +/* $OpenBSD: xmss_hash.c,v 1.4 2023/12/20 00:06:25 jsg Exp $ */ /* hash.c version 20160722 Andreas Hülsing @@ -74,7 +74,7 @@ int prf(unsigned char *out, const unsigned char *in, const unsigned char *key, u } /* - * Implemts H_msg + * Implements H_msg */ int h_msg(unsigned char *out, const unsigned char *in, unsigned long long inlen, const unsigned char *key, const unsigned int keylen, const unsigned int n) { -- cgit v1.2.3