summaryrefslogtreecommitdiff
path: root/auth2.c
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2010-01-01 23:53:30 +0000
committerColin Watson <cjwatson@debian.org>2010-01-01 23:53:30 +0000
commitdf03186a4f9e0c2ece398b5c0571cb6263d7a752 (patch)
tree1aab079441dff9615274769b19f2d734ddf508dd /auth2.c
parent6ad6994c288662fca6949f42bf91fec2aff00bca (diff)
parent99b402ea4c8457b0a3cafff37f5b3410a8dc6476 (diff)
* New upstream release (closes: #536182). Yes, I know 5.3p1 has been out
for a while, but there's no GSSAPI patch available for it yet. - Change the default cipher order to prefer the AES CTR modes and the revised "arcfour256" mode to CBC mode ciphers that are susceptible to CPNI-957037 "Plaintext Recovery Attack Against SSH". - Add countermeasures to mitigate CPNI-957037-style attacks against the SSH protocol's use of CBC-mode ciphers. Upon detection of an invalid packet length or Message Authentication Code, ssh/sshd will continue reading up to the maximum supported packet length rather than immediately terminating the connection. This eliminates most of the known differences in behaviour that leaked information about the plaintext of injected data which formed the basis of this attack (closes: #506115, LP: #379329). - ForceCommand directive now accepts commandline arguments for the internal-sftp server (closes: #524423, LP: #362511). - Add AllowAgentForwarding to available Match keywords list (closes: #540623). - Make ssh(1) send the correct channel number for SSH2_MSG_CHANNEL_SUCCESS and SSH2_MSG_CHANNEL_FAILURE messages to avoid triggering 'Non-public channel' error messages on sshd(8) in openssh-5.1. - Avoid printing 'Non-public channel' warnings in sshd(8), since the ssh(1) has sent incorrect channel numbers since ~2004 (this reverts a behaviour introduced in openssh-5.1; closes: #496017). * Update to GSSAPI patch from http://www.sxw.org.uk/computing/patches/openssh-5.2p1-gsskex-all-20090726.patch, including cascading credentials support (LP: #416958).
Diffstat (limited to 'auth2.c')
-rw-r--r--auth2.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/auth2.c b/auth2.c
index 3849b07ab..1f6530ab7 100644
--- a/auth2.c
+++ b/auth2.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth2.c,v 1.119 2008/07/04 23:30:16 djm Exp $ */ 1/* $OpenBSD: auth2.c,v 1.120 2008/11/04 08:22:12 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * 4 *
@@ -72,6 +72,9 @@ extern Authmethod method_hostbased;
72extern Authmethod method_gsskeyex; 72extern Authmethod method_gsskeyex;
73extern Authmethod method_gssapi; 73extern Authmethod method_gssapi;
74#endif 74#endif
75#ifdef JPAKE
76extern Authmethod method_jpake;
77#endif
75 78
76Authmethod *authmethods[] = { 79Authmethod *authmethods[] = {
77 &method_none, 80 &method_none,
@@ -80,6 +83,9 @@ Authmethod *authmethods[] = {
80 &method_gsskeyex, 83 &method_gsskeyex,
81 &method_gssapi, 84 &method_gssapi,
82#endif 85#endif
86#ifdef JPAKE
87 &method_jpake,
88#endif
83 &method_passwd, 89 &method_passwd,
84 &method_kbdint, 90 &method_kbdint,
85 &method_hostbased, 91 &method_hostbased,
@@ -265,8 +271,12 @@ input_userauth_request(int type, u_int32_t seq, void *ctxt)
265 } 271 }
266 /* reset state */ 272 /* reset state */
267 auth2_challenge_stop(authctxt); 273 auth2_challenge_stop(authctxt);
274#ifdef JPAKE
275 auth2_jpake_stop(authctxt);
276#endif
268 277
269#ifdef GSSAPI 278#ifdef GSSAPI
279 /* XXX move to auth2_gssapi_stop() */
270 dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL); 280 dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
271 dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL); 281 dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL);
272#endif 282#endif
@@ -345,7 +355,6 @@ userauth_finish(Authctxt *authctxt, int authenticated, char *method)
345 } else { 355 } else {
346 356
347 /* Allow initial try of "none" auth without failure penalty */ 357 /* Allow initial try of "none" auth without failure penalty */
348 /* Don't count server configuration issues against the client */
349 if (!authctxt->server_caused_failure && 358 if (!authctxt->server_caused_failure &&
350 (authctxt->attempt > 1 || strcmp(method, "none") != 0)) 359 (authctxt->attempt > 1 || strcmp(method, "none") != 0))
351 authctxt->failures++; 360 authctxt->failures++;