Oracle Database缓冲区漏洞

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

受影响系统:

Oracle Database 10gR1

描述:

Oracle是一款大型的商业数据库系统。

Oracle的DBMS_SNAPSHOT_UTL软件包可治理具体的视图。这个软件包中的公开过程VERIFY_LOG中存在缓冲区溢出漏洞,成功的攻击可导致执行任意代码或拒绝服务。

默认下DBMS_SNAPSHOT_UTL对PUBLIC具有EXECUTE权限,因此任何Oracle数据库用户都可以利用这个漏洞。请注重尽管2006年4月的紧急补丁更新提到了这个bug,但Oracle仍没有为大多数平台发布补丁。

<*来源:Esteban Martínez Fayó (secemf@gmail.com)

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=114557615729202&w=2

http://www.us-cert.gov/cas/techalerts/TA06-109A.Html

http://www.oracle.com/technology/deploy/security/pdf/cpuapr2006.html?

_template=/ocom/technology/cont

*>

>

建议:

临时解决方法:

* 限制对DBMS_SNAPSHOT_UTL软件包的访问:

-- WARNING: This workaround may cause your application to work incorrectly

-- if it depends (directly or indirectly) on any of the affected database objects.

-- REVOKE_EXECUTE_PRIV: This procedure revokes all the EXECUTE privileges granted

-- to the database object identified by the parameters P_OWNER and P_OBJECT_NAME.

CREATE OR REPLACE PROCEDURE REVOKE_EXECUTE_PRIV (P_OWNER IN VARCHAR2,

P_OBJECT_NAME IN VARCHAR2) AUTHID CURRENT_USER IS

CURSOR my_cur IS

select grantee from dba_tab_privs where owner = P_OWNER AND TABLE_NAME = P_OBJECT_NAME;

BEGIN

FOR my_rec IN my_cur

LOOP

DBMS_OUTPUT.PUT_LINE ('Revoking EXECUTE privilege from ' my_rec.grantee);

EXECUTE IMMEDIATE 'REVOKE EXECUTE ON ' P_OWNER '.' P_OBJECT_NAME ' FROM ' my_rec.grantee ' FORCE';

END LOOP;

END REVOKE_EXECUTE_PRIV;

/

-- To remove all execute privileges granted on vulnerable objects execute this PL/SQL:

BEGIN

REVOKE_EXECUTE_PRIV ('SYS', 'DBMS_SNAPSHOT_UTL');

END;

/

-- To remove execute privilege granted only to PUBLIC role on vulnerable objects

-- execute this PL/SQL:

REVOKE EXECUTE ON SYS.DBMS_SNAPSHOT_UTL FROM PUBLIC FORCE;

厂商补丁:

Oracle

目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.oracle.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航