Vulnerabilities > CVE-2017-1105 - Improper Restriction of Operations within the Bounds of a Memory Buffer vulnerability in IBM products

047910
CVSS 7.1 - HIGH
Attack vector
LOCAL
Attack complexity
LOW
Privileges required
LOW
Confidentiality impact
NONE
Integrity impact
HIGH
Availability impact
HIGH
local
low complexity
ibm
CWE-119
nessus

Summary

IBM DB2 for Linux, UNIX and Windows 9.2, 10.1, 10.5, and 11.1 (includes DB2 Connect Server) is vulnerable to a buffer overflow that could allow a local user to overwrite DB2 files or cause a denial of service. IBM X-Force ID: 120668.

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 familyWindows
    NASL idDB2_1112FP2_36792_WIN.NASL
    descriptionAccording to its version, the installation of IBM DB2 running on the remote host is either 9.7 prior to fix pack 11 Special Build 36792, 10.1 prior to fix pack 6 Special Build 36792, 10.5 prior to fix pack 7 Special Build 36792, or 11.1.2.2 prior to fix pack 2 Special Build 36792. It is, therefore, affected by a vulnerability that allows a user without proper authority to activate the database as described in the advisory.
    last seen2020-06-01
    modified2020-06-02
    plugin id103253
    published2017-09-15
    reporterThis script is Copyright (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/103253
    titleIBM DB2 9.7 < FP11 Special Build 36792 / 10.1 < FP6 Special Build 36792 / 10.5 < FP8 Special Build 36792 / 11.1.2.2 < FP2 Special Build 36792 Multiple Vulnerabilities (Windows)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(103253);
      script_version("1.8");
      script_cvs_date("Date: 2019/11/12");
    
      script_cve_id("CVE-2017-1105", "CVE-2017-1297");
      script_bugtraq_id(99264, 99271);
    
      script_name(english:"IBM DB2 9.7 < FP11 Special Build 36792 / 10.1 < FP6 Special Build 36792 / 10.5 < FP8 Special Build 36792 / 11.1.2.2 < FP2 Special Build 36792 Multiple Vulnerabilities (Windows)");
      script_summary(english:"Checks the 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 either 9.7 prior to fix pack 11 Special Build 36792,
    10.1 prior to fix pack 6 Special Build 36792, 10.5 prior to fix
    pack 7 Special Build 36792, or 11.1.2.2 prior to fix pack 2 Special 
    Build 36792. It is, therefore, affected by a vulnerability that 
    allows a user without proper authority to activate the database as 
    described in the advisory.");
      script_set_attribute(attribute:"see_also", value:"http://www-01.ibm.com/support/docview.wss?uid=swg22007186");
      script_set_attribute(attribute:"solution", value:
    "Apply the appropriate IBM DB2 Special Build based on the
    most recent fix pack level for your branch.");
      script_set_cvss_base_vector("CVSS2#AV:L/AC:M/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
      script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
      script_set_attribute(attribute:"cvss_score_source", value:"CVE-2017-1297");
    
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2017/09/07");
      script_set_attribute(attribute:"patch_publication_date", value:"2017/09/07");
      script_set_attribute(attribute:"plugin_publication_date", value:"2017/09/15");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"cpe:/a:ibm:db2");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"Windows");
    
      script_copyright(english:"This script is Copyright (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("db2_and_db2_connect_installed.nbin");
      script_require_keys("SMB/db2/Installed");
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("install_func.inc");
    include("misc_func.inc");
    include("db2_report_func.inc");
    
    app = "DB2 Server";
    
    # linux uses register_install, so we need to check this KB item
    if(!get_kb_item("SMB/db2/Installed")) audit(AUDIT_NOT_INST, app);
    
    install = get_single_install(app_name:app, exit_if_unknown_ver:TRUE);
    version = report_version = install['version'];
    
    special_build = install['special_build'];
    if (empty_or_null(special_build)) special_build = "None";
    if (special_build != "None") report_version += " with Special Build " + special_build;
    
    path = install['path'];
    
    fix_ver = NULL;
    fix_build = NULL;
    
    if (version =~ "^9\.7\.")
    {
        fix_ver = "9.7.1100.352";
        fix_build = "36826";
    }
    else if (version =~ "^10\.1\.")
    {
        fix_ver = "10.1.600.580";
        fix_build = "36827";
    }
    else if (version =~ "^10\.5\.")
    {
        fix_ver = "10.5.800.381";
        fix_build = "36828";
    }
    else if (version =~ "^11\.")
    {
        fix_ver = "11.1.2020.1393";
        fix_build = "36792";
    }else
      audit(AUDIT_INST_PATH_NOT_VULN, app, report_version, path);
    
    vuln = FALSE;
    cmp = ver_compare(ver:version, fix:fix_ver, strict:FALSE);
    # less than current fix pack                                      
    if (cmp < 0)
      vuln = TRUE;
    else if (cmp == 0 && !isnull(fix_build))
    {
      # missing special build or less than current special build      
      if (special_build == "None" || ver_compare(ver:special_build, fix:fix_build, strict:FALSE) < 0)
        vuln = TRUE;
    }
    
    if (!vuln)
      audit(AUDIT_INST_PATH_NOT_VULN, app, report_version, path);
    
    port = get_kb_item("SMB/transport");
    if (!port) port = 445;
    
    report_db2(
        severity          : SECURITY_WARNING,
        port              : port,
        product           : app,
        path              : path,
        installed_version : version,
        fixed_version     : fix_ver,
        special_installed : special_build,
        special_fix       : fix_build);
    
  • NASL familyDatabases
    NASL idDB2_1112FP2_NIX.NASL
    descriptionAccording to its version, the installation of IBM DB2 running on the remote host is either 9.7 prior to Fix Pack 11 Special Build 36621, 10.1 prior to Fix Pack 6 Special Build 36610, 10.5 prior to Fix Pack 8 Special Build 36605, or 11.1.2 prior to Fix Pack 2. It is, therefore, affected by the following vulnerabilities : - A buffer overflow condition exists due to improper validation of user-supplied input. A local attacker can exploit this to overwrite DB2 files or cause a denial of service condition. (CVE-2017-1105) - A stack-based buffer overflow condition exists in the Command Line Process (CLP) due to improper bounds checking. A local attacker can exploit this to execute arbitrary code. (CVE-2017-1297)
    last seen2020-06-01
    modified2020-06-02
    plugin id101161
    published2017-06-30
    reporterThis script is Copyright (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/101161
    titleIBM DB2 9.7 < FP11 Special Build 36621 / 10.1 < FP6 Special Build 36610 / 10.5 < FP8 Special Build 36605 / 11.1.2 < FP2 Multiple Vulnerabilities (UNIX)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(101161);
      script_version("1.6");
      script_cvs_date("Date: 2019/11/12");
    
      script_cve_id("CVE-2017-1105", "CVE-2017-1297");
      script_bugtraq_id(99264, 99271);
    
      script_name(english:"IBM DB2 9.7 < FP11 Special Build 36621 / 10.1 < FP6 Special Build 36610 / 10.5 < FP8 Special Build 36605 / 11.1.2 < FP2 Multiple Vulnerabilities (UNIX)");
      script_summary(english:"Checks the 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 either 9.7 prior to Fix Pack 11 Special Build 36621,
    10.1 prior to Fix Pack 6 Special Build 36610, 10.5 prior to Fix Pack 8
    Special Build 36605, or 11.1.2 prior to Fix Pack 2. It is, therefore,
    affected by the following vulnerabilities :
    
      - A buffer overflow condition exists due to improper
        validation of user-supplied input. A local attacker can
        exploit this to overwrite DB2 files or cause a denial of
        service condition. (CVE-2017-1105)
    
      - A stack-based buffer overflow condition exists in the
        Command Line Process (CLP) due to improper bounds
        checking. A local attacker can exploit this to execute
        arbitrary code. (CVE-2017-1297)");
      script_set_attribute(attribute:"see_also", value:"http://www-01.ibm.com/support/docview.wss?uid=swg22003877");
      script_set_attribute(attribute:"see_also", value:"http://www-01.ibm.com/support/docview.wss?uid=swg22004878");
      script_set_attribute(attribute:"solution", value:
    "Apply the appropriate IBM DB2 Fix Pack or Special Build based on the
    most recent fix pack level for your branch.");
      script_set_cvss_base_vector("CVSS2#AV:L/AC:M/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
      script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
      script_set_attribute(attribute:"cvss_score_source", value:"CVE-2017-1297");
    
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2017/06/22");
      script_set_attribute(attribute:"patch_publication_date", value:"2017/06/22");
      script_set_attribute(attribute:"plugin_publication_date", value:"2017/06/30");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      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) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("db2_installed.nbin");
      script_require_keys("installed_sw/DB2 Server");
      script_exclude_keys("SMB/db2/Installed");
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    include("install_func.inc");
    include("db2_report_func.inc");
    
    # The remote host's OS is Windows, not Linux.
    if (get_kb_item("SMB/db2/Installed")) audit(AUDIT_OS_NOT, "Linux", "Windows");
    
    app     = "DB2 Server";
    install = get_single_install(app_name:app, exit_if_unknown_ver:TRUE);
    
    # DB2 has an optional OpenSSH server that will run on 
    # windows.  We need to exit out if we picked up the windows
    # installation that way.
    if ("Windows" >< install['platform'])
      audit(AUDIT_HOST_NOT, "Linux based operating system");
    
    version = kb_version = install['version'];
    
    product = install['product'];
    path    = install['path'];
    port    = install['port'];
    
    if(!port) port = 0;
    
    special_build = install['special_build'];
    if (empty_or_null(special_build)) special_build = "None";
    if (special_build != "None") kb_version += " with Special Build " + special_build;
    
    fix_ver = NULL;
    fix_build = NULL;
    
    if (version =~ "^9\.7\.")
    {
      fix_ver = "9.7.0.11";
      fix_build = "36621";
    }
    else if (version =~ "^10\.1\.")
    {
      fix_ver = "10.1.0.6";
      fix_build = "36610";
    }
    else if (version =~ "^10\.5\.")
    {
      fix_ver = "10.5.0.8";
      fix_build = "36605";
    }
    else if (version =~ "^11\.")
      fix_ver = "11.1.2.2";
    else
      audit(AUDIT_INST_PATH_NOT_VULN, app, kb_version, path);
    
    vuln = FALSE;
    cmp = ver_compare(ver:version, fix:fix_ver, strict:FALSE);
    # less than current fix pack                                      
    if (cmp < 0)
      vuln = TRUE;
    else if (cmp == 0 && !isnull(fix_build))
    {
      # missing special build or less than current special build      
      if (special_build == "None" || ver_compare(ver:special_build, fix:fix_build, strict:FALSE) < 0)
        vuln = TRUE;
    }
    
    if (!vuln)
      audit(AUDIT_INST_PATH_NOT_VULN, app, kb_version, path);
    
    report_db2(
        severity          : SECURITY_WARNING,
        port              : port,
        product           : app,
        path              : path,
        installed_version : version,
        fixed_version     : fix_ver,
        special_installed : special_build,
        special_fix       : fix_build);
    
  • NASL familyWindows
    NASL idDB2_1112FP2_WIN.NASL
    descriptionAccording to its version, the installation of IBM DB2 on the remote Windows host is either 9.7 prior to Fix Pack 11 Special Build 36621, 10.1 prior to Fix Pack 6 Special Build 36610, 10.5 prior to Fix Pack 8 Special Build 36605, or 11.1.2 prior to Fix Pack 2. It is, therefore, affected by the following vulnerabilities : - A buffer overflow condition exists due to improper validation of user-supplied input. A local attacker can exploit this to overwrite DB2 files or cause a denial of service condition. (CVE-2017-1105) - A stack-based buffer overflow condition exists in the Command Line Process (CLP) due to improper bounds checking. A local attacker can exploit this to execute arbitrary code. (CVE-2017-1297)
    last seen2020-06-01
    modified2020-06-02
    plugin id101162
    published2017-06-30
    reporterThis script is Copyright (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/101162
    titleIBM DB2 9.7 < FP11 Special Build 36621 / 10.1 < FP6 Special Build 36610 / 10.5 < FP8 Special Build 36605 / 11.1.2 < FP2 Multiple Vulnerabilities (Windows)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(101162);
      script_version("1.6");
      script_cvs_date("Date: 2019/11/12");
    
      script_cve_id("CVE-2017-1105", "CVE-2017-1297");
      script_bugtraq_id(99264, 99271);
    
      script_name(english:"IBM DB2 9.7 < FP11 Special Build 36621 / 10.1 < FP6 Special Build 36610 / 10.5 < FP8 Special Build 36605 / 11.1.2 < FP2 Multiple Vulnerabilities (Windows)");
      script_summary(english:"Checks the 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 on the remote
    Windows host is either 9.7 prior to Fix Pack 11 Special Build 36621,
    10.1 prior to Fix Pack 6 Special Build 36610, 10.5 prior to Fix Pack 8
    Special Build 36605, or 11.1.2 prior to Fix Pack 2. It is, therefore,
    affected by the following vulnerabilities :
    
      - A buffer overflow condition exists due to improper
        validation of user-supplied input. A local attacker can
        exploit this to overwrite DB2 files or cause a denial of
        service condition. (CVE-2017-1105)
    
      - A stack-based buffer overflow condition exists in the
        Command Line Process (CLP) due to improper bounds
        checking. A local attacker can exploit this to execute
        arbitrary code. (CVE-2017-1297)");
      script_set_attribute(attribute:"see_also", value:"http://www-01.ibm.com/support/docview.wss?uid=swg22003877");
      script_set_attribute(attribute:"see_also", value:"http://www-01.ibm.com/support/docview.wss?uid=swg22004878");
      script_set_attribute(attribute:"solution", value:
    "Apply the appropriate IBM DB2 Fix Pack or Special Build based on the
    most recent fix pack level for your branch.");
      script_set_cvss_base_vector("CVSS2#AV:L/AC:M/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
      script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
      script_set_attribute(attribute:"cvss_score_source", value:"CVE-2017-1297");
    
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2017/06/22");
      script_set_attribute(attribute:"patch_publication_date", value:"2017/06/22");
      script_set_attribute(attribute:"plugin_publication_date", value:"2017/06/30");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"cpe:/a:ibm:db2");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"Windows");
    
      script_copyright(english:"This script is Copyright (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("db2_and_db2_connect_installed.nbin");
      script_require_keys("SMB/db2/Installed");
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("install_func.inc");
    include("misc_func.inc");
    include("db2_report_func.inc");
    
    app = "DB2 Server";
    
    # linux uses register_install, so we need to check this KB item
    if(!get_kb_item("SMB/db2/Installed")) audit(AUDIT_NOT_INST, app);
    
    install = get_single_install(app_name:app, exit_if_unknown_ver:TRUE);
    version = report_version = install['version'];
    
    special_build = install['special_build'];
    if (empty_or_null(special_build)) special_build = "None";
    if (special_build != "None") report_version += " with Special Build " + special_build;
    
    path = install['path'];
    
    fix_ver = NULL;
    fix_build = NULL;
    
    if (version =~ "^9\.7\.")
    {
      fix_ver = "9.7.1100.358";
      fix_build = "36621";
    }
    else if (version =~ "^10\.1\.")
    {
      fix_ver = "10.1.600.582";
      fix_build = "36610";
    }
    else if (version =~ "^10\.5\.")
    {
      fix_ver = "10.5.800.384";
      fix_build = "36605";
    }
    else if (version =~ "^11\.")
      fix_ver = "11.1.2020.1393";
    else
      audit(AUDIT_INST_PATH_NOT_VULN, app, report_version, path);
    
    vuln = FALSE;
    cmp = ver_compare(ver:version, fix:fix_ver, strict:FALSE);
    # less than current fix pack                                      
    if (cmp < 0)
      vuln = TRUE;
    else if (cmp == 0 && !isnull(fix_build))
    {
      # missing special build or less than current special build      
      if (special_build == "None" || ver_compare(ver:special_build, fix:fix_build, strict:FALSE) < 0)
        vuln = TRUE;
    }
    
    if (!vuln)
      audit(AUDIT_INST_PATH_NOT_VULN, app, report_version, path);
    
    port = get_kb_item("SMB/transport");
    if (!port) port = 445;
    
    report_db2(
        severity          : SECURITY_WARNING,
        port              : port,
        product           : app,
        path              : path,
        installed_version : version,
        fixed_version     : fix_ver,
        special_installed : special_build,
        special_fix       : fix_build);
    
  • NASL familyWindows
    NASL idDB2_CONNECT_1112FP2_WIN.NASL
    descriptionAccording to its version, the installation of IBM DB2 Connect on the remote Windows host is either 9.7 prior to Fix Pack 11 Special Build 36621, 10.1 prior to Fix Pack 6 Special Build 36610, 10.5 prior to Fix Pack 8 Special Build 36605, or 11.1.2 prior to Fix Pack 2. It is, therefore, affected by the following vulnerabilities : - A buffer overflow condition exists due to improper validation of user-supplied input. A local attacker can exploit this to overwrite DB2 files or cause a denial of service condition. (CVE-2017-1105) - A stack-based buffer overflow condition exists in the Command Line Process (CLP) due to improper bounds checking. A local attacker can exploit this to execute arbitrary code. (CVE-2017-1297)
    last seen2020-06-01
    modified2020-06-02
    plugin id101163
    published2017-06-30
    reporterThis script is Copyright (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/101163
    titleIBM DB2 Connect 9.7 < FP11 Special Build 36621 / 10.1 < FP6 Special Build 36610 / 10.5 < FP8 Special Build 36605 / 11.1.2 < FP2 Multiple Vulnerabilities (Windows)

Talos

idTALOS-2018-0558
last seen2019-05-29
published2018-04-06
reporterTalos Intelligence
sourcehttp://www.talosintelligence.com/vulnerability_reports/TALOS-2018-0558
titleIBM DB2 Shared Memory Insecure Permissions Vulnerability