upstream: Remove the SSH_OLD_SESSIONID bug compatibility bit. It

was only set for SecureCRT 3.0 and SecureFX 1.7.  Both date back to some time
prior to 2002 (vandyke's release history only goes back to 2002, and these
releases predate that).

Prompted by rhowe425@gmail.com via bz#4030, ok markus@

OpenBSD-Commit-ID: 31a08831b953c711a97c230701248bf4428d34c8
This commit is contained in:
dtucker@openbsd.org authored and Damien Miller committed 2026-10-13 15:41:54 +11:00
1 parent 73c1399eb4
commit 9da385e244
5 files changed
+18 -41

No files matched your search

+4 -9
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: auth2-pubkey.c,v 1.131 2026/10/01 02:01:51 djm Exp $ */
/* $OpenBSD: auth2-pubkey.c,v 1.132 2026/10/11 20:41:20 dtucker Exp $ */
/*
* Copyright (c) 2000 Markus Friedl. All rights reserved.
* Copyright (c) 2010 Damien Miller. All rights reserved.
@@ -210,14 +210,9 @@ userauth_pubkey(struct ssh *ssh, const char *method)
fatal_fr(r, "parse signature packet");
if ((b = sshbuf_new()) == NULL)
fatal_f("sshbuf_new failed");
if (ssh->compat & SSH_OLD_SESSIONID) {
if ((r = sshbuf_putb(b, ssh->kex->session_id)) != 0)
fatal_fr(r, "put old session id");
} else {
if ((r = sshbuf_put_stringb(b,
ssh->kex->session_id)) != 0)
fatal_fr(r, "put session id");
}
if ((r = sshbuf_put_stringb(b,
ssh->kex->session_id)) != 0)
fatal_fr(r, "put session id");
if (!authctxt->valid || authctxt->user == NULL) {
debug2_f("disabled because of invalid user");
goto done;
+1 -3
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: compat.c,v 1.128 2026/03/02 02:40:15 djm Exp $ */
/* $OpenBSD: compat.c,v 1.129 2026/10/11 20:41:20 dtucker Exp $ */
/*
* Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved.
*
@@ -74,8 +74,6 @@ compat_banner(struct ssh *ssh, const char *version)
{ "OpenSSH*", SSH_NEW_OPENSSH },
{ "*MindTerm*", 0 },
{ "3.0.*", SSH_BUG_DEBUG },
{ "3.0 SecureCRT*", SSH_OLD_SESSIONID },
{ "1.7 SecureFX*", SSH_OLD_SESSIONID },
{ "Cisco-1.*", SSH_BUG_DHGEX_LARGE|
SSH_BUG_HOSTKEYS },
{ "*SSH_Version_Mapper*",
+2 -2
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: compat.h,v 1.62 2023/03/06 12:14:48 dtucker Exp $ */
/* $OpenBSD: compat.h,v 1.63 2026/10/11 20:41:20 dtucker Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved.
@@ -31,7 +31,7 @@
#define SSH_BUG_SIGTYPE 0x00000002
#define SSH_BUG_SIGTYPE74 0x00000004
/* #define unused 0x00000008 */
#define SSH_OLD_SESSIONID 0x00000010
/* #define unused 0x00000010 */
/* #define unused 0x00000020 */
#define SSH_BUG_DEBUG 0x00000040
/* #define unused 0x00000080 */
+7 -18
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: monitor.c,v 1.259 2026/09/16 00:37:07 djm Exp $ */
/* $OpenBSD: monitor.c,v 1.260 2026/10/11 20:41:20 dtucker Exp $ */
/*
* Copyright 2002 Niels Provos <provos@citi.umich.edu>
* Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -1386,23 +1386,12 @@ monitor_valid_userblob(struct ssh *ssh, const u_char *data, u_int datalen)
if ((b = sshbuf_from(data, datalen)) == NULL)
fatal_f("sshbuf_from");
if (ssh->compat & SSH_OLD_SESSIONID) {
p = sshbuf_ptr(b);
len = sshbuf_len(b);
if ((session_id2 == NULL) ||
(len < session_id2_len) ||
(timingsafe_bcmp(p, session_id2, session_id2_len) != 0))
fail++;
if ((r = sshbuf_consume(b, session_id2_len)) != 0)
fatal_fr(r, "consume");
} else {
if ((r = sshbuf_get_string_direct(b, &p, &len)) != 0)
fatal_fr(r, "parse sessionid");
if ((session_id2 == NULL) ||
(len != session_id2_len) ||
(timingsafe_bcmp(p, session_id2, session_id2_len) != 0))
fail++;
}
if ((r = sshbuf_get_string_direct(b, &p, &len)) != 0)
fatal_fr(r, "parse sessionid");
if ((session_id2 == NULL) ||
(len != session_id2_len) ||
(timingsafe_bcmp(p, session_id2, session_id2_len) != 0))
fail++;
if ((r = sshbuf_get_u8(b, &type)) != 0)
fatal_fr(r, "parse type");
if (type != SSH2_MSG_USERAUTH_REQUEST)
+4 -9
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: sshconnect2.c,v 1.394 2026/09/16 00:31:27 djm Exp $ */
/* $OpenBSD: sshconnect2.c,v 1.395 2026/10/11 20:41:20 dtucker Exp $ */
/*
* Copyright (c) 2000 Markus Friedl. All rights reserved.
* Copyright (c) 2008 Damien Miller. All rights reserved.
@@ -1410,14 +1410,9 @@ sign_and_send_pubkey(struct ssh *ssh, Identity *id)
sshbuf_free(b);
if ((b = sshbuf_new()) == NULL)
fatal_f("sshbuf_new failed");
if (ssh->compat & SSH_OLD_SESSIONID) {
if ((r = sshbuf_putb(b, ssh->kex->session_id)) != 0)
fatal_fr(r, "sshbuf_putb");
} else {
if ((r = sshbuf_put_stringb(b,
ssh->kex->session_id)) != 0)
fatal_fr(r, "sshbuf_put_stringb");
}
if ((r = sshbuf_put_stringb(b,
ssh->kex->session_id)) != 0)
fatal_fr(r, "sshbuf_put_stringb");
skip = sshbuf_len(b);
if ((r = sshbuf_put_u8(b, SSH2_MSG_USERAUTH_REQUEST)) != 0 ||
(r = sshbuf_put_cstring(b, authctxt->server_user)) != 0 ||