COMMAND
OpenSSH
SYSTEMS AFFECTED
All versions of OpenSSH prior to 2.3.0 are affected.
PROBLEM
Markus Friedl found following. If agent or X11 forwarding is
disabled in the ssh client configuration, the client does not
request these features during session setup. This is the correct
behaviour.
However, when the ssh client receives an actual request asking
for access to the ssh-agent, the client fails to check whether
this feature has been negotiated during session setup. The
client does not check whether the request is in compliance with
the client configuration and grants access to the ssh-agent. A
similar problem exists in the X11 forwarding implementation.
Hostile servers can access your X11 display or your ssh-agent.
SOLUTION
Clear both the $DISPLAY and the $SSH_AUTH_SOCK variable before
connecting to untrusted hosts:
% unset SSH_AUTH_SOCK; unset DISPLAY; ssh host
Upgrade to OpenSSH-2.3.0 or apply the attached patch.
OpenSSH-2.3.0 is available from www.openssh.com.
Patch against openssh-2.2.0:
--- /openssh-2.2.0/clientloop.c Sun Aug 20 00:21:19 2000
+++ ssh/clientloop.c Fri Nov 10 13:54:42 2000
@@ -32,6 +32,8 @@
#include "buffer.h"
#include "bufaux.h"
+extern Options options;
+
/* Flag indicating that stdin should be redirected from /dev/null. */
extern int stdin_null_flag;
@@ -750,7 +752,6 @@
int
client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id)
{
- extern Options options;
double start_time, total_time;
int len;
char buf[100];
@@ -993,7 +994,7 @@
debug("client_input_channel_open: ctype %s rchan %d win %d max %d",
ctype, rchan, rwindow, rmaxpack);
- if (strcmp(ctype, "x11") == 0) {
+ if (strcmp(ctype, "x11") == 0 && options.forward_x11) {
int sock;
char *originator;
int originator_port;
@@ -1066,11 +1067,14 @@
dispatch_set(SSH_MSG_CHANNEL_OPEN_CONFIRMATION, &channel_input_open_confirmation);
dispatch_set(SSH_MSG_CHANNEL_OPEN_FAILURE, &channel_input_open_failure);
dispatch_set(SSH_MSG_PORT_OPEN, &channel_input_port_open);
- dispatch_set(SSH_SMSG_AGENT_OPEN, &auth_input_open_request);
dispatch_set(SSH_SMSG_EXITSTATUS, &client_input_exit_status);
dispatch_set(SSH_SMSG_STDERR_DATA, &client_input_stderr_data);
dispatch_set(SSH_SMSG_STDOUT_DATA, &client_input_stdout_data);
- dispatch_set(SSH_SMSG_X11_OPEN, &x11_input_open);
+
+ dispatch_set(SSH_SMSG_AGENT_OPEN, options.forward_agent ?
+ &auth_input_open_request : NULL);
+ dispatch_set(SSH_SMSG_X11_OPEN, options.forward_x11 ?
+ &x11_input_open : NULL);
}
void
client_init_dispatch_15()
For Linux-Mandrake:
Linux-Mandrake 7.0: 7.0/RPMS/openssh-2.3.0p1-7.3mdk.i586.rpm
7.0/RPMS/openssh-askpass-2.3.0p1-7.3mdk.i586.rpm
7.0/RPMS/openssh-askpass-gnome-2.3.0p1-7.3mdk.i586.rpm
7.0/RPMS/openssh-clients-2.3.0p1-7.3mdk.i586.rpm
7.0/RPMS/openssh-server-2.3.0p1-7.3mdk.i586.rpm
7.0/SRPMS/openssh-2.3.0p1-7.3mdk.src.rpm
Linux-Mandrake 7.1: 7.1/RPMS/openssh-2.3.0p1-7.3mdk.i586.rpm
7.1/RPMS/openssh-askpass-2.3.0p1-7.3mdk.i586.rpm
7.1/RPMS/openssh-askpass-gnome-2.3.0p1-7.3mdk.i586.rpm
7.1/RPMS/openssh-clients-2.3.0p1-7.3mdk.i586.rpm
7.1/RPMS/openssh-server-2.3.0p1-7.3mdk.i586.rpm
7.1/SRPMS/openssh-2.3.0p1-7.3mdk.src.rpm
Linux-Mandrake 7.2: 7.2/RPMS/openssh-2.3.0p1-7.1mdk.i586.rpm
7.2/RPMS/openssh-askpass-2.3.0p1-7.1mdk.i586.rpm
7.2/RPMS/openssh-askpass-gnome-2.3.0p1-7.1mdk.i586.rpm
7.2/RPMS/openssh-clients-2.3.0p1-7.1mdk.i586.rpm
7.2/RPMS/openssh-server-2.3.0p1-7.1mdk.i586.rpm
7.2/SRPMS/openssh-2.3.0p1-7.1mdk.src.rpm
For Trustix:
openssh-2.3.0p1-1tr.i586.rpm
openssh-clients-2.3.0p1-1tr.i586.rpm
openssh-server-2.3.0p1-1tr.i586.rpm
http://www.trustix.net/download/Trustix/updates/1.1/RPMS/
ftp://ftp.trustix.com/pub/Trustix/updates/1.1/RPMS/
For SuSE Linux:
ftp://ftp.suse.de/pub/suse/i386/update/7.0/sec1/openssh-2.3.0p1-0.i386.rpm
ftp://ftp.suse.de/pub/suse/i386/update/7.0/zq1/openssh-2.3.0p1-0.src.rpm
ftp://ftp.suse.de/pub/suse/i386/update/6.4/sec1/openssh-2.3.0p1-0.i386.rpm
ftp://ftp.suse.de/pub/suse/i386/update/6.4/zq1/openssh-2.3.0p1-0.src.rpm
ftp://ftp.suse.de/pub/suse/i386/update/6.3/sec1/openssh-2.3.0p1-0.i386.rpm
ftp://ftp.suse.de/pub/suse/i386/update/6.3/zq1/openssh-2.3.0p1-0.src.rpm
ftp://ftp.suse.de/pub/suse/sparc/update/7.0/sec1/openssh-2.3.0p1-0.sparc.rpm
ftp://ftp.suse.de/pub/suse/sparc/update/7.0/zq1/openssh-2.3.0p1-0.src.rpm
ftp://ftp.suse.de/pub/suse/axp/update/7.0/sec1/openssh-2.3.0p1-0.alpha.rpm
ftp://ftp.suse.de/pub/suse/axp/update/7.0/zq1/openssh-2.3.0p1-0.src.rpm
ftp://ftp.suse.de/pub/suse/axp/update/6.4/sec1/openssh-2.3.0p1-0.alpha.rpm
ftp://ftp.suse.de/pub/suse/axp/update/6.4/zq1/openssh-2.3.0p1-0.src.rpm
ftp://ftp.suse.de/pub/suse/ppc/update/7.0/sec1/openssh-2.3.0p1-0.ppc.rpm
ftp://ftp.suse.de/pub/suse/ppc/update/7.0/zq1/openssh-2.3.0p1-0.src.rpm
ftp://ftp.suse.de/pub/suse/ppc/update/6.4/sec1/openssh-2.3.0p1-0.ppc.rpm
ftp://ftp.suse.de/pub/suse/ppc/update/6.4/zq1/openssh-2.3.0p1-0.src.rpm
For Conectiva Linux:
ftp://atualizacoes.conectiva.com.br/6.0/SRPMS/openssh-2.3.0p1-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/6.0/RPMS/openssh-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/6.0/RPMS/openssh-askpass-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/6.0/RPMS/openssh-askpass-gnome-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/6.0/RPMS/openssh-clients-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/6.0/RPMS/openssh-server-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.0/SRPMS/openssh-2.3.0p1-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/5.0/i386/openssh-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.0/i386/openssh-server-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.0/i386/openssh-clients-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.0/i386/openssh-askpass-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.0/i386/openssh-askpass-gnome-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.1/SRPMS/openssh-2.3.0p1-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/5.1/i386/openssh-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.1/i386/openssh-server-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.1/i386/openssh-clients-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.1/i386/openssh-askpass-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.1/i386/openssh-askpass-gnome-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/ecommerce/SRPMS/openssh-2.3.0p1-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/ecommerce/i386/openssh-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/ecommerce/i386/openssh-server-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/ecommerce/i386/openssh-clients-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/ecommerce/i386/openssh-askpass-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/ecommerce/i386/openssh-askpass-gnome-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/graficas/SRPMS/openssh-2.3.0p1-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/graficas/i386/openssh-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/graficas/i386/openssh-server-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/graficas/i386/openssh-clients-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/graficas/i386/openssh-askpass-2.3.0p1-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/ferramentas/graficas/i386/openssh-askpass-gnome-2.3.0p1-1cl.i386.rpm
For RedHat:
ftp://updates.redhat.com/7.0/i386/openssh-2.3.0p1-4.i386.rpm
ftp://updates.redhat.com/7.0/i386/openssh-clients-2.3.0p1-4.i386.rpm
ftp://updates.redhat.com/7.0/i386/openssh-server-2.3.0p1-4.i386.rpm
ftp://updates.redhat.com/7.0/i386/openssh-askpass-2.3.0p1-4.i386.rpm
ftp://updates.redhat.com/7.0/i386/openssh-askpass-gnome-2.3.0p1-4.i386.rpm
ftp://updates.redhat.com/7.0/SRPMS/openssh-2.3.0p1-4.src.rpm
For FreeBSD:
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/security/openssh-2.2.0.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/security/openssh-2.2.0.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/alpha/packages-4-stable/security/openssh-2.2.0.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/security/openssh-2.2.0.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/alpha/packages-5-current/security/openssh-2.2.0.tgz