sábado, 19 de enero de 2002

Vulnerabilidad en STUNNEL

Una vulnerabilidad en "stunnel" permite que un servidor malicioso
ejecute código arbitrario en la máquina cliente del usuario.
"stunnel" es una herramienta, con un componente cliente y otro
componente servidor, que permite la negociación y el establecimiento de
conexiones SSL, para canalizar a través suya la comunicación entre
clientes y servidores que no soportan SSL.

Las versiones de "stunnel" previas a la 3.22 contienen un error en las
cadenas de formato que permite que un servidor malicioso envíe una
cadena especialmente formateada al cliente y éste la ejecute de forma
local, con los privilegios que esté utilizando el cliente "stunnel".

Se recomienda a todos los usuarios de "stunnel" que actualicen cuanto
antes a la versión 3.22. Si no es posible realizar la actualización,
gracias a ser "open source", los clientes pueden aplicar el siguiente
parche:



- --- protocol_original.c Tue Dec 18 15:01:24 2001
+++ protocol.c Tue Dec 18 15:02:10 2001
@@ -103,7 +103,7 @@
do { /* Copy multiline greeting */
if(fdscanf(c->remote_fd, "%[^\n]", line)<0)
return -1;
- - if(fdprintf(c->local_wfd, line)<0)
+ if(fdprintf(c->local_wfd, "%s", line)<0)
return -1;
} while(strncmp(line,"220-",4)==0);

@@ -169,7 +169,7 @@
log(LOG_ERR, "Unknown server welcome");
return -1;
}
- - if(fdprintf(c->local_wfd, line)<0)
+ if(fdprintf(c->local_wfd, "%s", line)<0)
return -1;
if(fdprintf(c->remote_fd, "STLS")<0)
return -1;
@@ -216,7 +216,7 @@
log(LOG_ERR, "Unknown server welcome");
return -1;
}
- - if(fdprintf(c->local_wfd, line)<0)
+ if(fdprintf(c->local_wfd, "%s", line)<0)
return -1;
if(fdprintf(c->remote_fd, "STARTTLS")<0)
return -1;






Jesús Cea Avión
jcea@hispasec.com


Más información:

stunnel: multiplatform SSL tunneling proxy
http://stunnel.mirt.net/

stunnel.org
http://www.stunnel.org/

There is a format string vulnerability in stunnel.
http://www.linuxsecurity.com/advisories/other_advisory-1769.html