Solaris是一款SUN公司分发和维护的商业性质的操作系统,其中rarpd是一款中小型网络的反向arp解析协议守护程序。 in.rarpd对用户提交的输入缺少正确充分的检查,可导致远程或者本地攻击者进行权限提升攻击。 根据报告,in.rarpd存在3个可利用的远程缓冲区溢出,2个本地缓冲区溢出和2个格式化串漏洞。 在error和syserr函数中包含2个通用的syslog调用,其中没有检查格式字符串内容,可导致攻击者用于权限提升: static void syserr(s) char *s; { char buf[256]; (void) sprintf(buf, \"\\%s: \\%s\", s, strerror(errno)); (void) fprintf(stderr, \"\\%s: \\%s\n\", cmdname, buf); syslog(LOG_ERR, buf); exit(1); } /* VARARGS1 */ static void error(char *fmt, ...) { char buf[256]; va_list ap; va_start(ap, fmt); (void) vsprintf(buf, fmt, ap); va_end(ap); (void) fprintf(stderr, \"\\%s: \\%s\n\", cmdname, buf); syslog(LOG_ERR, buf); exit(1); } Sun Microsystems声称攻击者不能利用这些漏洞进行攻击,因为传递给处理的程序不能由外部提供。而且由于ARP包没有IP头和路由,所以攻击者必须在本地子网进行利用。不过仍旧建议管理员关闭或者限制对此服务的访问。
Solaris是一款SUN公司分发和维护的商业性质的操作系统,其中rarpd是一款中小型网络的反向arp解析协议守护程序。 in.rarpd对用户提交的输入缺少正确充分的检查,可导致远程或者本地攻击者进行权限提升攻击。 根据报告,in.rarpd存在3个可利用的远程缓冲区溢出,2个本地缓冲区溢出和2个格式化串漏洞。 在error和syserr函数中包含2个通用的syslog调用,其中没有检查格式字符串内容,可导致攻击者用于权限提升: static void syserr(s) char *s; { char buf[256]; (void) sprintf(buf, \"\\%s: \\%s\", s, strerror(errno)); (void) fprintf(stderr, \"\\%s: \\%s\n\", cmdname, buf); syslog(LOG_ERR, buf); exit(1); } /* VARARGS1 */ static void error(char *fmt, ...) { char buf[256]; va_list ap; va_start(ap, fmt); (void) vsprintf(buf, fmt, ap); va_end(ap); (void) fprintf(stderr, \"\\%s: \\%s\n\", cmdname, buf); syslog(LOG_ERR, buf); exit(1); } Sun Microsystems声称攻击者不能利用这些漏洞进行攻击,因为传递给处理的程序不能由外部提供。而且由于ARP包没有IP头和路由,所以攻击者必须在本地子网进行利用。不过仍旧建议管理员关闭或者限制对此服务的访问。