Vulnerabilities > CVE-2016-4925 - Data Processing Errors vulnerability in Juniper Junose

047910
CVSS 7.5 - HIGH
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
NONE
Integrity impact
NONE
Availability impact
HIGH
network
low complexity
juniper
CWE-19
nessus

Summary

Receipt of a specifically malformed IPv6 packet processed by the router may trigger a line card reset: processor exception 0x68616c74 (halt) in task: scheduler. The line card will reboot and recover without user interaction. However, additional specifically malformed packets may cause follow-on line card resets and lead to an extended service outage. This issue only affects E Series routers with IPv6 licensed and enabled. Routers not configured to process IPv6 traffic are unaffected by this vulnerability. Juniper SIRT is not aware of any malicious exploitation of this vulnerability. No other Juniper Networks products or platforms are affected by this issue.

Common Weakness Enumeration (CWE)

Common Attack Pattern Enumeration and Classification (CAPEC)

  • 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.
  • XML Nested Payloads
    Applications often need to transform data in and out of the XML format by using an XML parser. It may be possible for an attacker to inject data that may have an adverse effect on the XML parser when it is being processed. By nesting XML data and causing this data to be continuously self-referential, an attacker can cause the XML parser to consume more resources while processing, causing excessive memory consumption and CPU utilization. An attacker's goal is to leverage parser failure to his or her advantage. In most cases this type of an attack will result in a denial of service due to an application becoming unstable, freezing, or crash. However it may be possible to cause a crash resulting in arbitrary code execution, leading to a jump from the data plane to the control plane [R.230.1].
  • XML Oversized Payloads
    Applications often need to transform data in and out of the XML format by using an XML parser. It may be possible for an attacker to inject data that may have an adverse effect on the XML parser when it is being processed. By supplying oversized payloads in input vectors that will be processed by the XML parser, an attacker can cause the XML parser to consume more resources while processing, causing excessive memory consumption and CPU utilization, and potentially cause execution of arbitrary code. An attacker's goal is to leverage parser failure to his or her advantage. In many cases this type of an attack will result in a denial of service due to an application becoming unstable, freezing, or crash. However it is possible to cause a crash resulting in arbitrary code execution, leading to a jump from the data plane to the control plane [R.231.1].
  • XML Client-Side Attack
    Client applications such as web browsers that process HTML data often need to transform data in and out of the XML format by using an XML parser. It may be possible for an attacker to inject data that may have an adverse effect on the XML parser when it is being processed. These adverse effects may include the parser crashing, consuming too much of a resource, executing too slowly, executing code supplied by an attacker, allowing usage of unintended system functionality, etc. An attacker's goal is to leverage parser failure to his or her advantage. In some cases it may be possible to jump from the data plane to the control plane via bad data being passed to an XML parser. [R.484.1]
  • XML Parser Attack
    Applications often need to transform data in and out of the XML format by using an XML parser. It may be possible for an attacker to inject data that may have an adverse effect on the XML parser when it is being processed. These adverse effects may include the parser crashing, consuming too much of a resource, executing too slowly, executing code supplied by an attacker, allowing usage of unintended system functionality, etc. An attacker's goal is to leverage parser failure to his or her advantage. In some cases it may be possible to jump from the data plane to the control plane via bad data being passed to an XML parser. [R.99.1]

Nessus

