Skip to content

Openssh 10.3p1 uplift#194

Open
andrewyounkers wants to merge 648 commits into
open-quantum-safe:OQS-v10from
andrewyounkers:openssh-10.3p1-uplift
Open

Openssh 10.3p1 uplift#194
andrewyounkers wants to merge 648 commits into
open-quantum-safe:OQS-v10from
andrewyounkers:openssh-10.3p1-uplift

Conversation

@andrewyounkers
Copy link
Copy Markdown

@andrewyounkers andrewyounkers commented May 8, 2026

This PR merges in upstream commits from the OpenSSH-portable V_10_3_P1 tag by running a git merge V_10_3_P1. The main changes that I noticed during the uplift included adding persource penalties work, adding a libcrypto error mapping object, a few protocol/feature additions, and other security/hardening fixes.

I used the following methodology to resolve all merge conflicts

  • Accept current to preserve OQS specific logic
  • Accept any combinations needed to bring in updated upstream code but keep OQS specific code
  • Accept incoming for all other conflicts to bring in new upstream logic

After using this process there were only a few other changes needed to complete the uplift. 830e07e updates the '.depend' file to replace 'openbsd-compat/sha2.h' with 'openbsd-compat/bsd-sha2.h' (upstream logic) and updates the config files added by OpenSSH to have the OQS specific logic generated by autoconf available by default.
d68a34b handles cleaning up a syntax error and addressing two '-Wformat-truncation=' warnings in log.c and misc.c by increasing the max buffer size based on the gcc output. c3994f7 resolves a double free occuring in one of the test files. All of these commits are signed off but upstream commits are not.

After uplifting, the OQS-SSH version output appears as follows:

/opt/oqs-ssh/bin/ssh -V
OpenSSH_10.3-2026-05_p1, Open Quantum Safe 2026-05, OpenSSL 3.5.6 7 Apr 2026

The CI VM.yml checks reported as failing in #191 are still failing and will be addressed in a following PR. This workflow file was added by the upstream in the 10.2 uplift but needs to be updated to use OQS helper scripts so it behaves like the ubuntu.yaml workflow

miod@openbsd.org and others added 30 commits October 31, 2025 11:06
can no longer get set to "gcc3".

OpenBSD-Regress-ID: 02351ea947975b80be60b9a8c6e4dbb57789e890
OpenBSD-Regress-ID: a145f09c1efb1fcd3924544463f1f94f5d4805c0
avoids confusion with system header when included from files under
openbsd-compat/
Avoids early fatal() if the user doesn't exist.

Reported by Viswesh Narayanan; ok dtucker@
execution; ok markus

OpenBSD-Commit-ID: 993628a5b361e30aa48bbb4c07667a280f3f23ab
OpenBSD-Commit-ID: 7d047bbff6964b9abbc04e9b3e2e1b4cc1db0aea
sshkey_ec_validate_public()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Checking nQ == infinity is not needed for cofactor 1 curves.
Checking x and y coordinates against order is not needed either.

patch from Szilárd Pfeiffer, with further refinement by tb@
ok tb@

OpenBSD-Commit-ID: ef985e2be7c64e215d064757d3fc65eb181e8ede
OpenBSD-Regress-ID: 577ef2f36ee592528448e8c0f33499e2e3512054
OpenBSD-Regress-ID: f789d46e99d2598929e3c2d00b45c47cc3102501
OpenBSD-Regress-ID: a3a4dae538c831b3810f69abc34ad8504dc3c460
change

OpenBSD-Regress-ID: 50b7f49021b8085728d0544275e141fb1bf4a2b5
setenv commands.

Unbreaks ssh-agent for home directory paths that contain whitespace.

Based on fix from Beat Bolli via bz3884; feedback/ok dtucker@

OpenBSD-Commit-ID: aaf06594e299940df8b4c4b9f0a1d14bef427e02
Apparently these are YAML magic when followed by whitespace
Explicitly check for OPENSSL_NO_EC, since otherwise the test will link
but then fail at runtime.
review

OpenBSD-Commit-ID: b296bd6056f33fd567ca0d5e9123dac1ec00f037
v0.0.4

tested/ok tb@

OpenBSD-Commit-ID: 525a62549efbf53492adcb2c57e4872cdbaeed62
portable

unused on OpenBSD (nothing sets MISSING_BUILTIN_POPCOUNT), but it
makes syncing much easier.

OpenBSD-Commit-ID: 496446300d82615b24f83eca886b8fabdbee445b
and ERR_load_crypto_strings(). These are no-ops in LibreSSL, and in
Portable have been mostly replaced by a call to OPENSSL_init_crypto()
in the compat layer.  ok tb@

OpenBSD-Commit-ID: 4c3e0af10fe276766054eda34428a37a5606d3ea
We already have OPENSSL_init_crypto() in the compat layer (now with a
check of its return code, prompted by tb@). Prompted by github PR#606
from Dimitri John Ledkov.  ok beck@
The uname(3) syscall is utilized by zlib-ng on RISC-V to decide whether
the kernel handles VILL bit of V extension properly (by checking the
kernel version against 6.5).

