Cette faille de type buffer overflow est présente dans la fonction skey_challenge(), elle n’est exploitable que si l’option SKEY est utilisée. L’exploitation réussie de cette vulnérabilité peut permettre à une personne mal intentionnée d’exécuter à distance du code de son choix et donc prendre le main sur le serveur utilisant wu-ftpd avec les privilèges liés au daemon wu-ftpd, a savoir la plus par du temps « root ».
La version affectée est Wu-FTPd version 2.6.2.
Prévenus il y a deux semaines de ce problème de sécurité, les éditeurs de wu-ftpd ne semblent toujours pas avoir réagis.
A l’heure d’aujourd’hui, il n’existe pas de correctif "officiel" proposé par l’équipe de développement de l’Université de Washington, cependant l’auteur de la découverte propose ce patch :
% diff -u ftpd.c fixed-ftpd.c
--- ftpd.c 2001-11-29 17:56:11.000000000 +0100
+++ fixed-ftpd.c 2003-10-20 20:43:58.000000000 +0200
@@ -1662,9 +1662,9 @@
/* Display s/key challenge where appropriate. */
if (pwd == NULL || skeychallenge(&skey, pwd->pw_name, sbuf))
- sprintf(buf, "Password required for %s.", name);
+ snprintf(buf, 128-1, "Password required for %s.", name);
else
- sprintf(buf, "%s %s for %s.", sbuf,
+ snprintf(buf, 128-1, "%s %s for %s.", sbuf,
pwok ? "allowed" : "required", name);
return (buf);
}
%