首页 -> 安全研究

安全研究

安全漏洞
Oracle Trigger权限提升漏洞

发布日期:2004-12-23
更新日期:2004-12-28

受影响系统:
Oracle Oracle9i Standard Edition 9.2.0.4
Oracle Oracle9i Standard Edition 9.2.0.1
Oracle Oracle9i Personal Edition 9.2.0.4
Oracle Oracle9i Personal Edition 9.2.0.1
Oracle Oracle9i Enterprise Edition 9.2.0.4
Oracle Oracle9i Enterprise Edition 9.2.0.1
Oracle Oracle10g Application Server 9.0.4.0
Oracle Oracle10g Application Server 10.1.0.2
Oracle Oracle10g Enterprise Edition 9.0.4.0
Oracle Oracle10g Enterprise Edition 10.1.0.2
Oracle Oracle10g Personal Edition 9.0.4.0
Oracle Oracle10g Personal Edition 10.1.0.2
Oracle Oracle10g Standard Edition 9.0.4.0
Oracle Oracle10g Standard Edition 10.1.0.2
描述:
CVE(CAN) ID: CVE-2004-1338

Oracle Database是一款商业性质大型数据库系统。

Database triggers控制限制实现不正确,远程攻击者可以利用这个漏洞提升特权。

Trigger一般以definer/owner特权执行,trigger SDO_CMT_CBK_TRIG属于MDSYS,当对SDO_TXN_IDX_INSERTS表进行DELETE操作时触发,PUBLIC在这个表上拥有SELECT, INSERT, UPDATE和DELETE对象的特权,因此任何人可以通过从表中删除一行导致SDO_CMT_CBK_TRIG trigger,如果检查Trigger上下文,可看到在DETETE发生之前,从 SDO_CMT_DBK_FN_TABLE 和SDO_CMT_CBK_DML_TABLE表中选择了一列函数,并执行。PUBLIC没有对象权限设置因此不能插入它们自己的函数名,不过属于MDSYS的PRVT_CMT_CBK包有两个过程CCBKAPPLROWTRIG 和EXEC_CBK_FN_DML,接收它们的参数和函数名,然后插入到SDO_CMT_DBK_FN_TABLE和SDO_CMT_CBK_DML_TABLE表中,PUBLIC在PRVT_CMT_CBK包上拥有EXECUTE权限,而且没有 'AUTHID CURRENT_USER'关键词定义,使用MDSY S权限执行包,结果可导致任何用户间接插入函数名到SDO_CMT_DBK_FN_TABLE和SDO_CMT_CBK_DML_TABLE表中,因此当SDO_TXN_IDX_INSERTS上执行DELETE操作时,任何人可以影响SDO_CMT_CBK_TRIG trigger的行为,导致特权提升。

<*来源:David Litchfield (david@nextgenss.com
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=110382230614420&w=2
*>

建议:
厂商补丁:

Oracle
------
ORACLE已经发布patch (#68)来修正此漏洞:

http://metalink.oracle.com/

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