Allow it in the seccomp sandbox.

Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
This prevents link errors with the openbsd-compat tests when the linker
tries to bring in all the logging bits.
either. Coverity CID 443285.

OpenBSD-Regress-ID: aa90e57b1bc8efce9e50734a07a8ffec0680059a
daztucker and others added 21 commits March 30, 2026 18:51
TEST_SSH_HOSTBASED_AUTH=setupandrun.

This will MODIFY THE CONFIG OF THE SYSTEM IT IS RUNNING ON to enable
hostbased authentication to/from itself and run the hostbased tests.  It
won't undo these changes, so don't do this on a system where this matters.

OpenBSD-Regress-ID: ae5a86db1791a2b8f999b07b5c8cc756d40bf645
on the warning about modifying the system config.

OpenBSD-Regress-ID: 68038da909f9c992375b7665dab0331d6af426b7
OpenBSD-Regress-ID: 92721cad4c219fe62b7b795a73505c22e56f09e0
OpenBSD-Regress-ID: ab64fd0a86422df1eadacde56c0a2cff5d93425d
OpenBSD-Regress-ID: 400dc1b5fb7f2437d0dfbd2eb9a3583dafb412b3
This fixes the build with --without-openssl on musl. glibc worked
previously because it got stdio.h implicitly through resolv.h.
Not all dd implementations support this. POSIX only specifies
suffixes for block size operands.

Instead, just use 1024k to avoid the special case. This also removes
an incorrect redirection operator that appeared in the 1m case.
OpenSSH doesn't support PAM changing its conception of the
username via a module calling pam_set_item(h, PAM_USER, ...).
We were supposed to bail out here, but I messed up while "fixing"
this last time and dropped a return statement.

Reported by Mike Damm
to a value <10 using the single-argument form of MaxStartups (e.g.
MaxStartups=3). This doesn't affect the three-argument form of the directive
(e.g. MaxStartups 3:20:5).

Patch from Peter Kaestle via bz3941

OpenBSD-Commit-ID: 1ad093cae69f55ebfdea1ab24318aefd593d63b8
ControlMaster=ask/autoask and "ssh -O proxy ..."; reported by Michalis
Vasileiadis

OpenBSD-Commit-ID: 8dd7b9b96534e9a8726916b96d36bed466d3836a
without the -p (preserve modes) flag set, clear setuid/setgid bits from
downloaded files as one might expect.

AFAIK this bug dates back to the original Berkeley rcp program.

Reported by Christos Papakonstantinou of Cantina and Spearbit.

OpenBSD-Commit-ID: 49e902fca8dd933a92a9b547ab31f63e86729fa1
algorithm allowlists: HostKeyAlgorithms, PubkeyAcceptedAlgorithms and
HostbasedAcceptedAlgorithms.

Previously, if any ECDSA type (say "ecdsa-sha2-nistp521") was
present in one of these lists, then all ECDSA algorithms would
be permitted.

Reported by Christos Papakonstantinou of Cantina and Spearbit.

OpenBSD-Commit-ID: c790e2687c35989ae34a00e709be935c55b16a86
the commandline to earlier in main(), specifically before some contexts where
a username with shell characters might be expanded by a %u directive in
ssh_config.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We continue to recommend against using untrusted input on
the SSH commandline. Mitigations like this are not 100%
guarantees of safety because we can't control every
combination of user shell and configuration where they are
used.

Reported by Florian Kohnhäuser

OpenBSD-Commit-ID: 25ef72223f5ccf1c38d307ae77c23c03f59acc55
OpenBSD-Commit-ID: 05e22de74e090e5a174998fa5799317d70ad19c4
OpenBSD-Regress-ID: d22c66ca60f0d934a75e6ca752c4c11b9f4a5324
@andrewyounkers andrewyounkers self-assigned this May 8, 2026
@andrewyounkers andrewyounkers force-pushed the openssh-10.3p1-uplift branch from 2371b45 to d14da62 Compare May 8, 2026 13:43
When uplifting to OpenSSH 10.3, the current changes were kept when resolving merge conflicts. The change to replace 'openbsd-compat/sha2.h' with 'openbsd-compat/bsd-sha2.h' is brought in with this change while preserving oqs specific targets. This commit also adds oqs specific logic to the upstream config files generated by autoconf

Signed-off-by: Andrew Younkers <ayounkers44@gmail.com>
This commit addresses two '-Wformat-truncation=' warnings in log.c and misc.c. The change is to increase the buffer size to prevent possible truncation and doesn't affect the non-truncated cases.

Signed-off-by: Andrew Younkers <ayounkers44@gmail.com>
Signed-off-by: Andrew Younkers <ayounkers44@gmail.com>
@andrewyounkers andrewyounkers force-pushed the openssh-10.3p1-uplift branch from d14da62 to c3994f7 Compare May 8, 2026 13:46
Comment thread misc.c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.