Vulnerabilities > CVE-2004-0638 - Improper Restriction of Operations within the Bounds of a Memory Buffer vulnerability in Oracle Oracle8I and Oracle9I

047910
CVSS 0.0 - NONE
Attack vector
UNKNOWN
Attack complexity
UNKNOWN
Privileges required
UNKNOWN
Confidentiality impact
UNKNOWN
Integrity impact
UNKNOWN
Availability impact
UNKNOWN

Summary

Buffer overflow in the KSDWRTB function in the dbms_system package (dbms_system.ksdwrt) for Oracle 9i Database Server Release 2 9.2.0.3 and 9.2.0.4, 9i Release 1 9.0.1.4 and 9.0.1.5, and 8i Release 1 8.1.7.4, allows remote authorized users to execute arbitrary code via a long second argument.

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Buffer Overflow via Environment Variables
    This attack pattern involves causing a buffer overflow through manipulation of environment variables. Once the attacker finds that they can modify an environment variable, they may try to overflow associated buffers. This attack leverages implicit trust often placed in environment variables.
  • Overflow Buffers
    Buffer Overflow attacks target improper or missing bounds checking on buffer operations, typically triggered by input injected by an attacker. As a consequence, an attacker is able to write past the boundaries of allocated buffer regions in memory, causing a program crash or potentially redirection of execution as per the attackers' choice.
  • Client-side Injection-induced Buffer Overflow
    This type of attack exploits a buffer overflow vulnerability in targeted client software through injection of malicious content from a custom-built hostile service.
  • Filter Failure through Buffer Overflow
    In this attack, the idea is to cause an active filter to fail by causing an oversized transaction. An attacker may try to feed overly long input strings to the program in an attempt to overwhelm the filter (by causing a buffer overflow) and hoping that the filter does not fail securely (i.e. the user input is let into the system unfiltered).
  • MIME Conversion
    An attacker exploits a weakness in the MIME conversion routine to cause a buffer overflow and gain control over the mail server machine. The MIME system is designed to allow various different information formats to be interpreted and sent via e-mail. Attack points exist when data are converted to MIME compatible format and back.

