zkfingerd say()格式化字符串漏洞发布时间:2002-12-16 更新时间:2002-12-23 严重程度:中 威胁程度:远程拒绝服务 错误类型:输入验证错误 利用方式:服务器模式 BUGTRAQ ID:6404 受影响系统 zkfingerd 0.9.1详细描述 zkfingerd存在格式化字符串漏洞。say()函数在显示用户输入的时候没有正确检查,攻击者可以通过这个漏洞重新写入缓冲区,并且能够执行代码提升权限。 void say(char *fmt, ...) { va_list ap; va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); printf("\r\n"); fflush(stdout); return; } 当say()被调用的时候,第一个参数不是格式化字符但是输入由远程用户控制,这样的还有在file_list()函数: if(S_ISDIR(st.st_mode)) { char *y, *z; files++; z = xmalloc(strlen(de->d_name) + 2); strcpy(z, de->d_name); strcat(z, "/"); x = xmalloc(32 + strlen(de->d_name)); y = my_ctime(st.st_mtime); sprintf(x, "\t%-12s\t%s\t-- DIR --", z, y); say(x); xfree(x); xfree(y); xfree(z); continue; } 测试代码 尚无 解决方案 使用补丁 http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/zkfingerd/zkfingerd/src/ 相关信息 相关连接: zkfingerd 0.9.1 format string vulnerabilities (#NISR16122002A) http://online.securityfocus.com/archive/1/303557 zkfingerd Home Page http://sourceforge.net/projects/zkfingerd |