Home page logo

fulldisclosure logo Full Disclosure mailing list archives

Oracle DBMS - Access Control Bypass in Login
From: "Amichai Shulman" <shulman () imperva com>
Date: Tue, 17 Jan 2006 22:36:33 +0200

Oracle DBMS - Access Control Bypass in Login




Oracle is a widely deployed DBMS. Clients use a protocol called TNS to
communicate to the Oracle server. Protocol messages are used for session
setup, authentication and data transfer. The standard authentication
mechanism requires a client to supply a valid pair of user name and



Imperva's Application Defense Center is conducting an extensive research
of the TNS protocol and its implementation. As part of the research the
team has identified a severe vulnerability in Oracle's access control



During the login process an Oracle user with no more than "create
session" privileges can execute commands in the context of the special
database user SYS. This of course grants any user the highest
administrative privileges possible.



The authentication part of the protocol is comprised of two steps,
including two different client requests and two server responses
respectively. The first request (message code 0x76) contains only the
user name while the second (message code 0x73) contains the user name
and an obfuscated password. 

This second request also contains a list of name-value pairs describing
various attributes of the client. The value named "AUTH_ALTER_SESSION"
is intended for setting up session attributes related to the locale and
language, in the form of an ALTER SESSION SQL statement.

It turns out that this value can contain any SQL statement. Moreover,
this command is executed in the context of the SYS user, which operates
outside of the Oracle access control mechanism. Thus, by setting the
value of "AUTH_ALTER_SESSION" to an arbitrary SQL statement an attacker
can execute any arbitrary command in the database. In particular, the
attacker can create a new database account and create DBA privileges to
the new account.

Notice that if the attacker tries to execute "GRANT DBA TO
attacker_account" a deadlock occurs and attacker_account cannot login to
the database until the connection is closed.



Change the value of the AUTH_ALTER_SESSION attribute in TNS
authentication message.

Tested Versions



Oracle 8i (8.1.7.x.x)

Oracle 9i (

Oracle 10g Release 1 (

Oracle 10g Release 2 (

Not Vulnerable

Vendor's Status


Vendor notified on 02-Nov-05

Patch released on 17-Jan-06 (5745699 OAUTH - REMOTE AUTHENTICATED





Copyright (c) 2006 Imperva

Redistribution of this alert electronically is allowed as long as it is
not edited in any way. To reprint this alert, in whole or in part, in
any medium other than electronic medium, please email adc () imperva com
for permission.



The information within this advisory is subject to change without
notice. Use of this information constitutes acceptance for use in an AS
IS condition. Any use of this information is at the user's own risk.
There are no warranties, implied or express, with regard to this
information. In no event shall the author be liable for any direct or
indirect damages whatsoever arising out of or in connection with the use
or spread of this information.




Amichai Shulman

Imperva, Inc. <http://www.imperva.com/> 
12 Hachilazon St.

Office:  972-3-6120133 (103)
Mobile: 972-54-5885083 
E-mail: shulman () imperva com



InfoWorld product review
gives Imperva the
in Application Security













Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

  By Date           By Thread  

Current thread:
  • Oracle DBMS - Access Control Bypass in Login Amichai Shulman (Jan 17)
[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]