Oracle Database缓冲区漏洞

开发者在线 Builder.com.cn 更新时间:2008-04-23作者:orc 来源:绿盟科技

本文关键词: 漏洞 缓冲区 数据库 Oracle

 

受影响系统:

  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

用户评论

  • 用户名
  • 评论内容