Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package openssh for openSUSE:Factory checked 
in at 2026-10-14 18:34:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openssh (Old)
 and      /work/SRC/openSUSE:Factory/.openssh.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openssh"

Wed Oct 14 18:34:05 2026 rev:211 rq:1384551 version:10.6p1

Changes:
--------
--- /work/SRC/openSUSE:Factory/openssh/openssh-askpass-gnome.changes    
2026-07-26 11:29:45.417347828 +0200
+++ 
/work/SRC/openSUSE:Factory/.openssh.new.3698736/openssh-askpass-gnome.changes   
    2026-10-14 18:34:20.865911336 +0200
@@ -1,0 +2,7 @@
+Thu Oct  8 17:05:43 UTC 2026 - Antonio Larrosa <[email protected]>
+
+- Update to openssh 10.6p1:
+  * No changes for askpass, see main package changelog for
+    details.
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/openssh/openssh.changes  2026-10-02 
23:03:15.397073962 +0200
+++ /work/SRC/openSUSE:Factory/.openssh.new.3698736/openssh.changes     
2026-10-14 18:34:20.921913707 +0200
@@ -1,0 +2,269 @@
+Thu Oct  8 17:05:43 UTC 2026 - Antonio Larrosa <[email protected]>
+
+- Update to openssh 10.6p1:
+  = Future deprecation notice
+  * scp(1): begin deprecating the -R flag, which is used to
+    perform a remote-to-remote copy by executing scp on a remote
+    host. This option is a fragile optimisation that is difficult
+    to use because it requires credentials on the remote host. It
+    also creates security risks if the shell quoting rules on the
+    remote system where the copy is performed differ from the
+    client's expectations.
+    From OpenSSH 10.6, this option will continue to work but will
+    cause a deprecation warning to be emitted to standard error. In
+    a future release, the option will be ignored and will leave in
+    place the default remote-to-remote copy behaviour (copy via the
+    host running scp).
+  * sshd(8): support for platforms that do not allow file
+    descriptor passing and that also require root privilege for PTY
+    allocation will be removed in a future release. Affected
+    platforms are known to include SCO OpenServer 5 and QNX 6 but
+    may include other similarly old operating systems. This
+    deprecation can be avoided if the user community for these
+    platforms is able to assist us in building alternatives, such
+    as avoiding the need for root in PTY allocation.
+
+  = Potentially-incompatible changes
+  * ssh(1), sshd(8): compression will be less effective as a result
+    of the change noted below in the "Security" section
+  * ssh(1): destination usernames entered on the commandline are
+    now more strictly checked and will refuse usernames that
+    include backslash and dollar symbols. Usernames that are
+    specified by the "User" directive in configuration files are
+    not subject to these restrictions. The motivation for this
+    change is mentioned below in the "Security" section.
+  * sshd(8): on platforms that do not support file descriptor
+    passing and that require root for PTY allocation, the
+    GatewayPorts and StreamLocalForwarding options are forcibly
+    disabled. The motivation for this change is discussed below in
+    the "Security" section.
+
+  = Security
+  * sftp(1): more strictly validate paths returned from the server
+    to avoid some cases where a server could return paths that
+    could manipulate a recursive copy operation into writing
+    outside its target directory. Report and patch from Junghoon
+    Cho.
+  * sshd(8): when GSSAPIAuthentication is in use, only store GSSAPI
+    credentials when authentication has succeeded. Avoids a
+    situation where credentials from a failed GSSAPIAuthentication
+    attempt may persist and be made inappropriately available if
+    another authentication subsequently succeeds. Issue report and
+    patch from Moritz Theile.
+  * sshd(8): reset GSSAPIAuthentication before authentication,
+    avoiding state from one authentication attempt being confused
+    with that of a later attempt. Report and feedback from Moritz
+    Theile.
+  * sshd(8), ssh(1): disable LZ77 dictionary coder to mitigate the
+    side-channel leaks described in "Crossing the Streams: SSH
+    Plaintext Recovery via a Common Compression Context in
+    Multiplexed Channels" by Fabian Bäumer and Marcus Brinkmann,
+    preprint https://arxiv.org/abs/2609.07709 (2026)
+    A chosen-plaintext attack method exists which makes use of
+    dictionary-based compression to recover secrets from one
+    channel by interacting with the SSH session's shared
+    compression dictionary through another channel.
+    Attacker-controlled input can recognizably reflect into the
+    total length of transmitted ciphertexts by virtue of LZ77
+    replacing repeated strings with back-references into the SSH
+    session's encoder search buffer, which is shared across all
+    channels. For this reason, the documentation already
+    recommended against enabling compression for connections that
+    share trusted and untrusted traffic.
+    This change will reduce the effectiveness of the Compression
+    option. Users are encouraged to use application-level
+    compression over the SSH protocol where possible, as this will
+    typically be more effective and will be completely immune to
+    this type of attack.
+  * ssh(1): disallow '$' and '\' characters in usernames entered on
+    the command-line to avoid usernames from untrusted sources
+    yielding injection in shell context via ProxyCommand, Match
+    exec, etc. Usernames specified via the configuration files are
+    not subject this this control. Reported by SecBuddyF KeenLab
+    Tencent (CodeBuddy Security)
+    We continue to recommend against directly exposing ssh(1) and
+    other tools' command-lines to untrusted input. Mitigations such
+    as this can not be absolute given the variety of shells and
+    user configurations in use.
+  * ssh-keygen(1): correct handling of Daylight Saving Time when
+    converting dates. Previous handling could cause errors of
+    up to +/- 1 hour (unless you are in the Antarctica/Troll
+    timezone, where the error could be +/- 2 hours). These errors
+    could result in creation of certificates with incorrect expiry
+    times. bz4004; from Khush Patel
+  * sshd(8), ssh(1): ensure that compressed payloads don't inflate
+    past the maximum supported packet length. Reported by Oleh
+    Konko.
+  * sshd(8): fully honor the authorized_keys "restrict" keyword,
+    which was not being properly applied to tunnel forwarding
+    (PermitTunnel, disabled by default). This is a separate problem
+    to the one fixed in openssh-10.5.
+  * sshd(8): correctly handle some options that accept "none". Some
+    options, including AuthorizedPrincipalsFile, were documented as
+    accepting "none" as a way to disable them; however, when
+    overridden by an sshd_config(5) Match keyword, this argument
+    was being incorrectly interpreted as a literal file.
+    With Chris Rohlf in collaboration with Claude and Anthropic
+    Research
+  * sshd(8): On OS X SDK >= 27, sandboxing is no longer supported
+    as the API we depended upon has been removed and no obvious
+    alternative provided.
+  * sshd(8): on platforms that do not support file descriptor
+    passing and that require root for PTY allocation, the
+    post-authentication sshd-session process retains root
+    privilege, whereas on other platforms this process runs with
+    the privilege of the logged-in user. When sshd-session was run
+    with elevated privilege, it could perform certain actions as
+    root and circumvent controls that would normally have applied
+    to the user, such as making unix domain socket connections or
+    binding (via -R forwarding) to low-numbered TCP ports.
+    For this reason, this release disables the GatewayPorts and
+    StreamLocalForwarding options and support for these (few)
+    platforms will be removed in future if no alternatives to
+    requiring privilege in the post-authentication process are
+    found. Affected platforms include QNX 6, SCO OpenServer 5 and
+    builds that were made with the --disable-fd-passing configure
+    option.
+    This problem was reported separately by sn0x-sharma and by
+    Dark River.
+
+  = New features
+  * All: enable hybrid post-quantum ssh-mldsa44-ed25519 signature
+    algorithm. Note that this no longer uses the "@openssh.com"
+    vendor extension suffix that the previous experimental
+    implementation used. Keys generated with the previous
+    experimental support must be regenerated and/or removed.
+  * sshd(8): Add the WarnWeakCrypto option to sshd_config(5). This
+    option was previously available for the client only. This
+    option is enabled by default and will log when the client uses
+    a key agreement scheme that is not post-quantum safe.
+  * ssh-keygen(1), ssh-add(1): preserve user-verification (PIN or
+    biometric) requirement for resident keys loaded from a FIDO
+    token, by checking the credential's credProtect policy.
+    GHPR701 from Savely Krasovsky
+  * ssh(1): include local and remote version strings in the ~I
+    connection information display.
+  * ssh-add(1): add a -P flag to skip PIN entry for FIDO and
+    PKCS#11 tokens that do not require it.
+  * sftp(1): add '-p' flag for mkdir/lmkdir to create directories
+    as required. This flag has similar ergonomics to mkdir(1), and
+    previously-existing directories do not cause an error.
+  * ssh-keygen(1): add a "hexdump" key export mode that dumps the
+    SSH wire-formatted key blob in hex format. Useful when writing
+    documentation, tests, etc. E.g.
+    `ssh-keygen -em hexdump -f /key`
+  * ssh(1), sshd(8): ChannelTimeout now accepts timeouts with
+    fractional seconds.
+  * sshd(8): allow specification of the location of $SSH_AUTH_SOCK
+    used for agent forwarding using a new AgentSocketPath option.
+    This supports both using a user-specific path, such as the
+    default of a subdirectory of $HOME ("user:.ssh/agent"), and
+    the previous approach of allowing agent forwarding sockets to
+    be located in a shared directory (e.g. "shared:/tmp"). Sockets
+    created in shared directories will be created inside a
+    subdirectory with a randomised name. bz3860
+  * ssh-agent(1): allow specification of agent socket directories
+    using a -A flag. It accepts "user:" and "shared:" directory
+    styles similar to the sshd AgentSocketPath option.
+  * sshd(8): account for public key authentication "key ok" tests
+    separately to auth attempts. Add a
+    `PubkeyOptions max-pk-ok:nnnn` option to allow a number of
+    PK_OK tests (asking whether the server might accept a given
+    public key) that do not count against MaxAuthTries, defaulting
+    to 6 attempts. After these attempts are exhausted, further
+    attempts count as failed authentications against MaxAuthTries.
+    Practically, this allows more keys on disk or held in ssh-agent
+    to be checked for use before the server disconnects.
+  * ssh(1), sshd(8): extend the existing TCPKeepAlive option to
+    also support setting keepalives on sockets created for
+    forwarding connections. Previously this option controlled
+    keepalives on the connection socket only. TCPKeepAlive "yes" or
+    "transport" enables keepalives on the connection socket.
+    "TCPKeepAlive all" additionally enables them for forwarding
+    sockets. bz3921
+
+  = Bugfixes
+  * sshd(8), ssh(1): fix configuration matching on more Turkic
+    languages which have disjoint dotted and dotless i/I
+    characters, specifically Azerbaijani and Crimean Tatar. bz3991
+  * ssh(1), sshd(8): don't attempt to set TCP_NODELAY on
+    non-IP/IPv6 sockets. Eliminates some noise in debug logs.
+  * ssh(1): fix case for ssh -G option output; bz4005
+  * ssh(1), sshd(8): Fix ChannelTimeout specificity; previously a
+    more specific channel type (e.g. "session:shell") could clobber
+    a user-specified ChannelTimeout if it was less specific (e.g.
+    "session").  Also, in some cases, the debug messages were
+    printing 0 instead of the effective timeout. bz3994
+  * sftp(1): avoid NULL dereference crash in some circumstances
+    when a server fails a stat/lstat operation. GHPR707
+  * sshd(8): close a race condition where a SIGTERM/SIGQUIT would
+    be ignored if it was received by the server while it was
+    processing a SIGHUP restart request. bz3981
+  * sshd(8), ssh(1): check key and CA signature types during key
+    parsing against allowlists (PubkeyAcceptedAlgorithms, etc) as
+    early as possible. This reduces the attack surface presented by
+    disabled algorithms. Suggested by and with extensive feedback
+    from Chris Rohlf in collaboration with Claude and Anthropic
+    Research.
+  * All: switch the fallback implementation of the ed25519
+    signature algorithm used when libcrypto is disabled from
+    SUPERCOP ed25519 to libsodium. The libsodium implementation
+    includes a number of strictness checks over the original
+    reference implementation we have used to this point and a more
+    ergonomic API.
+  * ssh-add(1), ssh(1), ssh-keygen(1): fix spin on password entry
+    when the program attempting to read a password was started in a
+    background process group, with no TTY and with certain signals
+    ignored. bz3995
+  * scp(1): disallow nul byte in received scp -O filename. This was
+    not reachable in normal operation. Reported by Chua Wei Xun.
+  * ssh-keygen(1), ssh(1), sshd(8): implement a maximum number of
+    KDF rounds that will be accepted when writing an OpenSSH-format
+    private key or when loading one. This limit is set quite high
+    (1M), but ensures that a service that is passed a bad key with
+    a ridiculously high number of rounds will eventually complete
+    parsing it.
+  * ssh-keygen(1): bump the default number of KDF rounds from 24 to
+    32 (this is a linear increase, not like bcrypt(3) which is
+    exponential).
+  * ssh(1): make StreamLocalBindMask properly respect Host/Match
+    blocks and make it first-match-wins as documented. bz4013
+  * sshd(8): make StreamLocalBindMask properly first-match-wins.
+
+  = Portability
+  * All: remove the NetBSD BROKEN_READ_COMPARISON workaround. This
+    appears to be no longer required and caused pre-auth CPU
+    spinning.
+  * sshd(8): don't link sshd against libselinux when SELinux
+    support is enabled (note: this library is still linked for the
+    sshd-auth and sshd-session helper binaries).
+  * sshd(8): allow madvise(..., MADV_DONTNEED_LOCKED) in the
+    seccomp sandbox; needed by GrapheneOS' hardened allocator.
+    bz4001
+  * sshd(8): restrict mremap(2) flags accepted by the seccomp
+    sandbox. Only MREMAP_MAYMOVE is now accepted as other flags
+    may have some utility in attack chains. Reported by: Mohammad
+    Hossein Abedini.
+  * sshd(8): allow PAMServiceName in Match (regressed in 10.4).
+    During the refactor of server option parsing, the ability to
+    set PAMServiceName in Match blocks was accidentally disabled.
+  * sshd(8): the --disable-fd-passing configure option has been
+    removed.
+
+- Rebase patches:
+  * openssh-6.6p1-privsep-selinux.patch
+  * openssh-7.7p1-fips.patch
+  * openssh-7.7p1-gssapi-new-unique.patch
+  * openssh-7.7p1-pam_check_locks.patch
+  * openssh-7.8p1-role-mls.patch
+  * openssh-8.0p1-gssapi-keyex.patch
+  * openssh-8.1p1-ed25519-use-openssl-rng.patch
+  * openssh-9.6p1-crypto-policies-man.patch
+  * openssh-askpass-gnome.spec
+  * openssh-mitigate-lingering-secrets.patch
+
+- Drop patches already merged upstream:
+  * openssh-10.5p1-sync-readpassphrase.patch
+  * openssh-10.5p1-propagate-restrict-keyword.patch
+
+-------------------------------------------------------------------

