安全研究

安全漏洞
BNC远程缓冲区溢出漏洞

发布日期:2004-11-10
更新日期:2004-11-11

受影响系统:
BNC BNC 2.8.9
描述:
CVE(CAN) ID: CVE-2004-1052

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

浏览次数:2550
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障