Vulnerability Note VU#169164

Oracle PL/SQL Gateway fails to properly validate HTTP requests

Original Release date: 27 Jan 2006 | Last revised: 19 Apr 2006


The Oracle PL/SQL Gateway fails to properly validate HTTP requests. This may allow a remote attacker to execute SQL commands on an Oracle database.


Oracle uses the Oracle PL/SQL Gateway to access Oracle databases over HTTP. A lack of validation in the Oracle PL/SQL Gateway may allow a remote attacker to bypass Oracle's security restrictions and gain access to critical packages and procedures. The Oracle PL/SQL Gateway uses a list of keywords to restrict access to powerful packages and procedures. Upon receiving a request to execute a procedure, the PL/SQL Gateway compares the request to the list to determine if that procedure attempts to access any restricted procedures or packages. However, a remote attacker may be able to bypass this check by sending a specially crafted HTTP request to the Oracle PL/SQL Gateway.

Note that all Oracle installations with the HTTP Server (Apache) enabled may be affected by this vulnerability. For more information see Oracle Metalink Note 311536.1.

According to public reports, this issue is identified as PLSQL01 in the Oracle Critical Patch Update for April 2006.


If a remote attacker sends a specially crafted HTTP request to a vulnerable Oracle installation, that attacker may be able to execute SQL commands with elevated privileges.


Apply a patch
This issue is corrected by the Oracle Critical Patch Update for April 2006.

Set always_describe or PlsqlAlwaysDescribeProcedure parameters to ON

Set the always_describe or PlsqlAlwaysDescribeProcedure to ON in the dads.conf file. According to red database security:

    PlsqlAlwaysDescribeProcedure specifies whether mod_plsql should describe a procedure before trying to execute it. If this is set to "On", then mod_plsql will always describe a procedure before invoking it. Otherwise, mod_plsql will only describe a procedure when its internal heuristics have interpreted a parameter type incorrectly.

    If PlsqlAlwaysDescribeProcedure is enabled, Oracle tries to describe every PL/SQL procedure. If a hacker injects pl/sql code, Oracle tries to describe this specially crafted string but fails because this procedure does not exist.
Disable Oracle's HTTP Server

As a general rule, disable or remove any nonessential software. In this case, the Oracle HTTP Server (Apache) should be disabled on any Oracle installations that do need to be accessible via HTTP.

Limit Access to HTTP Server

You may wish to block access to the vulnerable software from outside your network perimeter, specifically by blocking access to the ports used by the Apache HTTP server (typically 80/tcp). This will limit your exposure to attacks. However, blocking at the network perimeter would still allow attackers within the perimeter of your network to exploit the vulnerability. The use of host-based firewalls in addition to network-based firewalls can help restrict access to specific hosts within the network. It is important to understand your network's configuration and service requirements before deciding what changes are appropriate.

Systems Affected (Learn More)

VendorStatusDate NotifiedDate Updated
Oracle CorporationAffected-19 Apr 2006
If you are a vendor and your product is affected, let us know.

CVSS Metrics (Learn More)

Group Score Vector
Base N/A N/A
Temporal N/A N/A
Environmental N/A N/A



This vulnerability was reported by David Litchfield of NGSSoftware. Information used in this document came from Integrigy, Alexander Kornbrust of red-database security, and Vladimir Zakharychev of Webrecruiter.

This document was written by Jeff Gennari.

Other Information

  • CVE IDs: CVE-2006-0435
  • Date Public: 25 Jan 2006
  • Date First Published: 27 Jan 2006
  • Date Last Updated: 19 Apr 2006
  • Severity Metric: 21.37
  • Document Revision: 81


If you have feedback, comments, or additional information about this vulnerability, please send us email.