LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 477|回复: 0

DeleGate SSLway Filter 远程堆栈缓冲区溢出漏洞

[复制链接]
发表于 2004-5-16 20:52:46 | 显示全部楼层 |阅读模式
bj.cyberpolice.cn 2004-5-14 15:12:00

受影响系统:

DeleGate DeleGate 8.9.2
DeleGate DeleGate 8.9.1
DeleGate DeleGate 8.9
DeleGate DeleGate 8.5.0
DeleGate DeleGate 8.4.0
DeleGate DeleGate 8.3.4
DeleGate DeleGate 8.3.3
DeleGate DeleGate 7.9.11
DeleGate DeleGate 7.8.2
DeleGate DeleGate 7.8.1
DeleGate DeleGate 7.8.0
DeleGate DeleGate 7.7.1
DeleGate DeleGate 7.7.0
    - FreeBSD 5.0
    - HP HP-UX 11.20
    - IBM AIX 4.3.3
    - Microsoft Windows NT 4.0 SP6a
    - Microsoft Windows NT 4.0 SP6
    - Microsoft Windows NT 4.0 SP5
    - Microsoft Windows NT 4.0 SP4
    - Microsoft Windows NT 4.0 SP3
    - Microsoft Windows NT 4.0 SP2
    - Microsoft Windows NT 4.0 SP1
    - Microsoft Windows NT 4.0
    - Microsoft Windows ME
    - Microsoft Windows 98 SE
    - Microsoft Windows 98
    - Microsoft Windows 95
    - Microsoft Windows 2000
    - OpenBSD 3.0
    - OpenBSD 2.9
    - Sun Solaris 8.0
    - Sun Solaris 7.0
    - Sun Solaris 2.6

不受影响系统:

DeleGate DeleGate 8.9.3

详细描述:

DeleGate是一款多功能应用级网关,运行在多个平台上。DeleGate SSLway过滤器在处理用户提供的部分证书字段内容时缺少充分边界检查,远程攻击者可以利用这个漏洞对网关程序进行缓冲区溢出攻击,可能以进程权限在系统上执行任意指令。

当DeleGate SSLway过滤器使用时处理客户或服务端连接时存在漏洞,使用标题或发送者名字字段内容超过256字节的证书,可触发缓冲区溢出:

   static ssl_prcert(ssl,show,outssl,outfd,what)
            SSL *ssl;
            char *what;
    {       X509 *peer;
            char subjb[256],*sb,issrb[256],*is;
            char *dp,ident[256];
   
            ident[0] = 0;
            if( peer = SSL_get_peer_certificate(ssl) ){
                    sb = X509_NAME_oneline(X509_get_subject_name(peer),subjb,1024);
                    is = X509_NAME_oneline(X509_get_issuer_name(peer),issrb,1024);

X509_NAME_oneline()的第二个参数是要写入的缓冲区,第三个参数是缓冲区大小,上面缓冲区大小定义为1024字节,而缓冲区实际只有256字节,因此过多的数据可覆盖ssl_prcert()的返回地址。

补丁下载:

DeleGate Upgrade DeleGate/8.9.3
ftp://ftp.delegate.org/pub/DeleGate/download.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表