Lucene search

K
nessusThis script is Copyright (C) 2019-2022 and is owned by Tenable, Inc. or an Affiliate thereof.GRANDSTREAM_SIP_2019_003.NASL
HistoryApr 19, 2019 - 12:00 a.m.

Multiple Command Injection Vulnerabilities in Grandstream Products

2019-04-1900:00:00
This script is Copyright (C) 2019-2022 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
129

CVSS2

10

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

EPSS

0.91

Percentile

98.9%

Multiple Vulnerabilities in Grandstream devices.

  • The affected devices are: GAC2500, GVC3202, GXP2200, GXV3275, GXV3240, GXV3611IR_HD, GXV3611IR_HD, GXV3611IR_HD, UCM6204, GXV3370, & WP820.

  • A remote command execution vulnerability exists in the ‘priority’ and ‘logserver’ parameters. An unauthenticated, remote attacker can exploit them to bypass authentication and execute arbitrary commands with root privileges.

  • A blind command injection vulnerability exists in the ‘file-backup’ parameter. An unauthenticated, remote attacker can exploit this to bypass authentication and obtain a root shell.

#
# (C) Tenable Network Security, Inc.
#

include('compat.inc');

if (description)
{
  script_id(124173);
  script_version("1.7");
  script_set_attribute(attribute:"plugin_modification_date", value:"2022/02/09");

  script_cve_id(
    "CVE-2019-10655",
    "CVE-2019-10659",
    "CVE-2019-10660",
    "CVE-2019-10661",
    "CVE-2019-10662",
    "CVE-2019-10663"
  );

  script_name(english:"Multiple Command Injection Vulnerabilities in Grandstream Products");

  script_set_attribute(attribute:"synopsis", value:
"The remote device is vulnerable and can be compromised");
  script_set_attribute(attribute:"description", value:
"Multiple Vulnerabilities in Grandstream devices.

   - The affected devices are: GAC2500, GVC3202, GXP2200, 
     GXV3275, GXV3240, GXV3611IR_HD, GXV3611IR_HD, GXV3611IR_HD, 
     UCM6204, GXV3370, & WP820.

   - A remote command execution vulnerability exists in the 'priority' 
     and 'logserver' parameters. An unauthenticated, remote attacker can exploit 
     them to bypass authentication and execute arbitrary commands
     with root privileges. 

   - A blind command injection vulnerability exists in the 
     'file-backup' parameter. An unauthenticated, remote attacker can
     exploit this to bypass authentication and obtain a root shell.");
  script_set_attribute(attribute:"solution", value:
"Update to the fixed version as per the advisory.");
  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:"cvss_score_source", value:"CVE-2019-10661");

  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
  script_set_attribute(attribute:"metasploit_name", value:'Grandstream GXV31XX settimezone Unauthenticated Command Execution');
  script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");

  script_set_attribute(attribute:"vuln_publication_date", value:"2019/03/22");
  script_set_attribute(attribute:"patch_publication_date", value:"2019/03/22");
  script_set_attribute(attribute:"plugin_publication_date", value:"2019/04/19");

  script_set_attribute(attribute:"plugin_type", value:"remote");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Misc.");

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

  script_dependencies("grandstream_sip_detect.nbin");
  script_require_ports("Services/sip", "Services/udp/sip");

  exit(0);
}

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

# obtain ports/proto detected or exit...
detected_on = get_kb_list('sip/grandstream');

if (empty_or_null(detected_on))
  exit(0, "No Grandstream Models were found in the global KB.");


# Flatten the entries out to get the list of URLs.
detected_on = list_uniq(make_list(detected_on));

# initialize... before chking / appending any possible results
vuln = FALSE;
report = NULL;

# what's affected...
models = {
  'GAC2500' : { 'constraints': [{'max_version' : '1.0.3.30', 'fixed_version' : '1.0.3.35', 'fixed_display' : '1.0.3.35'}]},
  'GVC3200' : { 'constraints': [{'max_version' : '1.0.3.51', 'fixed_version' : '1.0.3.57', 'fixed_display' : '1.0.3.57 (Beta)'}]},
  'GVC3202' : { 'constraints': [{'max_version' : '1.0.3.51', 'fixed_version' : '1.0.3.57', 'fixed_display' : '1.0.3.57 (Beta)'}]},
  'GXP2200' : { 'constraints': [{'max_version' : '1.0.3.27', 'fixed_version': '9.9.9.99', 'fixed_display' : 'this device is at the end-of-life'}]},
  'GXV3240' : { 'constraints': [{'max_version' : '1.0.3.210', 'fixed_version' : '1.0.3.219', 'fixed_display' : '1.0.3.219 (Beta)'}]},
  'GXV3275' : { 'constraints': [{'max_version' : '1.0.3.210', 'fixed_version' : '1.0.3.219', 'fixed_display' : '1.0.3.219 (Beta)'}]},
  'GXV3611IR_HD' : { 'constraints': [{'max_version' : '1.0.3.21', 'fixed_version' : '1.0.3.23', 'fixed_display' : '1.0.3.23'}]},
  'UCM6204' : { 'constraints': [{'max_version' : '1.0.18.12', 'fixed_version' : '1.0.19.20', 'fixed_display' : '1.0.19.20 (Beta)'}]},
  'GXV3370' : { 'constraints': [{'max_version' : '1.0.1.33', 'fixed_version' : '1.0.1.41', 'fixed_display' : '1.0.1.41 (Beta)'}]},
  'WP820'   : { 'constraints': [{'max_version' : '1.0.1.15', 'fixed_version' : '1.0.3.6', 'fixed_display' : '1.0.3.6'}]}
};


# loop through the detected_on (proto/port) assets
# obtain the model/version of the associated proto/port
# alert if matching the known affected assets
foreach port_proto (detected_on)
{
  model = get_kb_item("sip/grandstream/" + port_proto + "/model");
  version = get_kb_item("sip/grandstream/" + port_proto + "/version");
  if(empty_or_null(model) || empty_or_null(version))
    continue;

  # if the model is found, check for a version less than... 
  output = vcf::check_version(version:vcf::parse_version(version), constraints:models[model]['constraints']);

  if(!vcf::is_error(output) && !isnull(output))
  {
    vuln = TRUE;
    report +=
    '\n  Model             : ' + model +
    '\n  Installed Version : ' + version +
    '\n  Fixed Version     : ' + models[model]['constraints'][0]['fixed_display'] +
    '\n  Port / Protocol   : ' + port_proto +
    '\n';
  }
}

if(!vuln) audit(AUDIT_INST_PATH_NOT_VULN, 'The Grandstream asset' ); # is installed and not affected....
# we will have one or many ports... zeroing out...
security_report_v4(port:0, severity:SECURITY_HOLE, extra:report);

CVSS2

10

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

EPSS

0.91

Percentile

98.9%