Vulnerabilities > CVE-2007-4271 - Path Traversal vulnerability in IBM DB2 Universal Database

047910
CVSS 2.1 - LOW
Attack vector
LOCAL
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
NONE
Integrity impact
PARTIAL
Availability impact
NONE
local
low complexity
ibm
CWE-22
nessus

Summary

Directory traversal vulnerability in IBM DB2 UDB 8 before Fixpak 15 and 9.1 before Fixpak 3 allows local users to create arbitrary files via a .. (dot dot) in an unspecified environment variable, which is appended to "/tmp/" and used as a log file. NOTE: this issue might be related to symlink following.

Vulnerable Configurations

Part Description Count
Application
Ibm
2

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Relative Path Traversal
    An attacker exploits a weakness in input validation on the target by supplying a specially constructed path utilizing dot and slash characters for the purpose of obtaining access to arbitrary files or resources. An attacker modifies a known path on the target in order to reach material that is not available through intended channels. These attacks normally involve adding additional path separators (/ or \) and/or dots (.), or encodings thereof, in various combinations in order to reach parent directories or entirely separate trees of the target's directory structure.
  • Directory Traversal
    An attacker with access to file system resources, either directly or via application logic, will use various file path specification or navigation mechanisms such as ".." in path strings and absolute paths to extend their range of access to inappropriate areas of the file system. The attacker attempts to either explore the file system for recon purposes or access directories and files that are intended to be restricted from their access. Exploring the file system can be achieved through constructing paths presented to directory listing programs, such as "ls" and 'dir', or through specially crafted programs that attempt to explore the file system. The attacker engaging in this type of activity is searching for information that can be used later in a more exploitive attack. Access to restricted directories or files can be achieved through modification of path references utilized by system applications.
  • File System Function Injection, Content Based
    An attack of this type exploits the host's trust in executing remote content including binary files. The files are poisoned with a malicious payload (targeting the file systems accessible by the target software) by the attacker and may be passed through standard channels such as via email, and standard web content like PDF and multimedia files. The attacker exploits known vulnerabilities or handling routines in the target processes. Vulnerabilities of this type have been found in a wide variety of commercial applications from Microsoft Office to Adobe Acrobat and Apple Safari web browser. When the attacker knows the standard handling routines and can identify vulnerabilities and entry points they can be exploited by otherwise seemingly normal content. Once the attack is executed, the attackers' program can access relative directories such as C:\Program Files or other standard system directories to launch further attacks. In a worst case scenario, these programs are combined with other propagation logic and work as a virus.
  • Using Slashes and URL Encoding Combined to Bypass Validation Logic
    This attack targets the encoding of the URL combined with the encoding of the slash characters. An attacker can take advantage of the multiple way of encoding an URL and abuse the interpretation of the URL. An URL may contain special character that need special syntax handling in order to be interpreted. Special characters are represented using a percentage character followed by two digits representing the octet code of the original character (%HEX-CODE). For instance US-ASCII space character would be represented with %20. This is often referred as escaped ending or percent-encoding. Since the server decodes the URL from the requests, it may restrict the access to some URL paths by validating and filtering out the URL requests it received. An attacker will try to craft an URL with a sequence of special characters which once interpreted by the server will be equivalent to a forbidden URL. It can be difficult to protect against this attack since the URL can contain other format of encoding such as UTF-8 encoding, Unicode-encoding, etc.
  • Manipulating Input to File System Calls
    An attacker manipulates inputs to the target software which the target software passes to file system calls in the OS. The goal is to gain access to, and perhaps modify, areas of the file system that the target software did not intend to be accessible.

Nessus

