EulerOS 2.0 SP1 : java-1.7.0-openjdk (EulerOS-SA-2018-1128)

2018-05-29T00:00:00
ID EULEROS_SA-2018-1128.NASL
Type nessus
Reporter Tenable
Modified 2018-08-29T00:00:00

Description

According to the versions of the java-1.7.0-openjdk packages installed, the EulerOS installation on the remote host is affected by the following vulnerabilities :

  • OpenJDK: incorrect handling of Reference clones can lead to sandbox bypass.(CVE-2018-2814)

  • OpenJDK: unrestricted deserialization of data from JCEKS key stores.(CVE-2018-2794)

  • OpenJDK: insufficient consistency checks in deserialization of multiple classes.(CVE-2018-2795)

  • OpenJDK: unbounded memory allocation during deserialization in PriorityBlockingQueue.(CVE-2018-2796)

  • OpenJDK: unbounded memory allocation during deserialization in TabularDataSupport. (CVE-2018-2797)

  • OpenJDK: unbounded memory allocation during deserialization in Container.(CVE-2018-2798)

  • OpenJDK: unbounded memory allocation during deserialization in NamedNodeMapImpl.(CVE-2018-2799)

  • OpenJDK: RMI HTTP transport enabled by default.(CVE-2018-2800)

  • OpenJDK: unbounded memory allocation during deserialization in StubIORImpl.(CVE-2018-2815)

  • OpenJDK: incorrect merging of sections in the JAR manifest.(CVE-2018-2790)

Note that Tenable Network Security has extracted the preceding description block directly from the EulerOS security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.

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

include("compat.inc");

if (description)
{
  script_id(110132);
  script_version("1.5");
  script_cvs_date("Date: 2018/08/29 12:45:30");

  script_cve_id(
    "CVE-2018-2790",
    "CVE-2018-2794",
    "CVE-2018-2795",
    "CVE-2018-2796",
    "CVE-2018-2797",
    "CVE-2018-2798",
    "CVE-2018-2799",
    "CVE-2018-2800",
    "CVE-2018-2814",
    "CVE-2018-2815"
  );

  script_name(english:"EulerOS 2.0 SP1 : java-1.7.0-openjdk (EulerOS-SA-2018-1128)");
  script_summary(english:"Checks the rpm output for the updated packages.");

  script_set_attribute(attribute:"synopsis", value:
"The remote EulerOS host is missing multiple security updates.");
  script_set_attribute(attribute:"description", value:
"According to the versions of the java-1.7.0-openjdk packages
installed, the EulerOS installation on the remote host is affected by
the following vulnerabilities :

  - OpenJDK: incorrect handling of Reference clones can
    lead to sandbox bypass.(CVE-2018-2814)

  - OpenJDK: unrestricted deserialization of data from
    JCEKS key stores.(CVE-2018-2794)

  - OpenJDK: insufficient consistency checks in
    deserialization of multiple classes.(CVE-2018-2795)

  - OpenJDK: unbounded memory allocation during
    deserialization in
    PriorityBlockingQueue.(CVE-2018-2796)

  - OpenJDK: unbounded memory allocation during
    deserialization in TabularDataSupport. (CVE-2018-2797)

  - OpenJDK: unbounded memory allocation during
    deserialization in Container.(CVE-2018-2798)

  - OpenJDK: unbounded memory allocation during
    deserialization in NamedNodeMapImpl.(CVE-2018-2799)

  - OpenJDK: RMI HTTP transport enabled by
    default.(CVE-2018-2800)

  - OpenJDK: unbounded memory allocation during
    deserialization in StubIORImpl.(CVE-2018-2815)

  - OpenJDK: incorrect merging of sections in the JAR
    manifest.(CVE-2018-2790)

Note that Tenable Network Security has extracted the preceding
description block directly from the EulerOS security advisory. Tenable
has attempted to automatically clean and format it as much as possible
without introducing additional issues.");
  # http://developer.huawei.com/ict/en/site-euleros/euleros/security-advisories/EulerOS-SA-2018-1128
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?dbf345c2");
  script_set_attribute(attribute:"solution", value:
"Update the affected java-1.7.0-openjdk packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:H/Au:N/C:P/I:P/A:P");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H");

  script_set_attribute(attribute:"patch_publication_date", value:"2018/05/14");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:java-1.7.0-openjdk");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:java-1.7.0-openjdk-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:java-1.7.0-openjdk-headless");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:2.0");
  script_set_attribute(attribute:"plugin_publication_date", value:"2018/05/29");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Huawei Local Security Checks");

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

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/EulerOS/release", "Host/EulerOS/rpm-list", "Host/EulerOS/sp");
  script_exclude_keys("Host/EulerOS/uvp_version");

  exit(0);
}

include("audit.inc");
include("global_settings.inc");
include("rpm.inc");

if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);

release = get_kb_item("Host/EulerOS/release");
if (isnull(release) || release !~ "^EulerOS") audit(AUDIT_OS_NOT, "EulerOS");
if (release !~ "^EulerOS release 2\.0(\D|$)") audit(AUDIT_OS_NOT, "EulerOS 2.0");

sp = get_kb_item("Host/EulerOS/sp");
if (isnull(sp) || sp !~ "^(1)$") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP1");

uvp = get_kb_item("Host/EulerOS/uvp_version");
if (!empty_or_null(uvp)) audit(AUDIT_OS_NOT, "EulerOS 2.0 SP1", "EulerOS UVP " + uvp);

if (!get_kb_item("Host/EulerOS/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);

cpu = get_kb_item("Host/cpu");
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "EulerOS", cpu);

flag = 0;

pkgs = ["java-1.7.0-openjdk-1.7.0.181-2.6.14.5",
        "java-1.7.0-openjdk-devel-1.7.0.181-2.6.14.5",
        "java-1.7.0-openjdk-headless-1.7.0.181-2.6.14.5"];

foreach (pkg in pkgs)
  if (rpm_check(release:"EulerOS-2.0", sp:"1", reference:pkg)) flag++;

if (flag)
{
  security_report_v4(
    port       : 0,
    severity   : SECURITY_WARNING,
    extra      : rpm_report_get()
  );
  exit(0);
}
else
{
  tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, "java-1.7.0-openjdk");
}