Commit Graph
13702 Commits
Author SHA1 Message Date
El Mehdi Abenhazou faa646a9bf ci: pin upstream.yml actions to full commit SHAs
Signed-off-by: El Mehdi Abenhazou <[email protected]>
2026-06-22 18:55:25 +10:00
El Mehdi Abenhazou 983096a7b2 ci: pin GitHub Actions to full commit SHAs
Pinning actions/checkout, actions/upload-artifact, and
cygwin/cygwin-install-action to their full commit SHA instead of
mutable branch/tag references (main, master).

Using mutable refs means a compromised or malicious update to the
action repository could silently alter the workflow behavior.
Pinning to SHA makes the exact version immutable and auditable.

Signed-off-by: El Mehdi Abenhazou <[email protected]>
2026-06-22 18:54:58 +10:00
[email protected] 0d156d385e upstream: Factor out hex2bin into a shared helper function.
Replace sscanf %hhx (which is C99) with plain %x for better compatibility
in -portable. ok djm@

OpenBSD-Regress-ID: 4d30bb27ffdf2154f1a9f2317df18d256717b300
2026-06-17 08:41:55 +10:00
[email protected] b9d134a0b1 upstream: Use awk instead of cut to help -portable.
Some platforms have size limits on cut.

OpenBSD-Regress-ID: fe871e8ed43fd92efb0df76f61c5cc9c5429ea82
2026-06-16 21:01:21 +10:00
[email protected] 60978ddb08 upstream: Include stdarg.h for va_list (needed for xmalloc.h).
OpenBSD-Regress-ID: 34a6d5db48eec77f92f868093dfa0bfc10ae4622
2026-06-16 21:00:22 +10:00
[email protected] 3de49e0d28 upstream: Include stdlib.h for malloc/free and sort headers.
OpenBSD-Regress-ID: 4f5f427b131f5d6b32ed107b9bef098153f768ce
2026-06-16 20:53:16 +10:00
Darren Tucker 61ca39c119 Remove check for OpenSSL w/out AES192/256.
This was the case for some old Solaris versions, but the support for it
has long been removed from our compat layer so there's no point checking
for it.
2026-06-16 18:16:32 +10:00
[email protected] f433c09931 upstream: use different strategy to check whether keys are present or
absent in the agent; helps some -portable tests on platforms that have stupid
grep(1)

OpenBSD-Regress-ID: 0cee7ecc437eee7471dc6ccc3b3a0c2b60c1ad2d
2026-06-15 16:37:32 +10:00
[email protected] 860ed04158 upstream: avoid use of paste(1); helps portable
OpenBSD-Regress-ID: ce3ad41b34af9fc16af83e4711a62231ee52a95c
2026-06-15 16:26:52 +10:00
Damien Miller f5f02aafe8 another place mldsa-ed25519 keys need deactivation 2026-06-15 12:53:53 +10:00
[email protected] 1d6064d25f upstream: fix multiple problems with testing hostkey types that are not
enabled by default.

1) Add all hostkey types in the "multiple hostkeys" subtest.
  Previously known_hosts was accidentally clobbered, causing
  only the last added hostkey type to be used.
2) Explicitly enable the hostkey types under test via
  HostKeyAlgorithms

OpenBSD-Regress-ID: 8f12d18b79b5cc8a748e187a0e95529cd85a9dcc
2026-06-15 11:56:19 +10:00
Damien Miller ebdaacf490 bring back mlkem768x25519-sha256 stubs
should fix C89 compile
2026-06-15 11:44:49 +10:00
Damien Miller b35a6a153f don't build ML-KEM/ML-DSA code with <C99 compilers 2026-06-14 20:32:12 +10:00
Damien Miller 1c46384db9 include includes.h 2026-06-14 20:24:25 +10:00
Damien Miller ea505c83ec provide a htobe32() replacement 2026-06-14 18:56:31 +10:00
Damien Miller 8e0cb47177 hook up new regress/unittests/crypto 2026-06-14 15:02:24 +10:00
[email protected] 5a474d1bf3 upstream: unit and regression tests for composite PQ ML-DSA44/Ed25519
keys.

