TUCoPS :: Oracle :: m-047.txt

Oracle PL SQL EXTPROC Database Vulnerability (CIAC M-047)

             __________________________________________________________

                       The U.S. Department of Energy
                     Computer Incident Advisory Center
                           ___  __ __    _     ___
                          /       |     /_\   /
                          \___  __|__  /   \  \___
             __________________________________________________________

                             INFORMATION BULLETIN

                  Oracle PL/SQL EXTPROC Database Vulnerability
                          [Oracle Security Alert #29]

February 27, 2002 20:00 GMT                                       Number M-047
______________________________________________________________________________
PROBLEM:       It is possible for an attacker to fool the Oracle database
               server into loading arbitrary libraries and executing arbitrary
               functions without ever having to authenticate.
PLATFORM:      Platforms: All Unix, Linux, and Windows
               Oracle Database: Oracle9i, Oracle8i, and Oracle8
DAMAGE:        Remote users can execute arbitrary code with privileges of the
               user running Oracle.
SOLUTION:      Apply workaround as prescribed below by Oracle.
______________________________________________________________________________
VULNERABILITY  The risk is HIGH. A remote user can execute arbitrary code. 
ASSESSMENT:                                                                   
______________________________________________________________________________
LINKS: 
 CIAC BULLETIN:      http://www.ciac.org/ciac/bulletins/m-047.shtml 
 ORIGINAL BULLETIN:                                                           
                     http://otn.oracle.com/deploy/security/pdf/
                             plsextproc_alert.pdf 
______________________________________________________________________________

[***** Start Oracle Security Alert #29 *****]

Oracle Security Alert #29

Dated: 06 Feburary 2002

Oracle PL/SQL EXTPROC in Oracle9i Database
Description
There is a potential security vulnerability in the Oracle PL/SQL package for
External Procedures (EXTPROC) in Oracle9i Database.

The EXTPROC functionality is installed by default in the Oracle Database 
installation if the “Typical Installation” option is chosen from the Oracle 
Universal Installer Menu. EXTPROC is used by Oracle’s PL/SQL package to make
calls to the operating system. Utilizing an Oracle Listener configured with a 
TCP protocol address, a knowledgeable and malicious user can write an exploit 
that connects to an Oracle Database server’ s EXTPROC OS process without having 
to authenticate himself. As such, he will be able to make arbitrary calls to 
the underlying OS and potentially gain unauthorized administrative access to 
the machine hosting the Oracle Database server.

Products affected
Oracle Database (Oracle9i, Oracle8i, Oracle8)

Platforms affected
All (Unix, Linux, Windows)

Workarounds
Use the following workarounds for all releases of the Oracle Database server.

If the PL/SQL EXTPROC functionality is not required, it is recommended that 
it be removed from the machine hosting the Oracle Database server. Edit both
$ORACLE_HOME/NETWORK/ADMIN/TNSNAMES.ORA (located in a Unix directory structure
and its equivalent directory in Windows) and 
$ORACLE_HOME/NETWORK/ADMIN/LISTENER.ORA (located in a Unix directory structure 
and its equivalent directory in Windows) and remove one of the following entries 
from each of the configuration files, depending upon the OS and the release of 
the Oracle Database server installed:

* icache_extproc, or
* PLSExtproc, or
* extproc

Also, delete the “extproc” executable from the machine hosting the Oracle 
Database server.

If the PL/SQL EXTPROC functionality is required in your Oracle installation, 
there are 5 steps that must be taken in order to protect against the potential 
security vulnerability identified above.

i. Create 2 Oracle Net Listeners, one for the Oracle database and one for 
   PL/SQL EXTPROC.

   Do not specify any EXTPROC specific entries in the configuration files of the
   Oracle Listener for the database.

   Configure the Oracle Listener for PL/SQL EXTPROC with an IPC protocol address
   only.

   If TCP connectivity is required, configure a TCP protocol address, but use a
   port other than the one the Oracle Listener for the database is using. Ensure
   that the Oracle Listener created for PL/SQL EXTPROC runs as an unprivileged
   OS user (e.g., “nobody” on Unix). On Windows platforms, run the Oracle Net
   Listener process as an unprivileged user and not as the Windows LOCAL SYSTEM
   user.

   Give this user the OS privilege to “Logon as a service.”

ii. If you have configured the Oracle Listener for PL/SQL EXTPROC with a TCP
    protocol address, modify the EXTPROC specific entry in 
    $ORACLE_HOME/NETWORK/ADMIN/TNSNAMES.ORA to reflect the correct port for the 
    new Oracle Listener.

iii. If you have configured the Listener for PL/SQL EXTPROC with an TCP protocol 
     address, ensure that the connections to this Oracle Listener can only 
     originate from the hosts that need access to EXTPROC by doing the following.

     Use an Oracle Net feature called “valid node checking” to allow or deny 
     access to Oracle server processes from network clients with specified IP 
     addresses. Set the following parameters in
     $ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA
     ($ORACLE_HOME/NETWORK/ADMIN/PROTOCOL.ORA in Oracle8i and prior releases) to
     enable the valid node checking feature:

     tcp.validnode_checking = YES
     tcp.invited_nodes = {list of IP addresses}
     tcp.excluded_nodes = {list of IP addresses}

     The first parameter turns on the valid node checking feature. The latter two 
     parameters respectively specify the IP addresses that are permitted to make 
     network connections or denied from making network connections to the Oracle 
     server processes.

     Restrict access to the Oracle Listener for PL/SQL EXTPROC only. A separate
     $ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA file is required for this Oracle 
     Listener. You can store this file in any directory other than the one in which 
     the database LISTENER.ORA and SQLNET.ORA files are located. Copy the 
     LISTENER.ORA with the configuration of the Oracle Listener for PL/SQL EXTPROC 
     into this other directory as well. Before starting the Oracle Listener for 
     PL/SQL EXTPROC, set the TNS_ADMIN environment variable (or Windows Registry 
     parameter) to specify the directory in which the new configuration files for 
     PL/SQL EXTPROC are stored.

iv. Ensure that the file permissions on separate 
    $ORACLE_HOME/NETWORK/ADMIN/LISTENER.ORA are set at either 640 or 644.

v. Change the password for any privileged database account or an ordinary user 
   given administrative privileges in the database that has the ability to add 
   packages or libraries and access system privileges in the database (such as 
   CREATE ANY LIBRARY) to a strong, meaningful password, different from the 
   default that is provided during the initial installation of Oracle.

   Lock and expire all other accounts that are not being used in the database. 
   Read Section 2 of the “Oracle9i Security Checklist” available on OTN at
   http://otn.oracle.com/deploy/security/oracle9i/pdf/9i_checklist.pdf for
   details.

Patch Information
A solution to the potential security vulnerability identified above is being 
worked upon and will be available by default in a future release of Oracle9i 
Database. Check the Oracle Security Alerts web page on OTN at 
http://otn.oracle.com/deploy/security/alerts.htm periodically for an update 
regarding the availability of this solution. All other releases of the Oracle 
Database (up to Oracle9i, Release 9.0.1.x) must continue to use the workaround 
provided above.

Credits
Oracle Corporation thanks David Litchfield of Next Generation Security Software 
Limited for discovering and promptly bringing this potential security 
vulnerability to Oracle’s attention.

[***** End Oracle Security Alert #29 *****]
_______________________________________________________________________________

CIAC wishes to acknowledge the contributions of Oracle Corporation and 
NGSSoftware Ltd. for the information contained in this bulletin.
_______________________________________________________________________________


CIAC, the Computer Incident Advisory Center, is the computer
security incident response team for the U.S. Department of Energy
(DOE) and the emergency backup response team for the National
Institutes of Health (NIH). CIAC is located at the Lawrence Livermore
National Laboratory in Livermore, California. CIAC is also a founding
member of FIRST, the Forum of Incident Response and Security Teams, a
global organization established to foster cooperation and coordination
among computer security teams worldwide.

CIAC services are available to DOE, DOE contractors, and the NIH. CIAC
can be contacted at:
    Voice:    +1 925-422-8193 (7x24)
    FAX:      +1 925-423-8002
    STU-III:  +1 925-423-2604
    E-mail:   ciac@ciac.org

Previous CIAC notices, anti-virus software, and other information are
available from the CIAC Computer Security Archive.

   World Wide Web:      http://www.ciac.org/
   Anonymous FTP:       ftp.ciac.org

PLEASE NOTE: Many users outside of the DOE, ESnet, and NIH computing
communities receive CIAC bulletins.  If you are not part of these
communities, please contact your agency's response team to report
incidents. Your agency's team will coordinate with CIAC. The Forum of
Incident Response and Security Teams (FIRST) is a world-wide
organization. A list of FIRST member organizations and their
constituencies can be obtained via WWW at http://www.first.org/.

This document was prepared as an account of work sponsored by an
agency of the United States Government. Neither the United States
Government nor the University of California nor any of their
employees, makes any warranty, express or implied, or assumes any
legal liability or responsibility for the accuracy, completeness, or
usefulness of any information, apparatus, product, or process
disclosed, or represents that its use would not infringe privately
owned rights. Reference herein to any specific commercial products,
process, or service by trade name, trademark, manufacturer, or
otherwise, does not necessarily constitute or imply its endorsement,
recommendation or favoring by the United States Government or the
University of California. The views and opinions of authors expressed
herein do not necessarily state or reflect those of the United States
Government or the University of California, and shall not be used for
advertising or product endorsement purposes.

LAST 10 CIAC BULLETINS ISSUED (Previous bulletins available from CIAC)

M-036: Microsoft Windows NT/2000 Trust Domain Vulnerability
M-037: Oracle 9iAS Multiple Buffer Overflows in the PL/SQL Module 
M-038: Cisco Secure Access Control Server NDS User Authentication Vulnerability
M-039: Microsoft Telnet Server Buffer Overflow Vulnerability
M-040: MS Exchange - Incorrectly Sets Remote Registry Permissions
M-041: Microsoft Internet Explorer Cumulative Patch
M-042: Multiple Vulnerabilities in Multiple Implementations of SNMP
M-043: Hewlett-Packard Buffer Overflow in Telnet Server Vulnerability
M-044: SQL Server Remote Data Source Function Contain Unchecked Buffers
M-046: Red Hat "ncurses" Vulnerability


TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2024 AOH