EulerOS 2.0 SP2 : libXpm libXdmcp libICE (EulerOS-SA-2017-1212)

2017-09-11T00:00:00
ID EULEROS_SA-2017-1212.NASL
Type nessus
Reporter Tenable
Modified 2018-11-14T00:00:00

Description

According to the versions of the libXpm libXdmcp libICE packages installed, the EulerOS installation on the remote host is affected by the following vulnerabilities :

  • An integer overflow flaw leading to a heap-based buffer overflow was found in libXpm. An attacker could use this flaw to crash an application using libXpm via a specially crafted XPM file. (CVE-2016-10164)

  • It was discovered that libXdmcp used weak entropy to generate session keys. On a multi-user system using xdmcp, a local attacker could potentially use information available from the process list to brute force the key, allowing them to hijack other users' sessions. (CVE-2017-2625)

  • It was discovered that libICE used a weak entropy to generate keys. A local attacker could potentially use this flaw for session hijacking using the information available from the process list. (CVE-2017-2626)

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(103070);
  script_version("3.7");
  script_cvs_date("Date: 2018/11/14 14:36:23");

  script_cve_id(
    "CVE-2016-10164",
    "CVE-2017-2625",
    "CVE-2017-2626"
  );

  script_name(english:"EulerOS 2.0 SP2 : libXpm
libXdmcp
libICE (EulerOS-SA-2017-1212)");
  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 libXpm libXdmcp libICE packages
installed, the EulerOS installation on the remote host is affected by
the following vulnerabilities :

  - An integer overflow flaw leading to a heap-based buffer
    overflow was found in libXpm. An attacker could use
    this flaw to crash an application using libXpm via a
    specially crafted XPM file. (CVE-2016-10164)

  - It was discovered that libXdmcp used weak entropy to
    generate session keys. On a multi-user system using
    xdmcp, a local attacker could potentially use
    information available from the process list to brute
    force the key, allowing them to hijack other users'
    sessions. (CVE-2017-2625)

  - It was discovered that libICE used a weak entropy to
    generate keys. A local attacker could potentially use
    this flaw for session hijacking using the information
    available from the process list. (CVE-2017-2626)

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.");
  # https://developer.huawei.com/ict/en/site-euleros/euleros/security-advisories/EulerOS-SA-2017-1212
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?83449782");
  script_set_attribute(attribute:"solution", value:
"Update the affected libXpm
libXdmcp
libICE packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/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:N/AC:L/PR:N/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:"patch_publication_date", value:"2017/08/26");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:libICE");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:libICE-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:libXdmcp");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:libXpm");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:libXpm-devel");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:2.0");
  script_set_attribute(attribute:"plugin_publication_date", value:"2017/09/11");
  script_end_attributes();

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

  script_copyright(english:"This script is Copyright (C) 2017-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 !~ "^(2)$") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP2");

uvp = get_kb_item("Host/EulerOS/uvp_version");
if (!empty_or_null(uvp)) audit(AUDIT_OS_NOT, "EulerOS 2.0 SP2", "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 = ["libICE-1.0.9-9",
        "libICE-devel-1.0.9-9",
        "libXdmcp-1.1.2-6",
        "libXpm-3.5.12-1",
        "libXpm-devel-3.5.12-1"];

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

if (flag)
{
  security_report_v4(
    port       : 0,
    severity   : SECURITY_HOLE,
    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, "libXpm
libXdmcp
libICE");
}