public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Mattias Ellert <mattias.ellert@physics.uu.se>
To: git-commits@fedoraproject.org
Subject: [rpms/gsi-openssh] epel8: Based on openssh-8.0p1-33.el8_10
Date: Tue, 22 Sep 2026 20:01:17 GMT [thread overview]
Message-ID: <179010727732.1.14182164819778448550.rpms-gsi-openssh-d3f4c7f93c6a@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/gsi-openssh
Branch : epel8
Commit : d3f4c7f93c6ad7d7a54ec9b3793ecec11696f658
Author : Mattias Ellert <mattias.ellert@physics.uu.se>
Date : 2026-09-22T10:13:23+02:00
Stats : +244/-3 in 5 file(s)
URL : https://src.fedoraproject.org/rpms/gsi-openssh/c/d3f4c7f93c6ad7d7a54ec9b3793ecec11696f658?branch=epel8
Log:
Based on openssh-8.0p1-33.el8_10
---
diff --git a/gsi-openssh.spec b/gsi-openssh.spec
index a44f3af..435fd96 100644
--- a/gsi-openssh.spec
+++ b/gsi-openssh.spec
@@ -31,7 +31,7 @@
%global ldap 1
%global openssh_ver 8.0p1
-%global openssh_rel 19
+%global openssh_rel 20
Summary: An implementation of the SSH protocol with GSI authentication
Name: gsi-openssh
@@ -258,6 +258,12 @@ Patch1028: openssh-8.7p1-authorized-keys-principles-option.patch
# upstream 607bd871ec029e9aa22e632a22547250f3cae223
# upstream 1340d3fa8e4bb122906a82159c4c9b91584d65ce
Patch1029: openssh-8.0p1-proxyjump-username-validity-checks.patch
+# upstream 1b39f39657d2e58f8ec57341581a39bbf0be645b
+Patch1030: openssh-8.0p1-CVE-2026-59995.patch
+# upstream 8dfe7ed6e2fd988de08df508355a196b956b2753
+Patch1031: openssh-8.0p1-CVE-2026-59999.patch
+# upstream 9910d5ef53124ce1157d57bc11e222658aa41299
+Patch1032: openssh-8.0p1-CVE-2026-73282.patch
# This is the patch that adds GSI support
# Based on hpn_isshd-gsi.7.5p1b.patch from Globus upstream
@@ -457,6 +463,9 @@ gpgv2 --quiet --keyring %{SOURCE3} %{SOURCE1} %{SOURCE0}
%patch -P1027 -p1 -b .ecdsa-incomplete-application
%patch -P1028 -p1 -b .authorized-keys-principles-option
%patch -P1029 -p1 -b .proxyjump-username-validity-checks
+%patch -P1030 -p1 -b .cve-2026-59995
+%patch -P1031 -p1 -b .cve-2026-59999
+%patch -P1032 -p1 -b .CVE-2026-73282
%patch -P98 -p1 -b .gsi
%patch -P99 -p1 -b .hpn
@@ -659,6 +668,9 @@ getent passwd sshd >/dev/null || \
%attr(0644,root,root) %{_tmpfilesdir}/gsissh.conf
%changelog
+* Tue Sep 22 2026 Mattias Ellert <mattias.ellert@physics.uu.se> - 8.0p1-20
+- Based on openssh-8.0p1-33.el8_10
+
* Thu Jul 09 2026 Mattias Ellert <mattias.ellert@physics.uu.se> - 8.0p1-19
- Based on openssh-8.0p1-30.el8_10
diff --git a/openssh-8.0p1-CVE-2026-59995.patch b/openssh-8.0p1-CVE-2026-59995.patch
new file mode 100644
index 0000000..d7d02d9
--- /dev/null
+++ b/openssh-8.0p1-CVE-2026-59995.patch
@@ -0,0 +1,33 @@
+From 3860783959126ee4c01fabb0ae11522b1df86efb Mon Sep 17 00:00:00 2001
+From: "djm@openbsd.org" <djm@openbsd.org>
+Date: Mon, 29 Jun 2026 01:47:21 +0000
+Subject: [PATCH] upstream: avoid download to server-controlled path when
+ performing
+
+download on the commandline. From Swival scanner
+
+OpenBSD-Commit-ID: d1b2c44305fdfe6d51eed9ecc727e59478bf311f
+---
+ sftp.c | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/sftp.c b/sftp.c
+index be901f5..8b7b799 100644
+--- a/sftp.c
++++ b/sftp.c
+@@ -2226,13 +2226,8 @@ interactive_loop(struct sftp_conn *conn, char *file1, char *file2)
+ return (-1);
+ }
+ } else {
+- /* XXX this is wrong wrt quoting */
+- snprintf(cmd, sizeof cmd, "get%s %s%s%s",
+- global_aflag ? " -a" : "", dir,
+- file2 == NULL ? "" : " ",
+- file2 == NULL ? "" : file2);
+- err = parse_dispatch_command(conn, cmd,
+- &remote_path, startdir, 1, 0);
++ err = process_get(conn, dir, file2, remote_path, 0, 0,
++ global_aflag, 0);
+ free(dir);
+ free(startdir);
+ free(remote_path);
diff --git a/openssh-8.0p1-CVE-2026-59999.patch b/openssh-8.0p1-CVE-2026-59999.patch
new file mode 100644
index 0000000..5b59a79
--- /dev/null
+++ b/openssh-8.0p1-CVE-2026-59999.patch
@@ -0,0 +1,28 @@
+From 5aace1d332f0f74e7a993f04f9ab4449d6a44cb1 Mon Sep 17 00:00:00 2001
+From: "djm@openbsd.org" <djm@openbsd.org>
+Date: Sun, 31 May 2026 04:47:29 +0000
+Subject: [PATCH] upstream: DisableForwarding=yes didn't override
+ PermitTunnel=yes
+
+Reported independently by Huzaifa Sidhpurwala of Redhat and Marko
+Jevtic; ok markus@
+
+OpenBSD-Commit-ID: b5c13f0746cf079b21f8deba47407fad49ccbf4c
+---
+ serverloop.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/serverloop.c b/serverloop.c
+index a0df04e..8838ef1 100644
+--- a/serverloop.c
++++ b/serverloop.c
+@@ -585,7 +585,8 @@ server_request_tun(struct ssh *ssh)
+ ssh_packet_send_debug(ssh, "Unsupported tunnel device mode.");
+ return NULL;
+ }
+- if ((options.permit_tun & mode) == 0) {
++ if ((options.permit_tun & mode) == 0 || options.disable_forwarding ||
++ auth_opts->restricted) {
+ ssh_packet_send_debug(ssh, "Server has rejected tunnel device "
+ "forwarding");
+ return NULL;
diff --git a/openssh-8.0p1-CVE-2026-73282.patch b/openssh-8.0p1-CVE-2026-73282.patch
new file mode 100644
index 0000000..12afab8
--- /dev/null
+++ b/openssh-8.0p1-CVE-2026-73282.patch
@@ -0,0 +1,51 @@
+diff --color -ruNp a/ssh.c b/ssh.c
+--- a/ssh.c 2026-08-25 15:38:18.115917218 +0200
++++ b/ssh.c 2026-08-25 15:44:36.797255562 +0200
+@@ -1629,14 +1629,24 @@ fork_postauth(void)
+ fatal("daemon() failed: %.200s", strerror(errno));
+ }
+
++struct rfwd_confirm_ctx {
++ int fid;
++};
++
+ /* Callback for remote forward global requests */
+ static void
+ ssh_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt)
+ {
+- struct Forward *rfwd = (struct Forward *)ctxt;
++ struct rfwd_confirm_ctx *rctx = (struct rfwd_confirm_ctx *)ctxt;
++ struct Forward *rfwd;
+ u_int port;
+ int r;
+
++ if (rctx->fid < 0 || rctx->fid >= options.num_remote_forwards)
++ fatal("%s: invalid forwarding ID %d", __func__, rctx->fid);
++ rfwd = &options.remote_forwards[rctx->fid];
++ freezero(rctx, sizeof(*rctx));
++
+ /* XXX verbose() on failure? */
+ debug("remote forward %s for: listen %s%s%d, connect %s:%d",
+ type == SSH2_MSG_REQUEST_SUCCESS ? "success" : "failure",
+@@ -1762,6 +1772,8 @@ ssh_init_forwarding(struct ssh *ssh, cha
+
+ /* Initiate remote TCP/IP port forwardings. */
+ for (i = 0; i < options.num_remote_forwards; i++) {
++ struct rfwd_confirm_ctx *rctx;
++
+ debug("Remote connections from %.200s:%d forwarded to "
+ "local address %.200s:%d",
+ (options.remote_forwards[i].listen_path != NULL) ?
+@@ -1783,9 +1795,10 @@ ssh_init_forwarding(struct ssh *ssh, cha
+ logit("Warning: Could not request remote "
+ "forwarding.");
+ } else {
++ rctx = xcalloc(1, sizeof(*rctx));
++ rctx->fid = i;
+ client_register_global_confirm(
+- ssh_confirm_remote_forward,
+- &options.remote_forwards[i]);
++ ssh_confirm_remote_forward, rctx);
+ }
+ }
+
diff --git a/openssh-9.3p1-upstream-cve-2023-38408.patch b/openssh-9.3p1-upstream-cve-2023-38408.patch
index 5632ba1..d6498b1 100644
--- a/openssh-9.3p1-upstream-cve-2023-38408.patch
+++ b/openssh-9.3p1-upstream-cve-2023-38408.patch
@@ -1,8 +1,125 @@
+diff --git a/misc.c b/misc.c
+index e77b869be4e6..253ecd5bd3d0 100644
+--- a/misc.c
++++ b/misc.c
+@@ -22,6 +22,7 @@
+
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
++#include <sys/mman.h>
+ #include <sys/socket.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+@@ -35,6 +36,9 @@
+ # include <libgen.h>
+ #endif
+ #include <poll.h>
++#ifdef HAVE_NLIST_H
++#include <nlist.h>
++#endif
+ #include <signal.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -2920,3 +2924,75 @@ ptimeout_isset(struct timespec *pt)
+ {
+ return (*path == '/') ? 1 : 0;
+ }
++
++/*
++ * Returns zero if the library at 'path' contains symbol 's', nonzero
++ * otherwise.
++ */
++int
++lib_contains_symbol(const char *path, const char *s)
++{
++#ifdef HAVE_NLIST_H
++ struct nlist nl[2];
++ int ret = -1, r;
++
++ memset(nl, 0, sizeof(nl));
++ nl[0].n_name = xstrdup(s);
++ nl[1].n_name = NULL;
++ if ((r = nlist(path, nl)) == -1) {
++ error("lib_contains_symbol: nlist failed for %s", path);
++ goto out;
++ }
++ if (r != 0 || nl[0].n_value == 0 || nl[0].n_type == 0) {
++ error("lib_contains_symbol: library %s does not contain symbol %s", path, s);
++ goto out;
++ }
++ /* success */
++ ret = 0;
++ out:
++ free(nl[0].n_name);
++ return ret;
++#else /* HAVE_NLIST_H */
++ int fd, ret = -1;
++ struct stat st;
++ void *m = NULL;
++ size_t sz = 0;
++
++ memset(&st, 0, sizeof(st));
++ if ((fd = open(path, O_RDONLY)) < 0) {
++ error("lib_contains_symbol: open %s: %s", path, strerror(errno));
++ return -1;
++ }
++ if (fstat(fd, &st) != 0) {
++ error("lib_contains_symbol: fstat %s: %s", path, strerror(errno));
++ goto out;
++ }
++ if (!S_ISREG(st.st_mode)) {
++ error("lib_contains_symbol: %s is not a regular file", path);
++ goto out;
++ }
++ if (st.st_size < 0 ||
++ (size_t)st.st_size < strlen(s) ||
++ st.st_size >= INT_MAX/2) {
++ error("lib_contains_symbol: %s bad size %lld", path, (long long)st.st_size);
++ goto out;
++ }
++ sz = (size_t)st.st_size;
++ if ((m = mmap(NULL, sz, PROT_READ, MAP_PRIVATE, fd, 0)) == MAP_FAILED ||
++ m == NULL) {
++ error("lib_contains_symbol: mmap %s: %s", path, strerror(errno));
++ goto out;
++ }
++ if (memmem(m, sz, s, strlen(s)) == NULL) {
++ error("lib_contains_symbol: %s does not contain expected string %s", path, s);
++ goto out;
++ }
++ /* success */
++ ret = 0;
++ out:
++ if (m != NULL && m != MAP_FAILED)
++ munmap(m, sz);
++ close(fd);
++ return ret;
++#endif /* HAVE_NLIST_H */
++}
+diff --git a/misc.h b/misc.h
+index 07408ca13c45..fd77a7fd7273 100644
+--- a/misc.h
++++ b/misc.h
+@@ -96,6 +96,7 @@ int parse_absolute_time(const char *, uint64_t *);
+ int parse_absolute_time(const char *, uint64_t *);
+ void format_absolute_time(uint64_t, char *, size_t);
+ int path_absolute(const char *);
++int lib_contains_symbol(const char *, const char *);
+
+ void sock_set_v6only(int);
+
diff --git a/ssh-pkcs11.c b/ssh-pkcs11.c
-index 6be647ec..ebddf6c3 100644
+index 0b51e7753882..8e2b9cb97310 100644
--- a/ssh-pkcs11.c
+++ b/ssh-pkcs11.c
-@@ -1537,10 +1537,8 @@ pkcs11_register_provider(char *provider_id, char *pin,
+@@ -1532,15 +1532,15 @@ pkcs11_register_provider(char *provider_id, char *pin,
+ m->refcount++;
+ }
+
++ if (lib_contains_symbol(provider_module, "C_GetFunctionList") != 0)
++ fatal("provider %s is not a PKCS11 library", provider_module);
+ /* open shared pkcs11-library */
+ if ((handle = dlopen(provider_module, RTLD_NOW)) == NULL) {
error("dlopen %s failed: %s", provider_module, dlerror());
goto fail;
}
reply other threads:[~2026-09-22 20:01 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=179010727732.1.14182164819778448550.rpms-gsi-openssh-d3f4c7f93c6a@fedoraproject.org \
--to=mattias.ellert@physics.uu.se \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox