{"vuid":"VU#169164","idnumber":"169164","name":"Oracle PL/SQL Gateway fails to properly validate HTTP requests","keywords":["Oracle","PL/SQL Gateway","security bypass","PLSQLExclusion","excluded packages","procedures","HTTP requests","mod_plsql","Oracle_CPU_April_2006"],"overview":"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.","clean_desc":"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.","impact":"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.","resolution":"Apply a patch\nThis issue is corrected by the Oracle Critical Patch Update for April 2006.","workarounds":"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.","sysaffected":"","thanks":"This vulnerability was reported by David Litchfield of \nNGSSoftware\n. Information used in this document came from \nIntegrigy\n, Alexander Kornbrust of \nred-database security\n, and \n Vladimir Zakharychev of Webrecruiter","author":"This document was written by Jeff Gennari.","public":["http://www.oracle.com/technology/deploy/security/pdf/cpuapr2006.html","https://metalink.oracle.com/","http://secunia.com/advisories/18621/","http://www.securityfocus.com/archive/1/423029","http://www.securityfocus.com/archive/1/archive/1/423819/100/0/threaded","http://lists.grok.org.uk/pipermail/full-disclosure/2006-January/041742.html","http://www.red-database-security.com/advisory/oracle_modplsql_injection.html","http://www.integrigy.com/info/IntegrigySecurityAnalysis-MODPLSQLVuln.pdf","http://www.red-database-security.com/advisory/oracle_cpu_apr_2006.html"],"cveids":["CVE-2006-0435"],"certadvisory":"","uscerttechnicalalert":null,"datecreated":"2006-01-27T18:03:01Z","publicdate":"2006-01-25T00:00:00Z","datefirstpublished":"2006-01-27T20:45:59Z","dateupdated":"2006-04-19T15:20:37Z","revision":83,"vrda_d1_directreport":"0","vrda_d1_population":"4","vrda_d1_impact":"3","cam_widelyknown":"15","cam_exploitation":"0","cam_internetinfrastructure":"5","cam_population":"15","cam_impact":"19","cam_easeofexploitation":"10","cam_attackeraccessrequired":"20","cam_scorecurrent":"21.375","cam_scorecurrentwidelyknown":"26.71875","cam_scorecurrentwidelyknownexploited":"48.09375","ipprotocol":"","cvss_accessvector":"","cvss_accesscomplexity":"","cvss_authentication":null,"cvss_confidentialityimpact":"","cvss_integrityimpact":"","cvss_availabilityimpact":"","cvss_exploitablity":null,"cvss_remediationlevel":"","cvss_reportconfidence":"","cvss_collateraldamagepotential":"","cvss_targetdistribution":"","cvss_securityrequirementscr":"","cvss_securityrequirementsir":"","cvss_securityrequirementsar":"","cvss_basescore":"","cvss_basevector":"","cvss_temporalscore":"","cvss_environmentalscore":"","cvss_environmentalvector":"","metric":21.375,"vulnote":null}