NASL familyDatabases
NASL idDB2_9FP3.NASL
descriptionAccording to its version, the installation of IBM DB2 running on the remote host is affected by one or more of the following issues : - A local user may be able to overwrite arbitrary files, create arbitrary world-writeable directories, or gain root privileges via symlink attacks or specially crafted environment variables. (IY98210 / IY99261) - A user may be able to continue to execute a method even once privileges for the method have been revoked. (IY88226, version 8 only) - There is an unspecified issue allowing for privilege elevation when DB2
last seen2020-06-01
modified2020-06-02
plugin id25905
published2007-08-20
reporterThis script is Copyright (C) 2007-2018 and is owned by Tenable, Inc. or an Affiliate thereof.
sourcehttps://www.tenable.com/plugins/nessus/25905
titleIBM DB2 < 9 Fix Pack 3 / 8 Fix Pack 15 Multiple Vulnerabilities
code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(25905);
  script_version("1.34");
  script_cvs_date("Date: 2018/11/15 20:50:21");

  script_cve_id("CVE-2007-2582", "CVE-2007-4270", "CVE-2007-4271", "CVE-2007-4272",
  "CVE-2007-4273", "CVE-2007-4275", "CVE-2007-4276", "CVE-2007-4417", "CVE-2007-4418", "CVE-2007-4423");
  script_bugtraq_id(23890, 25339, 26010);

  script_name(english:"IBM DB2 < 9 Fix Pack 3 / 8 Fix Pack 15 Multiple Vulnerabilities");
  script_summary(english:"Checks DB2 signature.");

  script_set_attribute(attribute:"synopsis", value:
"The remote database server is affected by multiple vulnerabilities.");
  script_set_attribute(attribute:"description", value:
"According to its version, the installation of IBM DB2 running on the
remote host is affected by one or more of the following issues :

  - A local user may be able to overwrite arbitrary files,
    create arbitrary world-writeable directories, or gain
    root  privileges via symlink attacks or specially
    crafted  environment variables. (IY98210 / IY99261)

  - A user may be able to continue to execute a method even 
    once privileges for the method have been revoked.
    (IY88226,  version 8 only)

  - There is an unspecified issue allowing for privilege
    elevation when DB2 'execs' executables while running as 
    root. (IY98206 / IY98176)

  - There is an unspecified vulnerability related to
    incorrect authorization routines. (JR25940, version 8
    only)

  - There is an unspecified vulnerability in 
    'AUTH_LIST_GROUPS_FOR_AUTHID'. (IZ01828, version 9.1 
    only)

  - There is an unspecified vulnerability in the 'db2licm'
    and 'db2pd' tools. (IY97922 / IY97936)

  - There is an unspecified vulnerability involving
    'db2licd' and the 'OSSEMEMDBG' and 'TRC_LOG_FILE'
    environment variables. (IY98011 / IY98101)

  - There is a buffer overflow involving the 'DASPROF'
    environment variable. (IY97346 / IY99311)

  - There is an unspecified vulnerability that can arise 
    during instance and FMP startup. (IZ01923 / IZ02067)

  - The DB2JDS service may allow for arbitrary code
    execution without the need for authentication due to a
    stack overflow in an internal sprintf() call.
    (IY97750, version 8 only)

  - The DB2JDS service is affected by two denial of service
    issues that can be triggered by packets with an invalid
    LANG parameter or a long packet, which cause the process
    to terminate (version 8 only).

Note that there is currently insufficient information to determine to
what extent the first set of issues overlaps the others." );
  script_set_attribute(attribute:"see_also", value:"https://www.trustwave.com/Company/AppSecInc-is-now-Trustwave/");
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2007/Aug/313");
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2007/Aug/314");
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2007/Aug/315");
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2007/Aug/316");
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2007/Aug/317");
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2007/Aug/318");
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2007/Aug/319");
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/bugtraq/2007/Oct/153");
  script_set_attribute(attribute:"see_also", value:"https://www-01.ibm.com/support/docview.wss?uid=swg21255607");
  script_set_attribute(attribute:"see_also", value:"http://www-1.ibm.com/support/docview.wss?uid=swg21255352");
  script_set_attribute(attribute:"solution", value:
"Apply IBM DB2 version 9 Fix Pack 3 / 8.1 Fix Pack 15 / 8.2 Fix Pack 8
or later.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:F/RL:O/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_canvas", value:"true");
  script_set_attribute(attribute:"canvas_package", value:'CANVAS');
  script_cwe_id(22, 119, 134);

  script_set_attribute(attribute:"plugin_publication_date", value: "2007/08/20");
  script_set_attribute(attribute:"plugin_type", value:"remote");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:ibm:db2");
  script_end_attributes();
 
  script_category(ACT_GATHER_INFO);
  script_family(english:"Databases");
 
  script_copyright(english:"This script is Copyright (C) 2007-2018 and is owned by Tenable, Inc. or an Affiliate thereof.");
 
  script_dependencies("db2_das_detect.nasl");
  script_require_ports("Services/db2das", 523);

  exit(0);
}

include("global_settings.inc");
include("misc_func.inc");
include("db2_report_func.inc");

port = get_service(svc:'db2das', default:523, exit_on_fail:TRUE);

level = get_kb_item_or_exit("DB2/"+port+"/Level");
if (
  level !~ '^9\\.[01]\\.' &&
  level !~ '^([0-7]\\.|8\\.[01])'
)  exit(0, "The version of IBM DB2 listening on port "+port+" is not 9.0, 9.1, or less than or equal to 8.1.x and thus is not affected.");

platform = get_kb_item_or_exit("DB2/"+port+"/Platform");
platform_name = get_kb_item("DB2/"+port+"/Platform_Name");
if (isnull(platform_name))
{
  platform_name = platform;
  report_phrase = "platform " + platform;
}
else
  report_phrase = platform_name;

vuln = FALSE;
# Windows x86
if (platform == 5)
{
  if (level =~ '^9\\.')
  {
    fixed_level = '9.1.300.257';
    if (ver_compare(ver:level, fix:fixed_level) == -1)
      vuln = TRUE;
  }
  else
  {
    fixed_level = '8.1.15.254';
    if (ver_compare(ver:level, fix:fixed_level) == -1)
      vuln = TRUE;
  }
}
else if (platform == 18)
{
  if (level =~ '^9\\.')
  {
    fixed_level = '9.1.0.3';
    if (ver_compare(ver:level, fix:fixed_level) == -1)
      vuln = TRUE;
  }
  else
  {
    if (level =~ '^8\\.1\\.0\\.') fixed_level = '8.1.0.136';
    else fixed_level = '8.1.2.136';

    if (ver_compare(ver:level, fix:fixed_level) == -1)
      vuln = TRUE;
  }
}
else
{
  info =
    'Nessus does not support version checks against ' + report_phrase + '.\n' +
    'To help us better identify vulnerable versions, please send the platform\n' +
    'number along with details about the platform, including the operating system\n' +
    'version, CPU architecture, and DB2 version to [email protected].\n';
  exit(1, info);
}

if (vuln)
{
  report_db2(
      severity        : SECURITY_HOLE,
      port            : port,
      platform_name   : platform_name,
      installed_level : level,
      fixed_level     : fixed_level);
}
else exit(0, "IBM DB2 "+level+" on " + report_phrase + " is listening on port "+port+" and is not affected.");

Seebug

bulletinFamilyexploit
descriptionBUGTRAQ ID: 25339 CVE(CAN) ID: CVE-2007-4270,CVE-2007-4271,CVE-2007-4272,CVE-2007-4273,CVE-2007-4275,CVE-2007-4276 IBM DB2是一个大型的商业关系数据库系统,面向电子商务、商业资讯、内容管理、客户关系管理等应用,可运行于AIX、HP-UX、Linux、Solaris、Windows等系统。 IBM DB2的多个工具实现上存在漏洞,本地攻击者可能利用这些漏洞提升自己的权限。 IBM DB2在处理拥有提升权限的文件时没有执行充分的检查,导致在判断现有文件是否为符号链接和修改文件之间存在竞争条件。如果攻击者能够迅速并反复的重新创建符号链接文件,就可能以root用户权限修改任意文件。 一些以setuid-root安装的DB2二进制程序会将事件信息保存到日志文件。在创建到目标文件的完整路径时,会将/tmp/连接到环境变量上。由于没有对环境变量中的路径遍历字符串(如../)执行检查,因此攻击者可以通过目录遍历攻击在系统上创建任意文件。 IBM DB2在处理拥有提升权限的文件时没有执行充分的检查,攻击者可以结合环境变量在系统上创建或附加任意文件。 DB2中所捆绑的一些setuid二进制程序没有安全的创建目录,在创建特定的目录结构时会跟随攻击者特制的符号链接,导致在文件系统中的任意位置创建完全可写的目录。 DB2可能允许在不可信任的路径中执行二进制程序或加载函数库,生成二进制程序或函数库的路径是基于攻击者控制的环境变量的;此外所要执行或加载的文件也是位于攻击者控制的目录中。 DB2没有对用户提供数据的长度执行充分的验证,如果攻击者通过某些环境变量指定了特制的字符串的话,就可能将字符串拷贝到栈上所存储的静态大小缓冲区,触发栈溢出并执行任意指令。 IBM DB2 Universal Database 9.1 IBM DB2 Universal Database 8.0 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: <a href="http://www-1.ibm.com/support/docview.wss?uid=swg1IY88226" target="_blank">http://www-1.ibm.com/support/docview.wss?uid=swg1IY88226</a> <a href="http://www-1.ibm.com/support/docview.wss?uid=swg1JR25940" target="_blank">http://www-1.ibm.com/support/docview.wss?uid=swg1JR25940</a> <a href="http://www-1.ibm.com/support/docview.wss?uid=swg21255352" target="_blank">http://www-1.ibm.com/support/docview.wss?uid=swg21255352</a> <a href="http://www-1.ibm.com/support/docview.wss?uid=swg21255607" target="_blank">http://www-1.ibm.com/support/docview.wss?uid=swg21255607</a>
idSSV:2138
last seen2017-11-19
modified2007-08-19
published2007-08-19
reporterRoot
titleIBM DB2 Universal Database多个本地安全漏洞