BNC远程缓冲区溢出漏洞
发布日期:2004-11-10
更新日期:2004-11-11
受影响系统:
BNC BNC 2.8.9描述:
BNC是一款IRC代理服务程序。
BNC在处理IRC服务器应答时存在缓冲区溢出问题,远程攻击者可以利用这个漏洞可能以BNC进程权限在系统上执行任意指令。
问题存在于getnickuserhost()函数中:
----------------
int getnickuserhost(char **argv,char *buf,char *fix)
{
int p,c;
c=0;
argv[0]=buf;
for(p=0;buf[p];p )
{
if(buf[p] == '!')
{
buf[p]='\0';
fix[c ]='!';
argv[1]=&buf[p 1];
}
if(buf[p] == '@')
{
buf[p]='\0';
fix[c ]='@';
argv[2]=&buf[p 1];
}
}
return c;
}
----------------
'buf'指向512 1字节静态缓冲区来包含服务器应答,然后'fix'指向3字节栈缓冲区,如果 '!'或'@'字符包含在服务器应答中,它就写入到'fix'中,不过由于程序对'!'或'@'字符的限制不充分,可造成缓冲区溢出,精心构建提交数据可能以BNC进程权限在系统上执行任意指令。
<*来源:Leon Juranic (ljuranic@LSS.hr)
链接:http://security.lss.hr/en/index.php?page=details&ID=LSS-2004-11-03
*>
建议:
厂商补丁:
BNC
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载bnc2.9.1版本:
http://www.gotbnc.com/files/bnc2.9.1.tar.gz
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



