漏 洞 描 述:
wu-ftpd的S/
key授权机制存在一个
安全漏洞:当一个用户登录时,会导致
缓存溢出。
以下是
测试程序
-- ftpd.c --
#if defined(SKEY) && !defined(__NetBSD__)
[...]
/* skey_challenge - additional
password prompt stuff */
char *skey_challenge(char *name,
struct passwd *pwd, int pwok)
{
static char buf[128];
char sbuf[40];
struct skey skey;
/*
Display s/key challenge
where appropriate. */
if (pwd ==
NULL || skeychallenge(&skey, pwd-$#@62;pw_name,
sbuf))
sprintf(buf, "Password required for %s.", name);
else
sprintf(buf, "%s %s for %s.", sbuf,
pwok ? "allowed" : "required", name);
return (buf);
}
#endif
这个缓存(buf,长度为128 bytes)存在堆积
溢出,它能重写内存块。这个漏洞不影响那些没有配置S/KEY支持的
FTPD。