15. August 2012

Oracle Patch CVE-2012-3132: Privilege escalation

Oracle hat einen Patch zu einer Schwachstelle in der Datenbank geliefert. Genaueres kann man bei Heise lesen.

Nun, wie kann man schnell prüfen, ob die eigene Datenbank betroffen ist. Hierfür habe ich einen kleinen SQL-Script vorbereitet, der überprüft, ob die Privilegien, die erforderlich sind diese Schwachstelle zu nutzen, in der Datenbank vergeben wurden.

DB-User, die folgende Privilegien besitzen, könnten die Schwachstelle ausnutzen und somit  hochprivilegierte Rechte erlangen:
  • CREATE TABLE
  • CREATE PROCEDURE
  • EXECUTE ON CTX_DDL
  • EXECUTE ON DBMS_STAT
Folgendes Script könnt Ihr ausführen, um dies schnell zu prüfen:
set heading off
set scan off
select '********** DB SECURITY CHECK USERRIGHTS'||sysdate||
       ' FOR DATABASE: '||name||' **********' from v$database;
set heading on;
echo off; 
feedback off;
verify off; 
underline on;
timing off;
set linesize 400
set pages 1000

spool output.log
col owner format a30
col table_name format a30
col privilege format a30
col grantee format a30
SELECT * from (
select NULL OWNER, 'SYSTEM PRIV' TABLE_NAME, 
       privilege, grantee from dba_sys_privs
 where privilege in ('CREATE TABLE',
                     'CREATE PROCEDURE', 
                     'CREATE ANY TABLE',
                     'CREATE ANY PROCEDURE')
UNION
select owner,
       table_name,
       privilege,
       grantee
  from dba_tab_privs
where  privilege = 'EXECUTE' 
  and table_name in ('DBMS_STATS', 
                     'CTX_DDL')
)
order by grantee, privilege;
col owner clear
col table_name clear
col privilege clear
col grantee clear
spool off
exit

In meiner Datenbank ist genau ein Benutzer betroffen und zwar SCOTT. Die output.log Datei zeigt das Ergebnis.
Der nächste Schritt: Überprüfen, ob die Privilegien notwendig sind, wenn nein entziehen. Danach Patch einspielen.
Oracle Details finden Ihr hier.

Keine Kommentare:

Kommentar posten