ingress数据库服务器data access server组件远程栈溢出漏洞
  • cnnvd编号:cnnvd-200706-380
  • 危害等级: 超危 
  • cve编号:cve-2007-3338
  • 漏洞类型: 缓冲区溢出
  • 威胁类型:远程
  • 厂       商:ingres
  • 漏洞来源: idefensechris anle...
  • 发布时间:2007-06-22
  • 更新时间:2020-12-11

漏洞简介

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

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 corporation

------------------

参考网站

来源: supportconnectw.ca.com

链接:


来源: xf

名称: ingres-duvegetargs-bo(34998)

链接:


来源: xf

名称: ingres-uuidfromchar-bo(34995)

链接:


来源: bid

名称: 24585

链接:


来源: bugtraq

名称: 20070625 ingres stack overflow in uuid_from_char function

链接:


来源: bugtraq

名称: 20070625 ingres verifydb local stack overflow

链接:


来源: misc

链接:


来源: misc

链接:


来源: vupen

名称: adv-2007-2290

链接:


来源: vupen

名称: adv-2007-2288

链接:


来源: www.ca.com

链接:


来源: secunia

名称: 25775

链接:


来源: secunia

名称: 25756

链接:

受影响实体

 

 

 





补丁

暂无