]> git.ipfire.org Git - thirdparty/openssh-portable.git/log
thirdparty/openssh-portable.git
3 years agoupstream: Use sshbuf_read() to read directly into the channel input
djm@openbsd.org [Sat, 22 Jan 2022 00:45:31 +0000 (00:45 +0000)] 
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

3 years agodepend
Damien Miller [Tue, 25 Jan 2022 00:52:34 +0000 (11:52 +1100)] 
depend

3 years agoupstream: Add a sshbuf_read() that attempts to read(2) directly in
djm@openbsd.org [Sat, 22 Jan 2022 00:43:43 +0000 (00:43 +0000)] 
upstream: Add a sshbuf_read() that attempts to read(2) directly in

to a sshbuf; ok markus@

OpenBSD-Commit-ID: 2d8f249040a4279f3bc23c018947384de8d4a45b

3 years agoupstream: add a helper for writing an error message to the
djm@openbsd.org [Fri, 21 Jan 2022 07:04:19 +0000 (07:04 +0000)] 
upstream: add a helper for writing an error message to the

stderr_buf and setting quit_pending; no functional change but saves a bunch
of boilerplate

OpenBSD-Commit-ID: 0747657cad6b9eabd514a6732adad537568e232d

3 years agoupstream: correct comment and use local variable instead of long
djm@openbsd.org [Fri, 21 Jan 2022 06:58:06 +0000 (06:58 +0000)] 
upstream: correct comment and use local variable instead of long

indirection; spotted by dtucker@

OpenBSD-Commit-ID: 5f65f5f69db2b7d80a0a81b08f390a63f8845965

3 years agoupstream: When poll(2) returns -1, for some error conditions
deraadt@openbsd.org [Fri, 21 Jan 2022 00:53:40 +0000 (00:53 +0000)] 
upstream: When poll(2) returns -1, for some error conditions

pfd[].revents is not cleared.  There are subtle errors in various programs.
In this particular case, the program should error out. ok djm millert

OpenBSD-Commit-ID: 00f839b16861f7fb2adcf122e95e8a82fa6a375c

3 years agorestore tty force-read hack
Damien Miller [Sat, 22 Jan 2022 00:38:21 +0000 (11:38 +1100)] 
restore tty force-read hack

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).

Spotted by John in bz3383

3 years agoFix signedness bug in Cygwin code
Corinna Vinschen [Thu, 20 Jan 2022 16:22:56 +0000 (03:22 +1100)] 
Fix signedness bug in Cygwin code

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.

Signed-off-by: Corinna Vinschen <vinschen@redhat.com>
3 years agoImprove compatibility of early exit trap handling.
Darren Tucker [Thu, 20 Jan 2022 02:26:27 +0000 (13:26 +1100)] 
Improve compatibility of early exit trap handling.

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.

3 years agoMove more tests out of valgrind-1 runner.
Darren Tucker [Wed, 19 Jan 2022 13:49:57 +0000 (00:49 +1100)] 
Move more tests out of valgrind-1 runner.

3 years agoInvoke EXIT handler early when using Valgrind.
Darren Tucker [Wed, 19 Jan 2022 04:37:39 +0000 (15:37 +1100)] 
Invoke EXIT handler early when using Valgrind.

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.

3 years agoRemove line leftover from upstream sync.
Darren Tucker [Tue, 18 Jan 2022 01:55:21 +0000 (12:55 +1100)] 
Remove line leftover from upstream sync.