Includes a new unittests/crypto test that tests basic functionality
of the underlying crypto primitives against public test vectors

OpenBSD-Regress-ID: 4463b2e8adec391efa24a953f3c911b72892ca80
2026-06-14 14:33:41 +10:00
[email protected] db1bad146f upstream: make crypto_sign_ed25519_keypair_from_seed non-static.
The new ML-DSA/ed25519 code needs it

OpenBSD-Commit-ID: 48d00a2094bca8e422494aaa76105c708837436e
2026-06-14 14:27:52 +10:00
[email protected] 81ca1451bf upstream: Add experimental support for a composite post-quantum
signature scheme that combines ML-DSA 44 and Ed25519 using the construction
specified in draft-ietf-lamps-pq-composite-sigs. There's also an early draft
documenting use of the integration of this scheme into SSH as
draft-miller-sshm-mldsa44-ed25519-composite-sigs

This scheme is not enabled by default. To you use, you'll need
to add it to HostKeyAlgorithms, PubkeyAcceptedAlgorithms, etc.
Keys may be generated using "ssh-keygen -t mldsa44-ed25519".

The ML-DSA implementation comes from libcrux. Thanks to
Jonas Schneider-Bensch and Jonathan Protzenko for their work to
make this available.

Consensus is that it's time to get this in to allow people to
experiment with it.

feedback markus@ tb@ logan@ deraadt@

OpenBSD-Commit-ID: 85f2d41e3d3374b4e8c28a45a7c92f153c4489e2
2026-06-14 14:27:52 +10:00
[email protected] b7e552138b upstream: when replying to a "query" SSH_AGENTC_EXTENSION request,
don't append an SSH_AGENT_SUCCESS to the reply to the query. bz3967 ok
dtucker@

OpenBSD-Commit-ID: b51418708096e26dbf73a0c1d3cb49b7352bc899
2026-06-14 14:18:39 +10:00
[email protected] 5af8f3f290 upstream: Make crypto_sign_ed25519_keypair_from_seed()
static to prevent compiler warnings since it's only used within ed25519.c.

OpenBSD-Commit-ID: cf8b1e8f364167eb1766f646cc18a40f32242991
2026-06-07 21:29:12 +10:00
[email protected] 5ebfdf3afa upstream: Import updated moduli
OpenBSD-Commit-ID: c3081ccc6e4c1cb21e68c36f5a92e6d9f09e70b3
2026-06-07 18:53:25 +10:00
Damien Miller 47af21eb8d sync fmt_scaled.c with OpenBSD upstream
Notably picks up this commit:

revision 1.24
date: 2026/06/06 23:49:25;  author: djm;  state: Exp;  lines: +28 -12;  commitid: oznzDs0MaUT3FEqO;
rearrange scan_scaled(3) ordering of multiplications and divisions
to better preserve accuracy for large exponents. From metsw24-max
via https://github.com/openssh/openssh-portable/pull/671/

ok tb@
2026-06-07 09:56:41 +10:00
[email protected] e9916c44c1 upstream: pass >9 commandline arguments to the internal-sftp server,
previously they were silently dropped; reported by Steve Caffrey ok deraadt@

OpenBSD-Commit-ID: ee6cd5430a3ca027c3223af54b58ad3cc7ccd624
2026-06-05 18:56:24 +10:00
[email protected] 70d7044a96 upstream: avoid truncation of pathnames headed to lstat() for
systems where PATH_MAX is not the actual max; reported by sahvx655-wq via
GHPR688

