Vulnerabilities > CVE-2020-5821 - Uncontrolled Search Path Element vulnerability in Symantec Endpoint Protection

047910
CVSS 7.8 - HIGH
Attack vector
LOCAL
Attack complexity
LOW
Privileges required
LOW
Confidentiality impact
HIGH
Integrity impact
HIGH
Availability impact
HIGH
local
low complexity
symantec
CWE-427
nessus

Summary

Symantec Endpoint Protection (SEP) and Symantec Endpoint Protection Small Business Edition (SEP SBE), prior to 14.2 RU2 MP1 and prior to 14.2.5569.2100 respectively, may be susceptible to a DLL injection vulnerability, which is a type of issue whereby an individual attempts to execute their own code in place of legitimate code as a means to perform an exploit.

Common Weakness Enumeration (CWE)

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Leveraging/Manipulating Configuration File Search Paths
    This attack loads a malicious resource into a program's standard path used to bootstrap and/or provide contextual information for a program like a path variable or classpath. J2EE applications and other component based applications that are built from multiple binaries can have very long list of dependencies to execute. If one of these libraries and/or references is controllable by the attacker then application controls can be circumvented by the attacker. A standard UNIX path looks similar to this If the attacker modifies the path variable to point to a locale that includes malicious resources then the user unwittingly can execute commands on the attackers' behalf: This is a form of usurping control of the program and the attack can be done on the classpath, database resources, or any other resources built from compound parts. At runtime detection and blocking of this attack is nearly impossible, because the configuration allows execution.
  • DLL Search Order Hijacking
    The attacker exploits the functionality of the Windows DLL loader where the process loading the DLL searches for the DLL to be loaded first in the same directory in which the process binary resides and then in other directories (e.g., System32). Exploitation of this preferential search order can allow an attacker to make the loading process load the attackers' rogue DLL rather than the legitimate DLL. For instance, an attacker with access to the file system may place a malicious ntshrui.dll in the C:\Windows directory. This DLL normally resides in the System32 folder. Process explorer.exe which also resides in C:\Windows, upon trying to load the ntshrui.dll from the System32 folder will actually load the DLL supplied by the attacker simply because of the preferential search order. Since the attacker has placed its malicious ntshrui.dll in the same directory as the loading explorer.exe process, the DLL supplied by the attacker will be found first and thus loaded in lieu of the legitimate DLL. Since explorer.exe is loaded during the boot cycle, the attackers' malware is guaranteed to execute. This attack can be leveraged with many different DLLs and with many different loading processes. No forensic trails are left in the system's registry or file system that an incorrect DLL had been loaded.

Nessus

NASL familyWindows
NASL idSYMANTEC_ENDPOINT_PROT_CLIENT_SYMSA1505.NASL
descriptionThe version of Symantec Endpoint Protection (SEP) Client installed on the remote host is 14.x prior to 14.2.5569.2100. It is, therefore, affected by multiple vulnerabilities: - A privilege escalation vulnerability exists. An unauthenticated, remote attacker can exploit this to compromise the software application to gain elevated access to resources that are normally protected from an application or user. (CVE-2020-5820, CVE-2020-5822, CVE-2020-5823) - A DLL injection vulnerability exists. An unauthenticated, local attacker can exploit this to execute their own code in place of legitimate code as a means to perform an exploit. (CVE-2020-5821) - A denial of service (DoS) vulnerability exists. An unauthenticated, remote attacker can exploit this issue to make the application stop responding.(CVE-2020-5824) - An arbitrary file write vulnerability exists. An unauthenticated, remote attacker can exploit this to overwrite existing files on the resident system without proper privileges. (CVE-2020-5825) - An out-of-bounds read error exists. An unauthenticated, remote attacker can exploit this to read memory outside of the bounds of the memory that had been allocated to the program. (CVE-2020-5826) Note that Nessus has not tested for this issue but has instead relied only on the application
last seen2020-03-18
modified2020-02-13
plugin id133675
published2020-02-13
reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
sourcehttps://www.tenable.com/plugins/nessus/133675
titleSymantec Endpoint Protection Client 14.x < 14.2.5569.2100 Multiple Vulnerabilities (SYMSA1505)
code
#
# (C) Tenable Network Security, Inc.
#

include('compat.inc');