3 years agoupstream: when decompressing zlib compressed packets, use
djm@openbsd.org [Mon, 17 Jan 2022 22:56:04 +0000 (22:56 +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.

repoted by lamm AT ibm.com via bz3372; ok markus

OpenBSD-Commit-ID: 67cfc1fa8261feae6d2cc0c554711c97867cc81b

3 years agoupstream: make most of the sftp errors more idiomatic, following
djm@openbsd.org [Mon, 17 Jan 2022 21:41:04 +0000 (21:41 +0000)] 
upstream: make most of the sftp errors more idiomatic, following

the general form of "[local/remote] operation path: error message"; ok markus

OpenBSD-Commit-ID: 61364cd5f3a9fecaf8d63b4c38a42c0c91f8b571

3 years agoupstream: when transferring multiple files in SFTP mode, create the
djm@openbsd.org [Mon, 17 Jan 2022 21:39:51 +0000 (21:39 +0000)] 
upstream: when transferring multiple files in SFTP mode, create the

destination directory if it doesn't already exist to match olde-scp(1)
behaviour. noticed by deraadt@ ok markus@

OpenBSD-Commit-ID: cf44dfa231d4112f697c24ff39d7ecf2e6311407

3 years agoupstream: allow pin-required FIDO keys to be added to ssh-agent(1).
djm@openbsd.org [Fri, 14 Jan 2022 03:43:48 +0000 (03:43 +0000)] 
upstream: allow pin-required FIDO keys to be added to ssh-agent(1).

ssh-askpass will be used to request the PIN at authentication time.

From Pedro Martelletto, ok djm

OpenBSD-Commit-ID: de8189fcd35b45f632484864523c1655550e2950

3 years agoupstream: ssh-sk: free a resident key's user id
djm@openbsd.org [Fri, 14 Jan 2022 03:35:10 +0000 (03:35 +0000)] 
upstream: ssh-sk: free a resident key's user id

From Pedro Martelletto; ok dtucker & me

OpenBSD-Commit-ID: 47be40d602b7a6458c4c71114df9b53d149fc2e9

3 years agoupstream: sshsk_load_resident: don't preallocate resp
djm@openbsd.org [Fri, 14 Jan 2022 03:34:00 +0000 (03:34 +0000)] 
upstream: sshsk_load_resident: don't preallocate resp

resp is allocated by client_converse(), at which point we lose
the original pointer.

From Pedro Martelletto; ok dtucker & me

OpenBSD-Commit-ID: 1f1b5ea3282017d6584dfed4f8370dc1db1f44b1

3 years agoupstream: sshsk_sign: trim call to sshkey_fingerprint()
djm@openbsd.org [Fri, 14 Jan 2022 03:32:52 +0000 (03:32 +0000)] 
upstream: sshsk_sign: trim call to sshkey_fingerprint()

the resulting fingerprint doesn't appear to be used for anything,
and we end up leaking it.

from Pedro Martelletto; ok dtucker & me

OpenBSD-Commit-ID: 5625cf6c68f082bc2cbbd348e69a3ed731d2f9b7

3 years agoupstream: use status error message to communicate ~user expansion
djm@openbsd.org [Fri, 14 Jan 2022 03:31:52 +0000 (03:31 +0000)] 
upstream: use status error message to communicate ~user expansion

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

(forgot to include this file in previous commit)

OpenBSD-Commit-ID: d37cc4c8c861ce48cd6ea9899e96aaac3476847b

3 years agofix edge case in poll(2) wrapper
Damien Miller [Fri, 14 Jan 2022 02:49:32 +0000 (13:49 +1100)] 
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@

3 years agoWrap OpenSSL includes in unit tests in ifdef.
Darren Tucker [Fri, 14 Jan 2022 02:46:35 +0000 (13:46 +1100)] 
Wrap OpenSSL includes in unit tests in ifdef.

Fixes unit test on systems that do not have OpenSSL headers installed.

3 years agoRemove sort wrapper.
Darren Tucker [Thu, 13 Jan 2022 04:53:33 +0000 (15:53 +1100)] 
Remove sort wrapper.

agent-restrict now takes care of this itself.

3 years agoupstream: Set LC_ALL in both local and remote shells so that sorted
dtucker@openbsd.org [Thu, 13 Jan 2022 04:53:16 +0000 (04:53 +0000)] 
upstream: Set LC_ALL in both local and remote shells so that sorted

output matches regardless of what the user's shell sets it to.  ok djm@

OpenBSD-Regress-ID: 4e97dd69a68b05872033175a4c2315345d01837f

3 years agoupstream: Avoid %'s in commands (not used in OpenBSD, but used in
dtucker@openbsd.org [Thu, 13 Jan 2022 04:22:10 +0000 (04:22 +0000)] 
upstream: Avoid %'s in commands (not used in OpenBSD, but used in

-portable's Valgrind test) being interpretted as printf format strings.

OpenBSD-Regress-ID: dc8655db27ac4acd2c386c4681bf42a10d80b043

3 years agoStop on first test failure to minimize logs.
Darren Tucker [Wed, 12 Jan 2022 05:58:13 +0000 (16:58 +1100)] 
Stop on first test failure to minimize logs.

3 years agoupstream: Use egrep when searching for an anchored string.
dtucker@openbsd.org [Wed, 12 Jan 2022 07:18:37 +0000 (07:18 +0000)] 
upstream: Use egrep when searching for an anchored string.

OpenBSD-Regress-ID: dd114a2ac27ac4b06f9e4a586d3f6320c54aeeb4

3 years agoAdd "rev" command replacement if needed.
Darren Tucker [Wed, 12 Jan 2022 07:25:06 +0000 (18:25 +1100)] 
Add "rev" command replacement if needed.

3 years agoupstream: Don't log NULL hostname in restricted agent code,
dtucker@openbsd.org [Wed, 12 Jan 2022 03:30:32 +0000 (03:30 +0000)] 
upstream: Don't log NULL hostname in restricted agent code,

printf("%s", NULL) is not safe on all platforms.  with & ok djm

OpenBSD-Commit-ID: faf10cdae4adde00cdd668cd1f6e05d0a0e32a02

3 years agoupstream: remove hardcoded domain and use window.location.host, so this
djm@openbsd.org [Tue, 11 Jan 2022 22:33:16 +0000 (22:33 +0000)] 
upstream: remove hardcoded domain and use window.location.host, so this

can be run anywhere

OpenBSD-Regress-ID: 2ac2ade3b6227d9c547351d3ccdfe671e62b7f92

3 years agoupstream: "void" functions should not return anything. From Tim Rice
dtucker@openbsd.org [Tue, 11 Jan 2022 02:56:19 +0000 (02:56 +0000)] 
upstream: "void" functions should not return anything. From Tim Rice

via -portable.

OpenBSD-Commit-ID: ce6616304f4c9881b46413e616b226c306830e2a

3 years agoupstream: suppress "Connection to xxx closed" messages at LogLevel >=
djm@openbsd.org [Tue, 11 Jan 2022 01:26:47 +0000 (01:26 +0000)] 
upstream: suppress "Connection to xxx closed" messages at LogLevel >=

error bz3378; ok dtucker@

OpenBSD-Commit-ID: d5bf457d5d2eb927b81d0663f45248a31028265c

3 years agoOS X poll(2) is broken; use compat replacement
Damien Miller [Tue, 11 Jan 2022 21:57:49 +0000 (08:57 +1100)] 
OS X poll(2) is broken; use compat replacement

Darwin's poll(2) implementation is broken. For character-special
devices like /dev/null, it returns POLLNVAL when polled with
POLLIN.

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 (!!)

3 years agolibhardended_malloc.so moved into out dir.
Darren Tucker [Tue, 11 Jan 2022 09:56:01 +0000 (20:56 +1100)] 
libhardended_malloc.so moved into out dir.

3 years agoMake USL compilers happy
Tim Rice [Mon, 10 Jan 2022 19:07:04 +0000 (11:07 -0800)] 
Make USL compilers happy
UX:acomp: ERROR: "sftp-server.c", line 567: void function cannot return value

3 years agoAdd wrapper for "sort" to set LC_ALL=C.
Darren Tucker [Mon, 10 Jan 2022 10:07:38 +0000 (21:07 +1100)] 
Add wrapper for "sort" to set LC_ALL=C.

Found by djm, this should make sorts stable and reduce test flakiness.

3 years agoupstream: Remove errant "set -x" left over from debugging.
dtucker@openbsd.org [Sat, 8 Jan 2022 07:55:26 +0000 (07:55 +0000)] 
upstream: Remove errant "set -x" left over from debugging.

OpenBSD-Regress-ID: cd989268e034264cec5df97be7581549032c87dc

3 years agoupstream: Enable all supported hostkey algorithms (but no others).
dtucker@openbsd.org [Sat, 8 Jan 2022 07:01:13 +0000 (07:01 +0000)] 
upstream: Enable all supported hostkey algorithms (but no others).

Allows hostbased test to pass when built without OpenSSL.

OpenBSD-Regress-ID: 5ddd677a68b672517e1e78460dc6ca2ccc0a9562

3 years agoupstream: use status error message to communicate ~user expansion
djm@openbsd.org [Sat, 8 Jan 2022 07:37:32 +0000 (07:37 +0000)] 
upstream: use status error message to communicate ~user expansion

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

OpenBSD-Commit-ID: fc610ce00ca0cdc2ecdabbd49ce7cb82033f905f

3 years agoupstream: fix some corner-case bugs in scp sftp-mode handling of
djm@openbsd.org [Sat, 8 Jan 2022 07:36:11 +0000 (07:36 +0000)] 
upstream: fix some corner-case bugs in scp sftp-mode handling of

~-prefixed paths; spotted by jsg; feedback jsg & deraadt, ok jsg & markus

OpenBSD-Commit-ID: d1697dbaaa9f0f5649d69be897eab25c7d37c222

3 years agoupstream: more idiomatic error messages; spotted by jsg & deraadt
djm@openbsd.org [Sat, 8 Jan 2022 07:34:57 +0000 (07:34 +0000)] 
upstream: more idiomatic error messages; spotted by jsg & deraadt

ok jsg & markus

OpenBSD-Commit-ID: 43618c692f3951747b4151c477c7df22afe2bcc8

3 years agoupstream: add a variant of send_status() that allows overriding the
djm@openbsd.org [Sat, 8 Jan 2022 07:33:54 +0000 (07:33 +0000)] 
upstream: add a variant of send_status() that allows overriding the

default, generic error message. feedback/ok markus & jsg

OpenBSD-Commit-ID: 81f251e975d759994131b717ee7c0b439659c40f

3 years agoupstream: refactor tilde_expand_filename() and make it handle ~user
djm@openbsd.org [Sat, 8 Jan 2022 07:32:45 +0000 (07:32 +0000)] 
upstream: refactor tilde_expand_filename() and make it handle ~user

paths with no trailing slash; feedback/ok markus and jsg

OpenBSD-Commit-ID: a2ab365598a902f0f14ba6a4f8fb2d07a9b5d51d

3 years agoupstream: Don't explicitly set HostbasedAuthentication in
dtucker@openbsd.org [Thu, 6 Jan 2022 22:14:25 +0000 (22:14 +0000)] 
upstream: Don't explicitly set HostbasedAuthentication in

sshd_config. It defaults to "no", and not explicitly setting it allows us to
enable it for the (optional) hostbased test.

OpenBSD-Regress-ID: aa8e3548eb5793721641d26e56c29f363b767c0c

3 years agoupstream: Add test for hostbased auth. It requires some external
dtucker@openbsd.org [Thu, 6 Jan 2022 21:46:56 +0000 (21:46 +0000)] 
upstream: Add test for hostbased auth. It requires some external

setup (see comments at the top) and thus is disabled unless
TEST_SSH_HOSTBASED_AUTH and SUDO are set.

OpenBSD-Regress-ID: 3ec8ba3750c5b595fc63e7845d13483065a4827a

3 years agodepend
Damien Miller [Thu, 6 Jan 2022 22:24:26 +0000 (09:24 +1100)] 
depend

3 years agoupstream: allow hostbased auth to select RSA keys when only
djm@openbsd.org [Thu, 6 Jan 2022 22:06:51 +0000 (22:06 +0000)] 
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

3 years agoupstream: add a helper function to match a key type to a list of
djm@openbsd.org [Thu, 6 Jan 2022 22:05:42 +0000 (22:05 +0000)] 
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@

OpenBSD-Commit-ID: 03b41b2bda06fa4cd9c84cef6095033b9e49b6ff

3 years agoupstream: log some details on hostkeys that ssh loads for
djm@openbsd.org [Thu, 6 Jan 2022 22:04:20 +0000 (22:04 +0000)] 
upstream: log some details on hostkeys that ssh loads for

hostbased authn ok markus@

OpenBSD-Commit-ID: da17061fa1f0e58cb31b88478a40643e18233e38

3 years agoupstream: log signature algorithm during verification by monitor;
djm@openbsd.org [Thu, 6 Jan 2022 22:03:59 +0000 (22:03 +0000)] 
upstream: log signature algorithm during verification by monitor;

ok markus

OpenBSD-Commit-ID: 02b92bb42c4d4bf05a051702a56eb915151d9ecc

3 years agoupstream: piece of UpdateHostkeys client strictification: when
djm@openbsd.org [Thu, 6 Jan 2022 22:02:52 +0000 (22:02 +0000)] 
upstream: piece of UpdateHostkeys client strictification: when

updating known_hosts with new keys, ignore NULL keys (forgot to include in
prior commit)

OpenBSD-Commit-ID: 49d2eda6379490e1ceec40c3b670b973f63dea08

3 years agoupstream: include rejected signature algorithm in error message
djm@openbsd.org [Thu, 6 Jan 2022 22:01:14 +0000 (22:01 +0000)] 
upstream: include rejected signature algorithm in error message

and not the (useless) key type; ok markus

OpenBSD-Commit-ID: 4180b5ec7ab347b43f84e00b1972515296dab023

3 years agoupstream: make ssh-keysign use the requested signature algorithm
djm@openbsd.org [Thu, 6 Jan 2022 22:00:18 +0000 (22:00 +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@

OpenBSD-Commit-ID: b5639a14462948970da3a8020dc06f9a80ecccdc

3 years agoupstream: stricter UpdateHostkey signature verification logic on
djm@openbsd.org [Thu, 6 Jan 2022 21:57:28 +0000 (21:57 +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@

OpenBSD-Commit-ID: 46e75e8dfa2c813781805b842580dcfbd888cf29

3 years agoupstream: Fix signature algorithm selection logic for
djm@openbsd.org [Thu, 6 Jan 2022 21:55:23 +0000 (21:55 +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

Mostly by Dmitry Belyavskiy with some tweaks by me.

ok markus@

OpenBSD-Commit-ID: c17ba0c3236340d2c6a248158ebed042ac6a8029

3 years agoupstream: convert ssh, sshd mainloops from select() to poll();
djm@openbsd.org [Thu, 6 Jan 2022 21:48:38 +0000 (21:48 +0000)] 
upstream: convert ssh, sshd mainloops from select() to poll();

feedback & ok deraadt@ and markus@ has been in snaps for a few months

OpenBSD-Commit-ID: a77e16a667d5b194dcdb3b76308b8bba7fa7239c

3 years agoupstream: prepare for conversion of ssh, sshd mainloop from
djm@openbsd.org [Thu, 6 Jan 2022 21:46:23 +0000 (21:46 +0000)] 
upstream: prepare for conversion of ssh, sshd mainloop from

select() to poll() by moving FD_SET construction out of channel handlers into
separate functions. ok markus

OpenBSD-Commit-ID: 937fbf2a4de12b19fb9d5168424e206124807027

3 years agoupstream: add a comment so I don't make this mistake again
djm@openbsd.org [Wed, 5 Jan 2022 21:54:37 +0000 (21:54 +0000)] 
upstream: add a comment so I don't make this mistake again

OpenBSD-Commit-ID: 69c7f2362f9de913bb29b6318580c5a1b52c921e

3 years agoupstream: fix cut-and-pasto in error message
djm@openbsd.org [Wed, 5 Jan 2022 21:50:00 +0000 (21:50 +0000)] 
upstream: fix cut-and-pasto in error message

OpenBSD-Commit-ID: 4cc5c619e4b456cd2e9bb760d17e3a9c84659198

3 years agoupstream: select all RSA hostkey algorithms for UpdateHostkeys tests,
djm@openbsd.org [Wed, 5 Jan 2022 08:25:05 +0000 (08:25 +0000)] 
upstream: select all RSA hostkey algorithms for UpdateHostkeys tests,

not just RSA-SHA1

OpenBSD-Regress-ID: b40e62b65863f2702a0c10aca583b2fe76772bd8

3 years agoupstream: regress test both sshsig message hash algorithms, possible
djm@openbsd.org [Wed, 5 Jan 2022 04:56:15 +0000 (04:56 +0000)] 
upstream: regress test both sshsig message hash algorithms, possible

now because the algorithm is controllable via the CLI

OpenBSD-Regress-ID: 0196fa87acc3544b2b4fd98de844a571cb09a39f

3 years agoupstream: allow selection of hash at sshsig signing time; code
djm@openbsd.org [Wed, 5 Jan 2022 04:50:11 +0000 (04:50 +0000)] 
upstream: allow selection of hash at sshsig signing time; code

already supported either sha512 (default) or sha256, but plumbing wasn't
there mostly by Linus Nordberg

OpenBSD-Commit-ID: 1b536404b9da74a84b3a1c8d0b05fd564cdc96cd

3 years agoupstream: add missing -O option to usage() for ssh-keygen -Y sign;
djm@openbsd.org [Wed, 5 Jan 2022 04:27:54 +0000 (04:27 +0000)] 
upstream: add missing -O option to usage() for ssh-keygen -Y sign;

from Linus Nordberg

OpenBSD-Commit-ID: 4e78feb4aa830727ab76bb2e3d940440ae1d7af0

3 years agoupstream: move sig_process_opts() to before sig_sign(); no
djm@openbsd.org [Wed, 5 Jan 2022 04:27:01 +0000 (04:27 +0000)] 
upstream: move sig_process_opts() to before sig_sign(); no

functional code change

OpenBSD-Commit-ID: da02d61f5464f72b4e8b299f83e93c3b657932f9

3 years agoupstream: regression test for find-principals NULL deref; from Fabian
djm@openbsd.org [Wed, 5 Jan 2022 04:10:39 +0000 (04:10 +0000)] 
upstream: regression test for find-principals NULL deref; from Fabian

Stelzer

OpenBSD-Regress-ID: f845a8632a5a7d5ae26978004c93e796270fd3e5

3 years agoupstream: NULL deref when using find-principals when matching an
djm@openbsd.org [Wed, 5 Jan 2022 04:02:42 +0000 (04:02 +0000)] 
upstream: NULL deref when using find-principals when matching an

allowed_signers line that contains a namespace restriction, but no
restriction specified on the command-line; report and fix from Fabian Stelzer

OpenBSD-Commit-ID: 4a201b86afb668c908d1a559c6af456a61f4b145

3 years agoupstream: Log command invocation while debugging.
dtucker@openbsd.org [Tue, 4 Jan 2022 08:38:53 +0000 (08:38 +0000)] 
upstream: Log command invocation while debugging.

This will aid in manually reproducing failing commands.

OpenBSD-Regress-ID: b4aba8d5ac5675ceebeeeefa3261ce344e67333a

3 years agoAlways save config.h as build artifact.
Darren Tucker [Sat, 25 Dec 2021 23:31:15 +0000 (10:31 +1100)] 
Always save config.h as build artifact.

Should allow better comparison between failing and succeeding test
platforms.

3 years agoAdd OpenBSD 7.0 target. Retire 6.8.
Darren Tucker [Sat, 25 Dec 2021 05:42:51 +0000 (16:42 +1100)] 
Add OpenBSD 7.0 target.  Retire 6.8.

3 years agoupstream: spelling
jsg@openbsd.org [Sat, 1 Jan 2022 05:55:06 +0000 (05:55 +0000)] 
upstream: spelling

OpenBSD-Commit-ID: c63e43087a64d0727af13409c708938e05147b62

3 years agoupstream: unbreak test: was picking up system ssh-add instead of the
djm@openbsd.org [Tue, 4 Jan 2022 07:20:33 +0000 (07:20 +0000)] 
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)

OpenBSD-Regress-ID: 7976eb3df11cc2ca3af91030a6a8c0cef1590bb5

3 years agoupstream: fix memleak in process_extension(); oss-fuzz issue #42719
djm@openbsd.org [Sat, 1 Jan 2022 04:18:06 +0000 (04:18 +0000)] 
upstream: fix memleak in process_extension(); oss-fuzz issue #42719

OpenBSD-Commit-ID: d8d49f840162fb7b8949e3a5adb8107444b6de1e

3 years agoupstream: spelling ok dtucker@
jsg@openbsd.org [Sat, 1 Jan 2022 01:55:30 +0000 (01:55 +0000)] 
upstream: spelling ok dtucker@

OpenBSD-Commit-ID: bfc7ba74c22c928de2e257328b3f1274a3dfdf19

3 years agoupstream: split method list search functionality from
djm@openbsd.org [Sun, 26 Dec 2021 23:34:41 +0000 (23:34 +0000)] 
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

3 years agoupstream: sort -H and -h in SYNOPSIS/usage(); tweak the -H text;
jmc@openbsd.org [Wed, 22 Dec 2021 06:56:41 +0000 (06:56 +0000)] 
upstream: sort -H and -h in SYNOPSIS/usage(); tweak the -H text;

ok djm

OpenBSD-Commit-ID: 90721643e41e9e09deb5b776aaa0443456ab0965

3 years agoUse SHA.*_HMAC_BLOCK_SIZE if needed.
Darren Tucker [Wed, 22 Dec 2021 08:33:10 +0000 (19:33 +1100)] 
Use SHA.*_HMAC_BLOCK_SIZE if needed.

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.

3 years agoremove sys/param.h in -portable, after upstream
Damien Miller [Tue, 21 Dec 2021 22:02:50 +0000 (09:02 +1100)] 
remove sys/param.h in -portable, after upstream

3 years agoadd agent-restrict.sh file, missed in last commit
Damien Miller [Mon, 20 Dec 2021 02:05:20 +0000 (13:05 +1100)] 
add agent-restrict.sh file, missed in last commit

3 years agoupstream: regression test for destination restrictions in ssh-agent
djm@openbsd.org [Sun, 19 Dec 2021 22:20:12 +0000 (22:20 +0000)] 
upstream: regression test for destination restrictions in ssh-agent

OpenBSD-Regress-ID: 3c799d91e736b1753b4a42d80c42fc40de5ad33d

3 years agoupstream: Make use of ntests variable, pointed out by clang 13.
anton@openbsd.org [Sat, 18 Dec 2021 06:53:59 +0000 (06:53 +0000)] 
upstream: Make use of ntests variable, pointed out by clang 13.

OpenBSD-Regress-ID: 4241a3d21bdfa1630ed429b6d4fee51038d1be72

3 years agoupstream: sys/param.h cleanup, mostly using MINIMUM() and
deraadt@openbsd.org [Tue, 14 Dec 2021 21:25:27 +0000 (21:25 +0000)] 
upstream: sys/param.h cleanup, mostly using MINIMUM() and

<limits.h> ok dtucker

OpenBSD-Regress-ID: 172a4c45d3bcf92fa6cdf6c4b9db3f1b3abe4db0

3 years agoupstream: document host-bound publickey authentication
djm@openbsd.org [Sun, 19 Dec 2021 22:15:42 +0000 (22:15 +0000)] 
upstream: document host-bound publickey authentication

OpenBSD-Commit-ID: ea6ed91779a81f06d961e30ecc49316b3d71961b

3 years agoupstream: document agent protocol extensions
djm@openbsd.org [Sun, 19 Dec 2021 22:15:21 +0000 (22:15 +0000)] 
upstream: document agent protocol extensions

OpenBSD-Commit-ID: 09e8bb391bbaf24c409b75a4af44e0cac65405a7

3 years agoupstream: PubkeyAuthentication=yes|no|unbound|host-bound
djm@openbsd.org [Sun, 19 Dec 2021 22:14:47 +0000 (22:14 +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.

feedback / ok markus@

OpenBSD-Commit-ID: ee52580db95c355cf6d563ba89974c210e603b1a

3 years agoupstream: document destination-constrained keys
djm@openbsd.org [Sun, 19 Dec 2021 22:14:12 +0000 (22:14 +0000)] 
upstream: document destination-constrained keys

feedback / ok markus@

OpenBSD-Commit-ID: cd8c526c77268f6d91c06adbee66b014d22d672e

3 years agoupstream: Use hostkey parsed from hostbound userauth request
djm@openbsd.org [Sun, 19 Dec 2021 22:13:55 +0000 (22:13 +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.

ok markus@

OpenBSD-Commit-ID: d69877c9a3bd8d1189a5dbdeceefa432044dae02

3 years agoupstream: agent support for parsing hostkey-bound signatures
djm@openbsd.org [Sun, 19 Dec 2021 22:13:33 +0000 (22:13 +0000)] 
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

3 years agoupstream: EXT_INFO negotiation of hostbound pubkey auth
djm@openbsd.org [Sun, 19 Dec 2021 22:13:12 +0000 (22:13 +0000)] 
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@

OpenBSD-Commit-ID: 4cdb2ca5017ec1ed7a9d33bda95c1d6a97b583b0

3 years agoupstream: client side of host-bound pubkey authentication
djm@openbsd.org [Sun, 19 Dec 2021 22:12:54 +0000 (22:12 +0000)] 
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@

OpenBSD-Commit-ID: 5a6fce8c6c8a77a80ee1526dc467d91036a5910d

3 years agoupstream: sshd side of hostbound public key auth
djm@openbsd.org [Sun, 19 Dec 2021 22:12:30 +0000 (22:12 +0000)] 
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@

OpenBSD-Commit-ID: 7ea01bb7238a560c1bfb426fda0c10a8aac07862

3 years agoupstream: prepare for multiple names for authmethods
djm@openbsd.org [Sun, 19 Dec 2021 22:12:07 +0000 (22:12 +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.

ok markus@

OpenBSD-Commit-ID: 9e613fcb44b8168823195602ed3d09ffd7994559

3 years agoupstream: ssh-agent side of destination constraints
djm@openbsd.org [Sun, 19 Dec 2021 22:11:39 +0000 (22:11 +0000)] 
upstream: ssh-agent side of destination constraints

Gives ssh-agent the ability to parse restrict-destination-v00@openssh.com
constraints and to apply them to keys.

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.

feedback Jann Horn & markus@
ok markus@

OpenBSD-Commit-ID: 84a7fb81106c2d609a6ac17469436df16d196319

3 years agoupstream: ssh-add side of destination constraints
djm@openbsd.org [Sun, 19 Dec 2021 22:11:06 +0000 (22:11 +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@

OpenBSD-Commit-ID: 6b52cd2b637f3d29ef543f0ce532a2bce6d86af5

3 years agoupstream: ssh-add side of destination constraints
djm@openbsd.org [Sun, 19 Dec 2021 22:10:24 +0000 (22:10 +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@

OpenBSD-Commit-ID: ef47fa9ec0e3c2a82e30d37ef616e245df73163e

3 years agoupstream: ssh-agent side of binding
djm@openbsd.org [Sun, 19 Dec 2021 22:09:23 +0000 (22:09 +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@

OpenBSD-Commit-ID: a80fd41e292b18b67508362129e9fed549abd318

3 years agoupstream: ssh client side of binding
djm@openbsd.org [Sun, 19 Dec 2021 22:08:48 +0000 (22:08 +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.

ok markus@

OpenBSD-Commit-ID: 2f154844fe13167d3ab063f830d7455fcaa99135

3 years agoupstream: Record session ID, host key and sig at intital KEX
djm@openbsd.org [Sun, 19 Dec 2021 22:08:06 +0000 (22:08 +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@

OpenBSD-Commit-ID: a9af29e33772b18e3e867c6fa8ab35e1694a81fe

3 years agoupstream: better error message for FIDO keys when we can't match
djm@openbsd.org [Tue, 7 Dec 2021 22:06:45 +0000 (22:06 +0000)] 
upstream: better error message for FIDO keys when we can't match

them to a token

OpenBSD-Commit-ID: 58255c2a1980088f4ed144db67d879ada2607650

3 years agoCorrect value for IPTOS_DSCP_LE.
Darren Tucker [Tue, 14 Dec 2021 23:50:33 +0000 (10:50 +1100)] 
Correct value for IPTOS_DSCP_LE.

It needs to allow for the preceeding two ECN bits.  From daisuke.higashi
at gmail.com via OpenSSH bz#3373, ok claudio@, job@, djm@.

3 years agoIncrease timeout for test step.
Darren Tucker [Fri, 10 Dec 2021 00:57:30 +0000 (11:57 +1100)] 
Increase timeout for test step.