OpenBSD-Commit-ID: fcbeeff99d857f2f3916ad06570fa05fc38b0f07
2026-06-05 18:49:16 +10:00
[email protected] 37bf1431aa upstream: rename a variable to be more accurate
OpenBSD-Commit-ID: bf277f2832125eb40ac2c9fa3ea66e31214f2131
2026-06-05 18:49:15 +10:00
[email protected] 7763a38bc2 upstream: add signature malleability and pubkey validity checks to
ed25519 verification (SSH doesn't depend on these properties) Pointed out by
Soatok Dreamseeker

Add an explicit-seed variant of the keygen function.

feedback / "looks fine" tb@

OpenBSD-Commit-ID: 2a71926bfda24628cf34a88357f44a790e338d5d
2026-06-04 14:40:51 +10:00
[email protected] 65c6ac0a82 upstream: refer to RFC9987 instead of I-D
OpenBSD-Commit-ID: 6b273c50c2aa818b9144b8d9ab568c4239023297
2026-06-04 14:40:51 +10:00
Darren Tucker c9ebebb22f Reformat setup_ci command line.
This prevents setup_ci from running twice on Cygwin due to different
parsing of the command line since on Windows it's run via Powershell.
2026-06-02 23:28:52 +10:00
Darren Tucker 60343e46d5 Fix search for awk formatter.
AC_PATH_PROG only takes a single binary to look for, AC_PATH_PROGS is
what's needed for more than one.  Looks like an error by me in 285546b.
2026-06-02 23:28:52 +10:00
Darren Tucker 7e5590cf8f Replace shell-level timeout with dedicated command.
It turns out the systems we run this workflow on all have timeout(1),
2026-06-02 18:57:23 +10:00
Darren Tucker 41bb8c1823 Add a single retry to VM package install steps.
These are potentially flaky due to network issues, so hopefully this
will reduce the number of manual retries needed.
2026-06-02 18:11:42 +10:00
Darren Tucker 14d88d4da7 Add includes.h for compat functions.
Fixes build on at least old AIX.
2026-06-02 17:44:12 +10:00
Darren Tucker e8c12cc085 setup_ci.sh: add timeout and allow one retry 2026-06-01 22:31:28 +10:00
[email protected] de97e5a44c upstream: differentiate between execution failures and subsystem not
found when logging why a subsystem failed to start; GHPR#637 from cuiweixie

OpenBSD-Commit-ID: 42bc40dd6272b7f6726b069a8c4e16025a354056
2026-06-01 18:28:05 +10:00
Darren Tucker 51db029b53 Don't install shim for AWK=awk.
If configure finds an undadorned awk, don't install the shim to prevent
recursive calls to it.
2026-06-01 18:26:31 +10:00
Darren Tucker 2afcdf7b3e Pass awk detected by configure to regress tests.
Some platforms' basic awk don't have toupper, but other awks like nawk
or gawk do.  Pass the one found by configure through to the regress
tests, and make a wrapper for it so we don't need to modify any tests.
2026-06-01 17:40:03 +10:00
Darren Tucker 7b776066bc Update LibreSSL test 4.3.1->4.3.2. 2026-06-01 17:39:40 +10:00
[email protected] 684d26a3c4 upstream: sk-usbhid: skip unsupported key types in read_rks()
When enumerating resident keys, encountering a credential with an
unsupported COSE key type (not ES256 or EdDSA) caused the entire
enumeration to abort via goto out, discarding all valid keys.

Move the key type check before the per-credential allocation so
unsupported types can be skipped with continue instead. This
preserves all valid resident keys on the token.

Patch from Akhilesh Arora via GHPR657

OpenBSD-Commit-ID: b344a44ff97d26faf099b8e0cad72ad1e793ac0f
2026-06-01 15:50:05 +10:00
[email protected] de24573efc upstream: Actually set pollfd.events correctly for socket type
channels; previously we were throwing away the events we computed if the
channel had a c->sock distinct from it's other read and write fds.
Fortunately, it appears that this case happens rarely, if ever.

Reported by Darafei Praliaskouski via GHPR660

OpenBSD-Commit-ID: d3f483b7919946c5649e8c697d5b927af35aac4b
2026-06-01 15:41:25 +10:00
[email protected] 58b9381e0b upstream: handle compiled-time unsupported options in servconf.h
better; leave a zero placeholder variable so we don't have #ifdef around
their absence elsehwere in the tree

OpenBSD-Commit-ID: 9601de2c67042aacb0ea12ca424e67c092fa7801
2026-05-31 23:14:07 +10:00
Damien Miller ea91c7a1a9 depend 2026-05-31 22:23:42 +10:00
[email protected] 3bc4ac4394 upstream: unit test for new servconf.[ch] code, including a basic
fuzz test for deserialisation

OpenBSD-Regress-ID: f182c21485dc37a41a125f067b59bee48adbfe6c
2026-05-31 22:23:42 +10:00
[email protected] f2b815e42d upstream: the new configuration dump code emits configuration
directives with capitalisation (previously they were all lowercase), so make
the tests that consume them insensitive to case

OpenBSD-Regress-ID: 9a81d8501b8b8fc1c1a0d268d4cc91cbb19668f5
2026-05-31 22:23:41 +10:00
[email protected] 633a4c1a24 upstream: flesh out match_pattern() tests, including a new
comparison test of the new NFA-based implementation against the original one
for all possible combinations of short inputs and patterns constructed from a
small dictionary of possibilities.

OpenBSD-Regress-ID: a18e86c95afb6243ac270468f5dd0ab4a78c8074
2026-05-31 22:23:41 +10:00
[email protected] bebc855fdb upstream: big refactor of sshd config management code.
This generates much of the initialisation, defaults and keyword table
code from a set of macros rather than hand coding them. These same
macros are also used to generate serialisation and deserialisation
code.

The macros are admittedly ugly but have the advantage of forcing a
good degree of consistency across places that need to stay in sync
with each other.

The new de/serialisation code is used to pass configurations across
the various sshd-* process boundaries. This removes the need to pass
around raw text configurations that need to be re-parsed as well as
eliminating some raw pointer leakage across the processes where
structures were previously clumsily serialised.

feedback/ok markus@

OpenBSD-Commit-ID: 9a5109a480637e08c290eeb82aa8ef2ca7e848ce
2026-05-31 22:23:40 +10:00
[email protected] a1dd1c8068 upstream: avoid strlen(NULL) crash if an X11 channel was created before
the x11-req SSH_MSG_CHANNEL_REQUEST was sent. Reported by Ben Perry via
GHPR679

OpenBSD-Commit-ID: 31db0da9ab6c73e6bbf4021ffd53dc3ce5c65f23
2026-05-31 16:15:17 +10:00
[email protected] df18979e11 upstream: DNS0x20[1] can randomise the case of domain names returned by
lookup to force some more uniqueness in queries to reduce the likelihood of
spoofing attacks succeeding.

Normally this should be hidden from the user by the resolver, but
in some cases it can leak through. When it does, it can mess up
ssh's CanonicalizePermittedCNAMEs.

Fix this by forcing the name we received from the system resolver to
lowercase.

bz3966, report and fix by Martin D Kealey

[1] https://datatracker.ietf.org/doc/html/draft-vixie-dnsext-dns0x20-00

OpenBSD-Commit-ID: e0b300d3b3af289e053d928380af71949f95bfb0
2026-05-31 16:03:47 +10:00
[email protected] 5a5e47740b upstream: disallow use of the copy-data extension to read and write
to the same inode simultaneously; reported by Qifan Zhang of Palo Alto
Networks; ok markus@

OpenBSD-Commit-ID: 94ceb85146d92dbc1289c55d308498d5f56f274a
2026-05-31 15:03:58 +10:00
[email protected] 073faa6bec upstream: Fix two separate one-byte out-of-cound reads
1) if a server sent an empty reply to a SSH2_FXP_REALPATH request
2) if a batch command used the full 2048 byte buffer but ended in a
  literal backslash character

Both reported by Zhenpeng (Leo) Lin from depthfirst

ok markus@

OpenBSD-Commit-ID: d1ccc1f5a6eb109065ce8a552fea8e502381ce59
2026-05-31 15:03:57 +10:00