安全研究

安全漏洞
Ingress数据库服务器多个远程溢出及非授权文件操作漏洞

发布日期:2007-06-21
更新日期:2007-06-26

受影响系统:
Computer Associates eTrust Secure Content Manager r8
Ingres Corporation Ingres Database r3
Ingres Corporation Ingres Database 2006 (v9.0.4)
Ingres Corporation Ingres Database 2.6
Ingres Corporation Ingres Database 2.5
描述:
BUGTRAQ  ID: 24585
CVE(CAN) ID: CVE-2007-3334,CVE-2007-3336,CVE-2007-3337,CVE-2007-3338

Ingres是很多CA产品默认所使用的数据库后端。

CA产品所捆绑Ingres数据库服务器在处理请求数据时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞控制服务器。

Ingres通讯服务器进程(iigcc)默认监听在TCP 21064端口上。如果创建了到这个端口的连接并在很短时间内发送了两次特制表单的话,iigcc就会用攻击者可控的参数调用QUremove函数,然后QUremove覆盖可控的地址,这就允许攻击者完全控制执行流;如果向这个端口反复发送特制表单且报文之间有些停顿的话,iigcc就会调用QUinsert函数,然后QUinsert使用攻击者可控的地址执行内存操作,最终也允许控制执行流。

Ingres SQL函数uuid_from_char()可从UUID的字符串表示创建UUID,例如:
select uuid_from_char('11111111-2222-3333-4444-555555555555')

如果向uuid_from_char传送了超长字符串参数,就可能溢出栈缓冲区,覆盖保存的返回地址,将执行路径重新定向到攻击者所选择的地址。

Ingres verifydb工具可以解析duveutil.c文件duve_get_args函数中的命令行参数。如果传送了以下形式的参数:
-dbms_testAAAAAAAAAAAAAA...<很多A>

就会导致执行以下代码:

        case 'd':        /* debug flag - should be 1st parameter */
        if (MEcmp((PTR)argv[parmno], (PTR)"-dbms_test", (u_i2)10)
                    ==DU_IDENTICAL )
        {
            char    numbuf[100];    /* scratch pad to read in number*/
            /* the DBMS_TEST flag was specified.  See if a numeric
            ** value was attached to it.  If so, convert to decimal.
            */
            if (argv[parmno][10])
            {
            STcopy (&argv[parmno][10], numbuf);
            cv_numbuf(numbuf, &duve_cb->duve_dbms_test);
            }
            else
            duve_cb->duve_dbms_test = -1;
        }
        else
            duve_cb->duve_debug = TRUE;
        break;

Ingres没有执行长度检查便使用STcopy函数将-dbms_test字符串后的参数数据拷贝到了numbuf缓冲区,这导致覆盖栈中的变量,包括所保存的返回地址。

Ingres的wakeup二进制程序在当前目录中创建了名为alarmwkp.def的文件,如果该文件已存在的话就会将其截短。wakeup二进制程序为setuid ingres,是完全可执行的,因此任何用户都可以通过在当前目录中创建符号链接以ingres用户的权限截短文件。

<*来源:iDEFENSE
        Chris Anley (chris@ngssoftware.com
  
  链接:http://supportconnectw.ca.com/public/ca_common_docs/ingresvuln_letter.asp#
        http://secunia.com/advisories/25756/
        http://secunia.com/advisories/25775/
        http://www.ca.com/us/securityadvisor/newsinfo/collateral.aspx?cid=145778
        http://marc.info/?l=bugtraq&m=118278710728960&w=2
        http://marc.info/?l=bugtraq&m=118278593326503&w=2
        http://marc.info/?l=bugtraq&m=118278781806882&w=2
        http://marc.info/?l=bugtraq&m=118278641901753&w=2
        http://marc.info/?l=bugtraq&m=118278840809935&w=2
        http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=546
*>

建议:
厂商补丁:

Ingres Corporation
------------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.ingres.com/index.php

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