Nessus

  • NASL familyDatabases
    NASL idORACLE_CREATE_JOB_VULN.NASL
    descriptionThe remote Oracle Database, according to its version number, contains a remote command execution vulnerability that may allow an attacker who can execute SQL statements with certain privileges to execute arbitrary commands on the remote host.
    last seen2020-06-01
    modified2020-06-02
    plugin id14641
    published2004-09-02
    reporterThis script is (C) 2004-2016 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/14641
    titleOracle Database Multiple Remote Vulnerabilities (Mar 2005)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    if (NASL_LEVEL < 2200) exit(0);
    
    include("compat.inc");
    
    if (description)
    {
    	script_id(14641);
     	script_version ("1.35");
    	script_cvs_date("Date: 2018/07/16 14:09:13");
    
      script_cve_id(
        "CVE-2004-0637",
        "CVE-2004-0638",
        "CVE-2004-1362",
        "CVE-2004-1363",
        "CVE-2004-1364",
        "CVE-2004-1365",
        "CVE-2004-1366",
        "CVE-2004-1367",
        "CVE-2004-1368",
        "CVE-2004-1369",
        "CVE-2004-1370",
        "CVE-2004-1371"
      );
      script_bugtraq_id(
        10871,
        11091,
        11100,
        11099,
        11120
      );
    
    	script_name(english: "Oracle Database Multiple Remote Vulnerabilities (Mar 2005)");
    
     script_set_attribute(attribute:"synopsis", value:
    "The remote database server is affected by multiple vulnerabilities." );
     script_set_attribute(attribute:"description", value:
    "The remote Oracle Database, according to its version number, contains
    a remote command execution vulnerability that may allow an attacker
    who can execute SQL statements with certain privileges to execute
    arbitrary commands on the remote host." );
     # http://web.archive.org/web/20041108030501/http://www.oracle.com/technology/deploy/security/pdf/2004alert68.pdf
     script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?e1d0c17a" );
     script_set_attribute(attribute:"solution", value:
    "Apply vendor-supplied patches." );
     script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
     script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
     script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
     script_set_attribute(attribute:"exploit_available", value:"true");
     script_set_attribute(attribute:"exploit_framework_core", value:"true");
     script_set_attribute(attribute:"exploithub_sku", value:"EH-10-031");
     script_set_attribute(attribute:"exploit_framework_exploithub", value:"true");
     script_cwe_id(22, 94, 119, 200, 255);
    
     script_set_attribute(attribute:"plugin_publication_date", value: "2004/09/02");
     script_set_attribute(attribute:"vuln_publication_date", value: "2004/09/01");
     script_set_attribute(attribute:"patch_publication_date", value: "2004/09/24");
     script_set_attribute(attribute:"plugin_type", value:"remote");
     script_set_attribute(attribute:"cpe", value:"cpe:/a:oracle:database_server");
     script_end_attributes();
    
    
    	script_summary(english: "Checks the version of the remote Database");
    
    	script_category(ACT_GATHER_INFO);
    	script_family(english: "Databases");
    	script_copyright(english: "This script is (C) 2004-2016 Tenable Network Security, Inc.");
    	script_dependencie("oracle_tnslsnr_version.nasl");
            script_require_ports("Services/oracle_tnslsnr");
    	exit(0);
    }
    
    
    include('global_settings.inc');
    
    if ( report_paranoia < 1 ) exit(0);
    
    port = get_kb_item("Services/oracle_tnslsnr");
    if ( isnull(port)) exit(0);
    
    version = get_kb_item(string("oracle_tnslsnr/",port,"/version"));
    if (version)
    {
      if (ereg(pattern:".*Version (8\.(0\.([0-5]\.|6\.[0-3])|1\.([0-6]\.|7\.[0-4]))|9\.(0\.(0\.|1\.[0-5]|2\.[0-3]|3\.[0-1]|4\.[0-1])|2\.0\.[0-5])|10\.(0\.|1\.0\.[0-2]))", string:version)) security_hole(port);
    }
    
    
  • NASL familyDatabases
    NASL idORACLE_DATABASE_MULTIPLE_VULNS.NASL
    descriptionThe remote Oracle Database, according to its version number, is vulnerable to several flaws, ranging from information disclosure about the remote host to code execution.
    last seen2020-06-01
    modified2020-06-02
    plugin id16209
    published2005-01-19
    reporterThis script is (C) 2005-2016 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/16209
    titleOracle Database Multiple Vulnerabilities (January 2005 CPU)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    
    include("compat.inc");
    
    if (description)
    {
    	script_id(16209);
     	script_version ("1.31");
    
      script_cve_id(
        "CVE-2004-0637",
        "CVE-2004-0638",
        "CVE-2004-1362",
        "CVE-2004-1363",
        "CVE-2004-1364",
        "CVE-2004-1365",
        "CVE-2004-1366",
        "CVE-2004-1367",
        "CVE-2004-1368",
        "CVE-2004-1369",
        "CVE-2004-1370",
        "CVE-2004-1371"
      );
      script_bugtraq_id(
        12301,
        10871,
        11120,
        11099,
        11100,
        11091,
        12296
      );
    
    	script_name(english:"Oracle Database Multiple Vulnerabilities (January 2005 CPU)");
    
     script_set_attribute(attribute:"synopsis", value:
    "The remote host has an application that is affected by
    multiple vulnerabilities." );
     script_set_attribute(attribute:"description", value:
    "The remote Oracle Database, according to its version number,
    is vulnerable to several flaws, ranging from information 
    disclosure about the remote host to code execution." );
     # https://www.oracle.com/technetwork/topics/security/cpu-jan-2005-advisory-129526.pdf
     script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?976ed6e6" );
     script_set_attribute(attribute:"solution", value:
    "Apply the appropriate patch according to the January 2005 Oracle
    Critical Patch Update advisory." );
     script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
     script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
     script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
     script_set_attribute(attribute:"exploit_available", value:"true");
     script_set_attribute(attribute:"exploit_framework_core", value:"true");
     script_set_attribute(attribute:"exploithub_sku", value:"EH-10-031");
     script_set_attribute(attribute:"exploit_framework_exploithub", value:"true");
     script_cwe_id(22, 94, 119, 200, 255);
    
     script_set_attribute(attribute:"plugin_publication_date", value: "2005/01/19");
     script_set_attribute(attribute:"patch_publication_date", value: "2005/01/18");
     script_cvs_date("Date: 2018/11/15 20:50:21");
    script_set_attribute(attribute:"plugin_type", value:"remote");
    script_set_attribute(attribute:"cpe", value:"cpe:/a:oracle:database_server");
    script_end_attributes();
    
    
    	script_summary(english: "Checks the version of the remote Database");
    
    	script_category(ACT_GATHER_INFO);
    	script_family(english: "Databases");
    	script_copyright(english: "This script is (C) 2005-2016 Tenable Network Security, Inc.");
    	script_dependencie("oracle_tnslsnr_version.nasl");
            script_require_ports("Services/oracle_tnslsnr");
    	exit(0);
    }
    
    include('global_settings.inc');
    
    if ( report_paranoia < 1 ) exit(0);
    
    port = get_kb_item("Services/oracle_tnslsnr");
    if ( isnull(port)) exit(0);
    
    version = get_kb_item(string("oracle_tnslsnr/",port,"/version"));
    if (version)
    {
       iversion = split(version, sep:'.', keep:FALSE);
    
       if ( int(iversion[0]) == 8 )
       {
         if (int(iversion[1]) == 0 ) # 8.0.6.3
         {
    	 if ( int(iversion[2]) < 6 || ( int(iversion[2]) == 6 && int(iversion[3]) <= 3) )
    		security_hole ( 0 );
         }
         else if ( int(iversion[1]) == 1 ) # 8.1.7.4
         {
             if ( int(iversion[2]) < 7 || ( int(iversion[2]) == 7 && int(iversion[3]) <= 4 ) )
    		security_hole ( 0 );
         }
       }
       else if ( int(iversion[0]) == 9 )
       {
         if ( int(iversion[1]) == 0 )		# 9.0.1.5
    	{
    	 if ( int(iversion[2]) < 1 || ( int(iversion[1]) == 1 && int(iversion[2]) <=5 ) )
    		security_hole ( 0 );
    	}
         else if (int(iversion[1]) == 2 )      # 9.2.0.6 
    	{
    	 if ( int(iversion[2]) == 0 && int(iversion[3]) <= 6 )
    		security_hole ( 0 );
    	}
        } 
        else if ( int(iversion[0]) == 10 )
        {
    	 # 10.1.0.3.1
    	 if ( int(iversion[1]) == 1 )
    	 {
               if ( int(iversion[2]) == 0 && int(iversion[3]) < 3 )
    		security_hole( 0 );
    	   if ( !isnull(iversion[4]) )
    	   {
                 if ( int(iversion[2]) == 0 && int(iversion[3]) == 3  && int(iversion[4]) <= 1 )
    		security_hole( 0 );
    	   }
    	  else if ( int(iversion[2]) == 0 && int(iversion[3]) == 3 )	
    		security_hole ( 0 );
             }
        }
    }