涉及程序:
efingerd
描述:
efingerd 远程缓冲区溢出漏洞和 nobody 用户权限泄露漏洞
详细:
efingerd 是一个 finger 守护进程,管理员能完全控制它给出的 finger 信息。
但是发现它存在漏洞:
1) 远程缓冲区溢出漏洞
通过一段逆向查询代码,远程攻击者可能导致 Debian Linux 稳定版发生缓冲区溢出漏洞
static char *lookup_addr (struct in_addr in)
{
static char addr[100];
struct hostent *he;
if (resolve_addr) {
he = gethostbyaddr ((char *)&in, sizeof(struct
in_addr),AF_INET);
if (he == NULL)
strcpy(addr, inet_ntoa(in));
else
strcpy(addr, he->h_name);
}
else
strcpy (addr, inet_ntoa (in));
return addr;
}
2)非法获取 nobody 权限漏洞
当一个合法用户被 finger 时,efingerd 会在该用户家目录下面寻找一个 .efingerd 文件。如果存在该文件,efingerd 守护进程会试图以 nobody 身份执行它。然后 .efingerd 的输出被返回给 fingerer。
网管网www_bitscn_com
因此一个本地用户通过建立一个 .efingerd 文件,然后自己 finger 它,将能得到一个 nobody/nobody 的 shell。
注意:该功能通过 -u 选项能被关闭。
受影响系统:
Debian Linux distributes versions 1.3 (stable) and 1.6.1 (unstable)
解决方案:
尚无,CNNS建议用户关闭不需要的服务或采用不受影响版本