DISA STIGS Viewer

The Oracle WITH GRANT OPTION privilege must not be granted to nondatabase administrator (DBA) or nonapplication administrator user accounts.

Overview

Finding ID Version Rule ID IA Controls Severity
V-270523 O19C-00-009000 SV-270523r1065302_rule   Medium
Description
An account permission to grant privileges within the database is an administrative function. Minimizing the number and privileges of administrative accounts reduces the chances of privileged account exploitation. Application user accounts must never require WITH GRANT OPTION privileges since, by definition, they require only privileges to execute procedures or view/edit data.
STIG Date
Oracle Database 19c Security Technical Implementation Guide 2025-06-24

Details

Check Text (C-74556r1064845_chk)
Execute the query:

select grantee||': '||owner||'.'||table_name
from dba_tab_privs
where grantable = 'YES'
and grantee not in (select distinct owner from dba_objects)
and grantee not in (select grantee from dba_role_privs where granted_role = 'DBA')
and table_name not like 'SYS_PLSQL_%'
order by grantee;

If any accounts are listed, this is a finding.
Fix Text (F-74457r1065301_fix)
Revoke privileges granted the WITH GRANT OPTION from non-DBA and accounts that do not own application objects.

Re-grant privileges without specifying WITH GRANT OPTION.

Note: Do not revoke the system-generated grants such as those found on The SYS_PLSQL_% objects. They are system generated object types (aka ShadowTypes) which are created internally by Oracle when using the Pipelined Table Functions. This can result in (incorrect) compilation failures and/or invalidations when the users who are supposed to have access to the shadow types find themselves without access.