Old:
----
  openssh-10.5p1-propagate-restrict-keyword.patch
  openssh-10.5p1-sync-readpassphrase.patch
  openssh-10.5p1.tar.gz
  openssh-10.5p1.tar.gz.asc

New:
----
  openssh-10.6p1.tar.gz
  openssh-10.6p1.tar.gz.asc

----------(Old B)----------
  Old:/work/SRC/openSUSE:Factory/.openssh.new.3698736/openssh.changes-  * 
openssh-10.5p1-sync-readpassphrase.patch
/work/SRC/openSUSE:Factory/.openssh.new.3698736/openssh.changes:  * 
openssh-10.5p1-propagate-restrict-keyword.patch
/work/SRC/openSUSE:Factory/.openssh.new.3698736/openssh.changes-
  Old:/work/SRC/openSUSE:Factory/.openssh.new.3698736/openssh.changes-- Drop 
patches already merged upstream:
/work/SRC/openSUSE:Factory/.openssh.new.3698736/openssh.changes:  * 
openssh-10.5p1-sync-readpassphrase.patch
/work/SRC/openSUSE:Factory/.openssh.new.3698736/openssh.changes-  * 
openssh-10.5p1-propagate-restrict-keyword.patch
----------(Old E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openssh-askpass-gnome.spec ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:25.127091774 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:25.129091858 +0200
@@ -18,8 +18,8 @@
 
 %define _name openssh
 Name:           openssh-askpass-gnome
-Version:        10.5p1
-%define wrongly_named_version 10.5p1
+Version:        10.6p1
+%define wrongly_named_version 10.6p1
 Release:        0
 Summary:        A GNOME-Based Passphrase Dialog for OpenSSH
 License:        BSD-2-Clause

++++++ openssh.spec ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:25.166093425 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:25.168093510 +0200
@@ -58,7 +58,7 @@
   %define _fillupdir %{_localstatedir}/adm/fillup-templates
 %endif
 Name:           openssh
-Version:        10.5p1
+Version:        10.6p1
 Release:        0
 Summary:        Secure Shell Client and Server (Remote Login Program)
 License:        BSD-2-Clause AND MIT
@@ -176,10 +176,6 @@
 Patch107:       openssh-send-extra-term-env.patch
 # PATCH-FIX-SUSE openssh-7.7p1-gssapi-new-unique.patch bsc#1258166 
[email protected] -- SSSD non-file ccache: krb5 new_unique
 Patch108:       openssh-7.7p1-gssapi-new-unique.patch
-# PATCH-FIX-UPSTREAM openssh-10.5p1-sync-readpassphrase.patch mindrot#3995 
[email protected] -- Sync readpassphrase(3) with OpenBSD libc: preserve SIG_IGN 
so ssh-add no longer spins without a controlling tty
-Patch109:       openssh-10.5p1-sync-readpassphrase.patch
-# PATCH-FIX-UPSTREAM openssh-10.5p1-propagate-restrict-keyword.patch 
bsc#1275079 -- Propagate the authorized_keys "restrict" flag
-Patch110:       openssh-10.5p1-propagate-restrict-keyword.patch
 # 200..300 -- Patches submitted to upstream
 # 1000..2000 -- Conditional patches
 %if %{with crypto_policies}

++++++ openssh-10.5p1.tar.gz -> openssh-10.6p1.tar.gz ++++++
++++ 18433 lines of diff (skipped)

++++++ openssh-6.6p1-privsep-selinux.patch ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:25.823121247 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:25.827121416 +0200
@@ -114,17 +114,17 @@
        /* Demote the child */
        if (privsep_chroot) {
                /* Change our root directory */
-Index: openssh-9.3p2/sshd-session.c
+Index: openssh-10.6p1/defines.h
 ===================================================================
---- openssh-9.3p2.orig/sshd-session.c
-+++ openssh-9.3p2/sshd-session.c
+--- openssh-10.6p1.orig/defines.h
++++ openssh-10.6p1/defines.h
 @@ -490,7 +490,7 @@ privsep_postauth(struct ssh *ssh, Authct
-        * fd passing, as AFAIK PTY allocation on this platform doesn't require
-        * special privileges to begin with.
-        */
+  * fd passing, as AFAIK PTY allocation on this platform doesn't require
+  * special privileges to begin with.
+  */
 -#if defined(DISABLE_FD_PASSING) && !defined(HAVE_CYGWIN)
 +#if defined(DISABLE_FD_PASSING) && !defined(HAVE_CYGWIN) && 
!defined(WITH_SELINUX)
-       skip_privdrop = 1;
+ # define SKIP_PRIVDROP 1
  #endif
  
 

++++++ openssh-7.7p1-fips.patch ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:25.896124338 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:25.902124592 +0200
@@ -849,8 +849,8 @@
 --- openssh-10.3p1.orig/readconf.h
 +++ openssh-10.3p1/readconf.h
 @@ -235,6 +235,7 @@ typedef struct {
- #define SSH_KEYSTROKE_CHAFF_MIN_MS            1024
- #define SSH_KEYSTROKE_CHAFF_RNG_MS            2048
+ #define SSH_KEEPALIVES_TRANSPORT      1
+ #define SSH_KEEPALIVES_ALL            2
  
 +void   filter_fips_algorithms(Options *o);
  const char *kex_default_pk_alg(void);
@@ -987,7 +987,7 @@
        int first = 0;
        struct stat st;
 @@ -1025,6 +1040,12 @@ do_gen_all_hostkeys(struct passwd *pw)
-       char comment[1024], *prv_tmp, *pub_tmp, *prv_file, *pub_file;
+       char comment[KEY_COMMENT_MAX], *prv_tmp, *pub_tmp, *prv_file, *pub_file;
        int i, type, fd, r;
  
 +      if (fips_mode()) {

++++++ openssh-7.7p1-gssapi-new-unique.patch ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:25.924125524 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:25.928125693 +0200
@@ -458,7 +458,7 @@
 ===================================================================
 --- openssh-10.3p1.orig/gss-serv.c
 +++ openssh-10.3p1/gss-serv.c
-@@ -415,18 +415,20 @@ ssh_gssapi_cleanup_creds(void)
+@@ -415,23 +415,25 @@ ssh_gssapi_cleanup_creds(void)
  }
  
  /* As user */
@@ -466,6 +466,12 @@
 +int
  ssh_gssapi_storecreds(void)
  {
+       if (!gssapi_client.userok) {
+               debug_f("GSSAPI client was not authorized, doing nothing");
+-              return;
++              return 0;
+       }
+ 
        if (options.gss_deleg_creds == 0) {
                debug_f("delegate credential is disabled, doing nothing");
 -              return;
@@ -579,8 +585,8 @@
 -void ssh_gssapi_storecreds(void);
 +int ssh_gssapi_storecreds(void);
  const char *ssh_gssapi_displayname(void);
+ void ssh_gssapi_cleanup_global_client();
  
- char *ssh_gssapi_server_mechanisms(void);
 Index: openssh-10.3p1/sshd-session.c
 ===================================================================
 --- openssh-10.3p1.orig/sshd-session.c

++++++ openssh-7.7p1-pam_check_locks.patch ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:25.951126667 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:25.955126836 +0200
@@ -26,8 +26,8 @@
  #ifdef USE_PAM
  #define SSHD_CONFIG_ENTRIES_PAM \
  SSHCONF_INTFLAG(use_pam, UsePAM, SSHCFG_GLOBAL, 0, SSHCFG_COPY_NONE) \
--SSHCONF_STRING(pam_service_name, PAMServiceName, SSHCFG_ALL, SSHCFG_COPY_NONE)
-+SSHCONF_STRING(pam_service_name, PAMServiceName, SSHCFG_ALL, 
SSHCFG_COPY_NONE) \
+-SSHCONF_STRING(pam_service_name, PAMServiceName, SSHCFG_ALL, 
SSHCFG_COPY_MATCH)
++SSHCONF_STRING(pam_service_name, PAMServiceName, SSHCFG_ALL, 
SSHCFG_COPY_MATCH) \
 +SSHCONF_INTFLAG(use_pam_check_locks, UsePAMChecklocks, SSHCFG_GLOBAL, 0, 
SSHCFG_COPY_NONE)
  #else
  #define SSHD_CONFIG_ENTRIES_PAM \

++++++ openssh-7.8p1-role-mls.patch ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:25.998128657 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:26.005128954 +0200
@@ -356,10 +356,10 @@
  
  .c.o:
        $(CC) $(CFLAGS_NOPIE) $(PICFLAG) $(CPPFLAGS) -c $<
-Index: openssh-10.3p1/openbsd-compat/port-linux.c
+Index: openssh-10.3p1/openbsd-compat/port-linux-selinux.c
 ===================================================================
---- openssh-10.3p1.orig/openbsd-compat/port-linux.c
-+++ openssh-10.3p1/openbsd-compat/port-linux.c
+--- openssh-10.3p1.orig/openbsd-compat/port-linux-selinux.c
++++ openssh-10.3p1/openbsd-compat/port-linux-selinux.c
 @@ -109,37 +109,6 @@ ssh_selinux_getctxbyname(char *pwname)
        return sc;
  }

++++++ openssh-8.0p1-gssapi-keyex.patch ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:26.025129800 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:26.029129970 +0200
@@ -860,7 +860,7 @@
 --- openssh-10.3p1.orig/gss-serv.c
 +++ openssh-10.3p1/gss-serv.c
 @@ -1,7 +1,7 @@
- /* $OpenBSD: gss-serv.c,v 1.37 2026/02/11 16:57:38 dtucker Exp $ */
+ /* $OpenBSD: gss-serv.c,v 1.39 2026/09/16 00:37:52 djm Exp $ */
  
  /*
 - * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved.
@@ -881,7 +881,7 @@
  
  static ssh_gssapi_client gssapi_client =
 -    { GSS_C_EMPTY_BUFFER, GSS_C_EMPTY_BUFFER,
--    GSS_C_NO_CREDENTIAL, NULL, {NULL, NULL, NULL, NULL}};
+-    GSS_C_NO_CREDENTIAL, NULL, {NULL, NULL, NULL, NULL}, 0};
 +    { GSS_C_EMPTY_BUFFER, GSS_C_EMPTY_BUFFER, GSS_C_NO_CREDENTIAL,
 +    GSS_C_NO_NAME, NULL, {NULL, NULL, NULL, NULL, NULL}, 0, 0};
  
@@ -980,8 +980,8 @@
 +              return GSS_S_COMPLETE;
 +      }
  
+       client->userok = 0;
        client->mech = NULL;
- 
 @@ -294,6 +361,13 @@ ssh_gssapi_getclient(Gssctxt *ctx, ssh_g
        if (client->mech == NULL)
                return GSS_S_FAILURE;
@@ -1031,15 +1031,13 @@
        }
  }
  
-@@ -363,19 +448,23 @@ ssh_gssapi_do_child(char ***envp, u_int
+@@ -363,16 +448,20 @@ ssh_gssapi_do_child(char ***envp, u_int
  
  /* Privileged */
  int
 -ssh_gssapi_userok(char *user)
 +ssh_gssapi_userok(char *user, struct passwd *pw, int kex)
  {
-       OM_uint32 lmin;
- 
 +      (void) kex; /* used in privilege separation */
 +
        if (gssapi_client.exportedname.length == 0 ||
@@ -1048,16 +1046,13 @@
                return 0;
        }
        if (gssapi_client.mech && gssapi_client.mech->userok)
--              if ((*gssapi_client.mech->userok)(&gssapi_client, user))
-+              if ((*gssapi_client.mech->userok)(&gssapi_client, user)) {
+               if ((*gssapi_client.mech->userok)(&gssapi_client, user)) {
+                       gssapi_client.userok = 1;
 +                      gssapi_client.used = 1;
 +                      gssapi_client.store.owner = pw;
                        return 1;
--              else {
-+              } else {
+               } else {
                        /* Destroy delegated credentials if userok fails */
-                       gss_release_buffer(&lmin, &gssapi_client.displayname);
-                       gss_release_buffer(&lmin, &gssapi_client.exportedname);
 @@ -389,14 +478,85 @@ ssh_gssapi_userok(char *user)
        return (0);
  }
@@ -1333,7 +1328,7 @@
  };
  
 @@ -170,6 +179,12 @@ struct kex {
-       u_int   flags;
+       u_int   non_pq_kex_warned;
        int     hash_alg;
        int     ec_nid;
 +#ifdef GSSAPI
@@ -2625,8 +2620,8 @@
 +      if (!options.gss_authentication && !options.gss_keyex)
 +              fatal_f("GSSAPI not enabled");
  
-       if ((r = sshbuf_get_string(m, &p, &len)) != 0)
-               fatal_fr(r, "parse");
+       ssh_gssapi_cleanup_global_client();
+ 
 @@ -2022,8 +2057,8 @@ mm_answer_gss_accept_ctx(struct ssh *ssh
        OM_uint32 flags = 0; /* GSI needs this */
        int r;
@@ -3197,13 +3192,14 @@
        void *data;
  } ssh_gssapi_ccache;
  
-@@ -72,8 +96,11 @@ typedef struct {
+@@ -72,9 +96,12 @@ typedef struct {
        gss_buffer_desc displayname;
        gss_buffer_desc exportedname;
        gss_cred_id_t creds;
 +      gss_name_t name;
        struct ssh_gssapi_mech_struct *mech;
        ssh_gssapi_ccache store;
+       int userok;
 +      int used;
 +      int updated;
  } ssh_gssapi_client;
@@ -3238,7 +3234,7 @@
  
  OM_uint32 ssh_gssapi_import_name(Gssctxt *, const char *);
  OM_uint32 ssh_gssapi_init_ctx(Gssctxt *, int,
-@@ -122,17 +152,33 @@ void ssh_gssapi_delete_ctx(Gssctxt **);
+@@ -122,18 +152,34 @@ void ssh_gssapi_delete_ctx(Gssctxt **);
  OM_uint32 ssh_gssapi_sign(Gssctxt *, gss_buffer_t, gss_buffer_t);
  void ssh_gssapi_buildmic(struct sshbuf *, const char *,
      const char *, const char *, const struct sshbuf *);
@@ -3264,6 +3260,7 @@
  void ssh_gssapi_cleanup_creds(void);
  void ssh_gssapi_storecreds(void);
  const char *ssh_gssapi_displayname(void);
+ void ssh_gssapi_cleanup_global_client();
  
 +char *ssh_gssapi_server_mechanisms(void);
 +int ssh_gssapi_oid_table_ok(void);
@@ -3279,14 +3276,14 @@
 --- openssh-10.3p1.orig/ssh.1
 +++ openssh-10.3p1/ssh.1
 @@ -640,6 +646,8 @@ flag),
- (supported message integrity codes),
- .Ar kex
- (key exchange algorithms),
-+.Ar kex-gss
-+(GSSAPI key exchange algorithms),
- .Ar key
- (key types),
- .Ar key-ca-sign
+ supported message integrity codes
+ .It Cm kex
+ key exchange algorithms
++.It Cm kex-gss
++GSSAPI key exchange algorithms,
+ .It Cm key
+ key types
+ .It Cm key-ca-sign
 Index: openssh-10.3p1/ssh.c
 ===================================================================
 --- openssh-10.3p1.orig/ssh.c

++++++ openssh-8.1p1-ed25519-use-openssl-rng.patch ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:26.048130775 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:26.052130944 +0200
@@ -19,25 +19,25 @@
 +
 +#include "log.h"
 +
- #define int8 crypto_int8
- #define uint8 crypto_uint8
- #define int16 crypto_int16
+ /* OpenSSH compatibility glue for the small libsodium API subset below. */
+ #define ACQUIRE_FENCE (void)0
+ #define COMPILER_ASSERT(x) (void)sizeof(char[(x) ? 1 : -1])
 @@ -33,7 +40,15 @@ int crypto_sign_ed25519_keypair(
-   unsigned char seed[32];
-   int r;
+     unsigned char seed[32];
+     int           ret;
  
 +#ifdef WITH_OPENSSL
-+  /* Use FIPS approved RNG */
-+  if (RAND_bytes(seed, 32) <= 0)
-+    fatal("Couldn't obtain random bytes (error 0x%lx)",
-+          (unsigned long)ERR_get_error());
++    /* Use FIPS approved RNG */
++    if (RAND_bytes(seed, sizeof seed) <= 0)
++      fatal("Couldn't obtain random bytes (error 0x%lx)",
++            (unsigned long)ERR_get_error());
 +#else
-   randombytes(seed, 32);
+     arc4random_buf(seed, sizeof seed);
 +#endif
 +
-   r = crypto_sign_ed25519_keypair_from_seed(pk, sk, seed);
-   explicit_bzero(seed, sizeof(seed));
-   return r;
+     ret = crypto_sign_ed25519_seed_keypair(pk, sk, seed);
+     explicit_bzero(seed, sizeof seed);
+ 
 diff --git a/kexc25519.c b/kexc25519.c
 index f13d766..2604eda 100644
 --- a/kexc25519.c

++++++ openssh-9.6p1-crypto-policies-man.patch ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:26.083132257 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:26.087132426 +0200
@@ -21,7 +21,7 @@
 [email protected],
 [email protected],
 -rsa-sha2-512,rsa-sha2-256,
[email protected]
+-ssh-mldsa44-ed25519
 -.Ed
 -.Pp
  If the specified list begins with a
@@ -134,14 +134,14 @@
 [email protected],
 [email protected],
 [email protected],
[email protected],
+-ssh-mldsa44-ed25519-cert,
 -ssh-ed25519,
 -ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
 [email protected],
 [email protected],
 [email protected],
 -rsa-sha2-512,rsa-sha2-256,
[email protected]
+-ssh-mldsa44-ed25519
 -.Ed
 +at the head of the built-in openssh default set.
  .Pp
@@ -297,14 +297,14 @@
 [email protected],
 [email protected],
 [email protected],
[email protected],
+-ssh-mldsa44-ed25519-cert,
 -ssh-ed25519,
 -ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
 [email protected],
 [email protected],
 [email protected],
 -rsa-sha2-512,rsa-sha2-256,
[email protected]
+-ssh-mldsa44-ed25519
 -.Ed
 +built-in openssh default set.
  .Pp
@@ -350,7 +350,7 @@
 [email protected],
 [email protected],
 -rsa-sha2-512,rsa-sha2-256,
[email protected]
+-ssh-mldsa44-ed25519
 -.Ed
 -.Pp
  If the specified list begins with a
@@ -467,14 +467,14 @@
 [email protected],
 [email protected],
 [email protected],
[email protected],
+-ssh-mldsa44-ed25519-cert,
 -ssh-ed25519,
 -ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
 [email protected],
 [email protected],
 [email protected],
 -rsa-sha2-512,rsa-sha2-256,
[email protected]
+-ssh-mldsa44-ed2551
 -.Ed
 +the head of the built-in openssh default set.
  .Pp
@@ -503,14 +503,14 @@
 [email protected],
 [email protected],
 [email protected],
[email protected],
+-ssh-mldsa44-ed25519-cert,
 -ssh-ed25519,
 -ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
 [email protected],
 [email protected],
 [email protected],
 -rsa-sha2-512,rsa-sha2-256,
[email protected]
+-ssh-mldsa44-ed25519
 -.Ed
 -.Pp
  The list of available signature algorithms may also be obtained using
@@ -651,14 +651,14 @@
 [email protected],
 [email protected],
 [email protected],
[email protected],
+-ssh-mldsa44-ed25519-cert,
 -ssh-ed25519,
 -ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
 [email protected],
 [email protected],
 [email protected],
 -rsa-sha2-512,rsa-sha2-256,
[email protected]
+-ssh-mldsa44-ed25519
 -.Ed
 +built-in openssh default set.
  .Pp

++++++ openssh-mitigate-lingering-secrets.patch ++++++
--- /var/tmp/diff_new_pack.NELcj2/_old  2026-10-14 18:34:26.117133696 +0200
+++ /var/tmp/diff_new_pack.NELcj2/_new  2026-10-14 18:34:26.120133823 +0200
@@ -92,7 +92,7 @@
                        break;
                case Z_STREAM_ERROR:
                default:
-@@ -923,8 +926,10 @@ uncompress_buffer(struct ssh *ssh, struc
+@@ -923,10 +926,14 @@ uncompress_buffer(struct ssh *ssh, struc
                switch (status) {
                case Z_OK:
                        if ((r = sshbuf_put(out, buf, sizeof(buf) -
@@ -101,6 +101,11 @@
 +                              explicit_bzero(buf, sizeof(buf));
                                return r;
 +                      }
+-                      if (sshbuf_len(out) >= PACKET_MAX_SIZE)
++                      if (sshbuf_len(out) >= PACKET_MAX_SIZE) {
++                              explicit_bzero(buf, sizeof(buf));
+                               return SSH_ERR_INVALID_FORMAT;
++                      }
                        break;
                case Z_BUF_ERROR:
                        /*
@@ -309,14 +314,14 @@
  
  /* Demote private to public keys for network child */
 @@ -414,6 +429,8 @@ privsep_postauth(struct ssh *ssh, Authct
+ static void
+ privsep_postauth(struct ssh *ssh, Authctxt *authctxt)
  {
-       int skip_privdrop = 0;
- 
 +      clobber_stack();
 +
-       /*
-        * Hack for systems that don't support FD passing: retain privileges
-        * in the post-auth privsep process so it can allocate PTYs directly.
+       /* New socket pair */
+       monitor_reinit(pmonitor);
+ 
 @@ -1361,6 +1378,7 @@ main(int ac, char **av)
  
        mm_terminate();

Reply via email to