Vulnerabilities > CVE-2014-4071 - Remote Denial of Service vulnerability in Microsoft Lync Server 2013

047910
CVSS 5.0 - MEDIUM
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
NONE
Integrity impact
NONE
Availability impact
PARTIAL
network
low complexity
microsoft
nessus

Summary

The Server in Microsoft Lync Server 2013 allows remote attackers to cause a denial of service (NULL pointer dereference and daemon hang) via a crafted request, aka "Lync Denial of Service Vulnerability." <a href="http://cwe.mitre.org/data/definitions/476.html">CWE-476: NULL Pointer Dereference</a>

Vulnerable Configurations

Part Description Count
Application
Microsoft
1

Msbulletin

bulletin_idMS14-055
bulletin_url
date2014-09-09T00:00:00
impactDenial of Service
knowledgebase_id2990928
knowledgebase_url
severityImportant
titleVulnerabilities in Microsoft Lync Server Could Allow Denial of Service

Nessus

NASL familyWindows : Microsoft Bulletins
NASL idSMB_NT_MS14-055.NASL
descriptionThe version of Microsoft Lync Server installed on the remote host is affected by multiple vulnerabilities : - The Lync Server contains a flaw in how it handles exceptions, which can be exploited by a remote attacker to cause a denial of service. (CVE-2014-4068) - A cross-site scripting vulnerability exists in the Lync Server due to a failure to properly sanitize user input. An attacker can exploit this to obtain sensitive information from web sessions. (CVE-2014-4070) - The Lync Server contains a flaw in how it handles NULL dereferences, which can be exploited by a remote attacker to cause a denial of service. (CVE-2014-4071)
last seen2020-06-01
modified2020-06-02
plugin id77575
published2014-09-10
reporterThis script is Copyright (C) 2014-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
sourcehttps://www.tenable.com/plugins/nessus/77575
titleMS14-055: Vulnerability in Microsoft Lync Server Could Allow Denial of Service (2990928)
code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(77575);
  script_version("1.13");
  script_cvs_date("Date: 2019/11/25");

  script_cve_id("CVE-2014-4068", "CVE-2014-4070", "CVE-2014-4071");
  script_bugtraq_id(69579, 69586, 69592);
  script_xref(name:"MSFT", value:"MS14-055");
  script_xref(name:"MSKB", value:"2982390");
  script_xref(name:"MSKB", value:"2986072");
  script_xref(name:"MSKB", value:"2982389");
  script_xref(name:"MSKB", value:"2992965");
  script_xref(name:"MSKB", value:"2982388");
  script_xref(name:"MSKB", value:"2982385");
  script_xref(name:"IAVB", value:"2014-B-0123");

  script_name(english:"MS14-055: Vulnerability in Microsoft Lync Server Could Allow Denial of Service (2990928)");
  script_summary(english:"Checks the installed versions of Lync Server.");

  script_set_attribute(attribute:"synopsis", value:
"The remote host is affected by multiple vulnerabilities.");
  script_set_attribute(attribute:"description", value:
"The version of Microsoft Lync Server installed on the remote host is
affected by multiple vulnerabilities :

  - The Lync Server contains a flaw in how it handles
    exceptions, which can be exploited by a remote attacker
    to cause a denial of service. (CVE-2014-4068)

  - A cross-site scripting vulnerability exists in the Lync
    Server due to a failure to properly sanitize user input.
    An attacker can exploit this to obtain sensitive
    information from web sessions. (CVE-2014-4070)

  - The Lync Server contains a flaw in how it handles
    NULL dereferences, which can be exploited by a remote
    attacker to cause a denial of service. (CVE-2014-4071)");
  script_set_attribute(attribute:"see_also", value:"https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2014/ms14-055");
  script_set_attribute(attribute:"solution", value:
"Microsoft has released a set of patches for Microsoft Lync Server 2010
and 2013.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:N/I:P/A:N");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2014-4070");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");

  script_set_attribute(attribute:"vuln_publication_date", value:"2014/09/09");
  script_set_attribute(attribute:"patch_publication_date", value:"2014/09/09");
  script_set_attribute(attribute:"plugin_publication_date", value:"2014/09/10");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:lync_server");
  script_set_attribute(attribute:"stig_severity", value:"I");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Windows : Microsoft Bulletins");

  script_copyright(english:"This script is Copyright (C) 2014-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("smb_hotfixes.nasl", "ms_bulletin_checks_possible.nasl");
  script_require_keys("SMB/MS_Bulletin_Checks/Possible");
  script_require_ports(139, 445, "Host/patch_management_checks");

  exit(0);
}

include("audit.inc");
include("smb_func.inc");
include("smb_hotfixes.inc");
include("smb_hotfixes_fcheck.inc");
include("smb_reg_query.inc");
include("misc_func.inc");

global_var bulletin, vuln, installs;

vuln = FALSE;
installs = 0;

function check_vuln(fix, kb, name, path, ver, min_ver)
{
  local_var info;

  if (isnull(ver) || ver_compare(ver:ver, fix:fix, strict:FALSE) >= 0)
    return 0;

  # If min_ver is supplied, make sure the version is higher than the min_ver
  if (min_ver && ver_compare(ver:ver, fix:min_ver, strict:FALSE) == -1)
    return 0;

  info =
    '\n  Product           : ' + name +
    '\n  Path              : ' + path +
    '\n  Installed version : ' + ver +
    '\n  Fixed version     : ' + fix + '\n';
  hotfix_add_report(info, bulletin:bulletin, kb:kb);

  vuln = TRUE;
  if(kb == "2982390") set_kb_item(name: "www/0/XSS", value: TRUE);
}

get_kb_item_or_exit('SMB/MS_Bulletin_Checks/Possible');

bulletin = 'MS14-055';

kbs = make_list('2982390', '2986072', '2982389', "2992965", "2982388", "2982385");

if (get_kb_item("Host/patch_management_checks"))
  hotfix_check_3rd_party(bulletin:bulletin, kbs:kbs, severity:SECURITY_WARNING);

get_kb_item_or_exit("SMB/Registry/Enumerated", exit_code:1);

# Connect to the registry
registry_init();
hklm = registry_hive_connect(hive:HKEY_LOCAL_MACHINE, exit_on_fail:TRUE);

chkeys = make_array(
"2982385","{A593FD00-64F1-4288-A6F4-E699ED9DCA35}",
"2992965","{A766C25B-A1D1-4711-A726-AC3E7CA4AAB3}",
"2982390","{2A65AB9C-57AD-4EC6-BD4E-BD61A7C583B3}",
"2982388","{11CFB169-07EA-489D-BF8C-D8D29525720E}",
"2982389","{11CFB169-07EA-489D-BF8C-D8D29525720E}",
"2986072","{A593FD00-64F1-4288-A6F4-E699ED9DCA35}"
);

chtest = make_array(
"2982385","Server\Core\APIEM.dll",
"2992965","Deployment\Deploy.exe",
"2982390","Web Components\Autodiscover\Ext\Bin\system.net.http.formatting.dll",
"2982388","Application Host\Applications\Response Group\Microsoft.Rtc.Acd.Workflow.dll",
"2982389","Application Host\Applications\Response Group\Microsoft.Rtc.Acd.Workflow.dll",
"2986072","Server\Core\APIEM.dll"
);

names = make_array(
"2982385","Microsoft Lync Server 2010",
"2992965","Microsoft Lync Core Components 2013",
"2982390","Microsoft Lync Web Components Server 2013",
"2982388","Microsoft Lync Response Group Service 2010",
"2982389","Microsoft Lync Response Group Service 2013",
"2986072","Microsoft Lync Server 2013"
);

minvers = make_array(
"2982385","4.0.0.0",
"2992965","5.0.0.0",
"2982390","4.0.0.0",
"2982388","4.0.0.0",
"2982389","5.0.0.0",
"2986072","5.0.0.0"
);

fixvers = make_array(
"2982385","4.0.7577.199",
"2992965","5.0.8308.420",
"2982390","4.0.21112.0",
"2982388","4.0.7577.276",
"2982389","5.0.8308.803",
"2986072","5.0.8308.726"
);

paths = make_array();


installs = 0;
# Get all the keys we need
foreach kb (kbs)
{
  base = 'Software\\Microsoft\\Real-Time Communications\\'+chkeys[kb]+'\\';
  path = get_registry_value(handle:hklm,item:base+"InstallDir");
  ver  = get_registry_value(handle:hklm,item:base+"Version");
  if(isnull(ver) || isnull(path)) continue;

  paths[kb] = path;
  installs += 1;
}
# Close connection to registry
RegCloseKey(handle:hklm);
close_registry(close:FALSE);

if(installs == 0)
  audit(AUDIT_NOT_INST, "Microsoft Lync Server 2010 or 2013");

# Next verify component actually installed
foreach kb (kbs)
{
  if(empty_or_null(paths[kb])) continue;

  testfile = paths[kb]+chtest[kb];
  testfile = hotfix_get_fversion(path:testfile);
  if(testfile['error'] != HCF_OK) {
    installs -= 1;
    continue;
  }

  check_vuln(
    name    : names[kb],
    kb      : kb,
    path    : paths[kb]+chtest[kb],
    min_ver : minvers[kb],
    fix     : fixvers[kb],
    ver     : join(testfile["value"],sep:".")
  );
}
hotfix_check_fversion_end();

if(installs == 0) audit(AUDIT_NOT_INST, "Microsoft Lync Server 2010 or 2013");

if (!vuln) audit(AUDIT_HOST_NOT, 'affected');

# Flag the system as vulnerable
set_kb_item(name:"SMB/Missing/" + bulletin, value:TRUE);
hotfix_security_warning();