if (description)
{
  script_id(133675);
  script_version("1.3");
  script_set_attribute(attribute:"plugin_modification_date", value:"2020/02/13");

  script_cve_id(
    "CVE-2020-5820",
    "CVE-2020-5821",
    "CVE-2020-5822",
    "CVE-2020-5823",
    "CVE-2020-5824",
    "CVE-2020-5825",
    "CVE-2020-5826"
  );
  script_bugtraq_id(
    111771,
    111773,
    111774,
    111775,
    111776,
    111777,
    111778
  );
  script_xref(name:"IAVA", value:"2020-A-0060");

  script_name(english:"Symantec Endpoint Protection Client 14.x < 14.2.5569.2100 Multiple Vulnerabilities (SYMSA1505)");
  script_summary(english:"Checks the SEP Client version.");

  script_set_attribute(attribute:"synopsis", value:
"The Symantec Endpoint Protection Client installed on the remote host
is affected by multiple vulnerabilities.");
  script_set_attribute(attribute:"description", value:
"The version of Symantec Endpoint Protection (SEP) Client installed 
on the remote host is 14.x prior to 14.2.5569.2100. It is, therefore, affected by multiple vulnerabilities:

    - A privilege escalation vulnerability exists. An unauthenticated,
      remote attacker can exploit this to compromise the software 
      application to gain elevated access to resources that are 
      normally protected from an application or user. 
      (CVE-2020-5820, CVE-2020-5822, CVE-2020-5823)

    - A DLL injection vulnerability exists. An unauthenticated, local
      attacker can exploit this to execute their own code in place of
      legitimate code as a means to perform an exploit. (CVE-2020-5821)	
 
    - A denial of service (DoS) vulnerability exists. An 
      unauthenticated, remote attacker can exploit this issue to make
      the application stop responding.(CVE-2020-5824)
    
    - An arbitrary file write vulnerability exists. An 
      unauthenticated, remote attacker can exploit this to overwrite 
      existing files on the resident system without proper 
      privileges. (CVE-2020-5825)

    - An out-of-bounds read error exists. An unauthenticated, remote 
      attacker can exploit this to read memory outside of the bounds 
      of the memory that had been allocated to the program. (CVE-2020-5826)

Note that Nessus has not tested for this issue but has instead relied
only on the application's self-reported version number.");
  # https://support.symantec.com/en_US/article.SYMSA1505.html
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?9ad00a7d");
  script_set_attribute(attribute:"solution", value:
"Upgrade to Symantec Endpoint Protection Client version
14.2.5569.2100 or later.");
  script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:P/I:P/A:P");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2020-5823");

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

  script_set_attribute(attribute:"vuln_publication_date", value:"2020/02/03");
  script_set_attribute(attribute:"patch_publication_date", value:"2020/02/03");
  script_set_attribute(attribute:"plugin_publication_date", value:"2020/02/13");

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

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

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

  script_dependencies("savce_installed.nasl");
  script_require_keys("Antivirus/SAVCE/version");
  script_require_ports(139, 445);

  exit(0);
}

include('audit.inc');
include('global_settings.inc');
include('misc_func.inc');

app = 'Symantec Endpoint Protection Client';

display_ver = get_kb_item_or_exit('Antivirus/SAVCE/version');
edition = get_kb_item('Antivirus/SAVCE/edition');
if(get_kb_item('SMB/svc/ssSpnAv')) audit(AUDIT_INST_VER_NOT_VULN, 'Symantec.cloud Endpoint Protection');

if (isnull(edition)) edition = '';
else if (edition == 'sepsb') app += ' Small Business Edition';
fixed_ver = NULL;

if (display_ver =~ "^14\.")
  fixed_ver = '14.2.5569.2100';
else
  audit(AUDIT_INST_VER_NOT_VULN, app, display_ver);


if (ver_compare(ver:display_ver, fix:fixed_ver, strict:FALSE) == -1)
{
  port = get_kb_item('SMB/transport');
  if (!port) port = 445;

  report =
    '\n  Product           : ' + app +
    '\n  Installed version : ' + display_ver +
    '\n  Fixed version     : ' + fixed_ver +
    '\n';
  security_report_v4(severity:SECURITY_WARNING, port:port, extra:report);
}
else audit(AUDIT_INST_VER_NOT_VULN, app, display_ver);