new file mode 100644
@@ -0,0 +1,62 @@
+From 526fd2771342f36142099bec82c49ce0457c5016 Mon Sep 17 00:00:00 2001
+From: "djm@openbsd.org" <djm@openbsd.org>
+Date: Wed, 16 Sep 2026 00:35:09 +0000
+Subject: [PATCH] upstream: Correctly handle some options that accept "none"
+
+Some options, including AuthorizedPrincipalsFile were documented as accepting
+"none" as a way to disable them, however when overriddes by a ssh_config(5)
+Match keyword, this argument was being interpreted as a literal file.
+
+With Chris Rohlf in collaboration with Claude and Anthropic Research
+
+ok markus, deraadt
+
+OpenBSD-Commit-ID: 802f3a7695eba20924c05e500b0ecd34ec877756
+
+CVE: CVE-2026-106587
+Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/526fd2771342f36142099bec82c49ce0457c5016]
+
+Backport Changes:
+- Omitted the upstream servconf.c OpenBSD revision-only hunk and retained
+ the Wrynose OpenSSH 10.3p1 revision.
+- Adapted the fix to OpenSSH 10.3p1's manual Match-option copy routine;
+ the upstream commit uses generated option-copy helpers. Left the
+ older version's existing post-authentication cleanup in place, so
+ the CLEAR_ON_NONE macro is undefined immediately after the three
+ pre-authentication options rather than reused below.
+
+(cherry picked from commit 526fd2771342f36142099bec82c49ce0457c5016)
+Signed-off-by: Hetvi Thakar <hthakar@cisco.com>
+---
+ servconf.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/servconf.c b/servconf.c
+--- a/servconf.c
++++ b/servconf.c
+@@ -2884,6 +2884,23 @@ copy_set_server_options(ServerOptions *dst, ServerOptions *src, int preauth)
+
+ /* Arguments that accept '+...' need to be expanded */
+ assemble_algorithms(dst);
++
++ /*
++ * These options may be "none" to clear a global setting. They are
++ * consulted before authentication, so they must be cleared here
++ * rather than in the post-auth section below.
++ */
++#define CLEAR_ON_NONE(v) \
++ do { \
++ if (option_clear_or_none(v)) { \
++ free(v); \
++ v = NULL; \
++ } \
++ } while(0)
++ CLEAR_ON_NONE(dst->authorized_principals_file);
++ CLEAR_ON_NONE(dst->trusted_user_ca_keys);
++ CLEAR_ON_NONE(dst->banner);
++#undef CLEAR_ON_NONE
+
+ /*
+ * The only things that should be below this point are string options
+--
+2.43.0
@@ -38,6 +38,7 @@ SRC_URI = "https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.ta
file://CVE-2026-106586_p1.patch \
file://CVE-2026-106586_p2.patch \
file://CVE-2026-106586_p3.patch \
+ file://CVE-2026-106587.patch \
"
SRC_URI[sha256sum] = "56682a36bb92dcf4b4f016fd8ec8e74059b79a8de25c15d670d731e7d18e45f4"