Vulnerabilities > CVE-2007-4276 - Improper Restriction of Operations Within the Bounds of A Memory Buffer vulnerability in IBM DB2 Universal Database

047910
CVSS 6.9 - MEDIUM
Attack vector
LOCAL
Attack complexity
MEDIUM
Privileges required
NONE
Confidentiality impact
COMPLETE
Integrity impact
COMPLETE
Availability impact
COMPLETE
local
ibm
CWE-119
nessus

Summary

Stack-based buffer overflow in IBM DB2 UDB 8 before Fixpak 15 and 9.1 before Fixpak 3 allows attackers to execute arbitrary code via a long DASPROF and possibly other environment variables, which are copied into the buildDasPaths buffer.

Vulnerable Configurations

Part Description Count
Application
Ibm
2

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 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多个本地安全漏洞