Junos SRX Series: Possible Unauthenticated Root Login Vulnerability

2016-07-14T00:00:00
ID OPENVAS:1361412562310106133
Type openvas
Reporter This script is Copyright (C) 2016 Greenbone Networks GmbH
Modified 2018-11-12T00:00:00

Description

Junos OS on SRX series is prone to a possible unauthenticated root login vulnerability

                                        
                                            ###############################################################################
# OpenVAS Vulnerability Test
# $Id: gb_junos_cve-2016-1278.nasl 12313 2018-11-12 08:53:51Z asteins $
#
# Junos SRX Series: Possible Unauthenticated Root Login Vulnerability
#
# Authors:
# Christian Kuersteiner <christian.kuersteiner@greenbone.net>
#
# Copyright:
# Copyright (c) 2016 Greenbone Networks GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
###############################################################################

CPE = 'cpe:/o:juniper:junos';

if (description)
{
  script_oid("1.3.6.1.4.1.25623.1.0.106133");
  script_version("$Revision: 12313 $");
  script_tag(name:"last_modification", value:"$Date: 2018-11-12 09:53:51 +0100 (Mon, 12 Nov 2018) $");
  script_tag(name:"creation_date", value:"2016-07-14 10:16:23 +0700 (Thu, 14 Jul 2016)");
  script_tag(name:"cvss_base", value:"6.9");
  script_tag(name:"cvss_base_vector", value:"AV:L/AC:M/Au:N/C:C/I:C/A:C");

  script_tag(name:"qod_type", value:"package");

  script_tag(name:"solution_type", value:"VendorFix");

  script_cve_id("CVE-2016-1278");

  script_name("Junos SRX Series: Possible Unauthenticated Root Login Vulnerability");

  script_category(ACT_GATHER_INFO);

  script_family("JunOS Local Security Checks");
  script_copyright("This script is Copyright (C) 2016 Greenbone Networks GmbH");
  script_dependencies("gb_ssh_junos_get_version.nasl", "gb_junos_snmp_version.nasl");
  script_mandatory_keys("Junos/Version", "Junos/model");

  script_tag(name:"summary", value:"Junos OS on SRX series is prone to a possible unauthenticated
root login vulnerability");

  script_tag(name:"vuldetect", value:"Checks if a vulnerable OS build is present on the target host.");

  script_tag(name:"insight", value:"Using the 'request system software' command with the 'partition' option
on an SRX Series device upgrading to Junos OS 12.1X46 can leave the system in a state where root CLI login
is allowed without a password due to the system reverting to a 'safe mode' authentication triggered by the
failed upgrade. Additionally, valid authentication credentials fail to work due to the same issue. Only root
with no password will work.

This issue only affects SRX Series devices upgraded to Junos OS 12.1X46 releases. No other platform or version
of Junos OS is affected by this vulnerability, and no other Juniper Networks products or platforms are affected
by this issue.");

  script_tag(name:"impact", value:"A local attacker may gain root access.");

  script_tag(name:"affected", value:"Junos OS 12.1X46 on SRX Series");

  script_tag(name:"solution", value:"New builds of Junos OS software are available from Juniper.
As a workaround avoid using the 'partition' option when upgrading an SRX Series device to Junos OS 12.1X46
prior to 12.1X46-D50.");

  script_xref(name:"URL", value:"http://kb.juniper.net/JSA10753");

  exit(0);
}

include("host_details.inc");
include("revisions-lib.inc");
include("version_func.inc");

model = get_kb_item("Junos/model");
if (!model || (toupper(model) !~ '^SRX'))
  exit(99);

if (!version = get_app_version(cpe: CPE, nofork: TRUE))
  exit(0);

if ((revcomp(a: version, b: "12.1X46-D65") < 0) &&
    (revcomp(a: version, b: "12.1X46") >= 0)) {
  report = report_fixed_ver(installed_version: version, fixed_version: "12.1X46-D65");
  security_message(port: 0, data: report);
  exit(0);
}

exit(99);