xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

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