NASL familyMisc.
NASL idJUNIPER_JSA10767.NASL
descriptionAccording to its version, the remote Juniper E-eries device is affected by a denial of service vulnerability in the IPv6 support component due to improper handling IPv6 packets. An unauthenticated, remote attacker can exploit this, via a specially crafted IPv6 packet, to cause the line card to reset. Note that devices with IPv6 disabled are not affected.
last seen2020-06-01
modified2020-06-02
plugin id94678
published2016-11-10
reporterThis script is Copyright (C) 2016-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
sourcehttps://www.tenable.com/plugins/nessus/94678
titleJuniper JUNOSe IPv6 Packet Handling Line Card Reset Remote DoS (JSA10767)
code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(94678);
  script_version("1.6");
  script_cvs_date("Date: 2019/11/14");

  script_cve_id("CVE-2016-4925");
  script_bugtraq_id(93533);
  script_xref(name:"JSA", value:"JSA10767");

  script_name(english:"Juniper JUNOSe IPv6 Packet Handling Line Card Reset Remote DoS (JSA10767)");
  script_summary(english:"Checks the JunosE version.");

  script_set_attribute(attribute:"synopsis", value:
"The remote host is affected by a denial of service vulnerability.");
  script_set_attribute(attribute:"description", value:
"According to its version, the remote Juniper E-eries device is
affected by a denial of service vulnerability in the IPv6 support
component due to improper handling IPv6 packets. An unauthenticated,
remote attacker can exploit this, via a specially crafted IPv6 packet,
to cause the line card to reset.

Note that devices with IPv6 disabled are not affected.");
  script_set_attribute(attribute:"see_also", value:"https://kb.juniper.net/InfoCenter/index?page=content&id=JSA10767");
  script_set_attribute(attribute:"solution", value:
"Upgrade to Juniper JUNOSe version 10.3.3p0-15 / 12.3.3p0-6 /
13.3.3p0-1 / 14.3.2 / 15.1.0 or later.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/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-2016-4925");

  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:"2016/10/12");
  script_set_attribute(attribute:"patch_publication_date", value:"2016/10/12");
  script_set_attribute(attribute:"plugin_publication_date", value:"2016/11/10");

  script_set_attribute(attribute:"potential_vulnerability", value:"true");
  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:juniper:junose");
  script_end_attributes();

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

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

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Settings/ParanoidReport", "Host/JunosE/version");

  exit(0);
}

include("audit.inc");
include("junos_kb_cmd_func.inc");
include("misc_func.inc");
include("global_settings.inc");

# Only E-series routers with IPv6 enabled are affected
if (report_paranoia < 2) audit(AUDIT_PARANOID);

display_version = get_kb_item_or_exit('Host/JunosE/version');

item = eregmatch(string:display_version,
                 pattern:'^([0-9.]+)([pP]([0-9]+)-([0-9]+))?');
# this should not happen
if (isnull(item)) audit(AUDIT_VER_FORMAT, display_version);
version = item[1];

fix = NULL;

# Affected: 10.x, 12.x, 13.x, 14.x, 15.x
# Fixes:    10.3.3p0-15, 12.3.3p0-6, 13.3.3p0-1, 14.3.2, 15.1.0

# 10.x check
ret = ver_compare(ver:version, fix:'10.3.3', minver:'10.0', strict:FALSE);
if(!isnull(ret))
{
  if (ret < 0) fix = '10.3.3p0-15';
  else if (ret == 0)
  {
    if ( isnull(item[2]) ||
         (int(item[3]) == 0 && int(item[4]) < 15)
    ) fix = '10.3.3p0-15';
  }
}

# 12.x check
if (isnull(fix))
{
  ret = ver_compare(ver:version, fix:'12.3.3', minver:'12.0', strict:FALSE);
  if(!isnull(ret))
  {
    if (ret < 0) fix = '12.3.3p0-6';
    else if (ret == 0)
    {
      if ( isnull(item[2]) ||
           (int(item[3]) == 0 && int(item[4]) < 6)
      ) fix = '12.3.3p0-6';
    }
  }
}

# 13.x check
if (isnull(fix))
{
  ret = ver_compare(ver:version, fix:'13.3.3', minver:'13.0', strict:FALSE);
  if(!isnull(ret))
  {
    if (ret < 0) fix = '13.3.3p0-1';
    else if (ret == 0)
    {
      if ( isnull(item[2]) ||
           (int(item[3]) == 0 && int(item[4]) < 1)
      ) fix = '13.3.3p0-1';
    }
  }
}

# 14.x check
if (isnull(fix))
{
  ret = ver_compare(ver:version, fix:'14.3.2', minver:'14.0', strict:FALSE);
  if (!isnull(ret) && ret < 0) fix = '14.3.2';
}

# 15.x check
if (isnull(fix))
{
  ret = ver_compare(ver:version, fix:'15.1.0', minver:'15.0', strict:FALSE);
  if (!isnull(ret) && ret < 0) fix = '15.1.0';
}

if (isnull(fix))
  audit(AUDIT_INST_VER_NOT_VULN, 'JunosE', display_version);

junos_report(
  ver:display_version,
  fix:fix,
  override:TRUE,
  severity:SECURITY_WARNING
);