Amazon Linux AMI : libnl3 (ALAS-2017-876)

2017-09-01T00:00:00
ID ALA_ALAS-2017-876.NASL
Type nessus
Reporter This script is Copyright (C) 2017-2018 and is owned by Tenable, Inc. or an Affiliate thereof.
Modified 2020-08-02T00:00:00

Description

Integer overflow in nlmsg_reserve() :

An integer overflow leading to a heap-buffer overflow was found in the libnl library. An attacker could use this flaw to cause an application compiled with libnl to crash or possibly execute arbitrary code in the context of the user running such an application. (CVE-2017-0553)

                                        
                                            #
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Amazon Linux AMI Security Advisory ALAS-2017-876.
#

include("compat.inc");

if (description)
{
  script_id(102864);
  script_version("3.5");
  script_cvs_date("Date: 2018/09/04 13:20:07");

  script_cve_id("CVE-2017-0553");
  script_xref(name:"ALAS", value:"2017-876");

  script_name(english:"Amazon Linux AMI : libnl3 (ALAS-2017-876)");
  script_summary(english:"Checks rpm output for the updated packages");

  script_set_attribute(
    attribute:"synopsis", 
    value:"The remote Amazon Linux AMI host is missing a security update."
  );
  script_set_attribute(
    attribute:"description", 
    value:
"Integer overflow in nlmsg_reserve() :

An integer overflow leading to a heap-buffer overflow was found in the
libnl library. An attacker could use this flaw to cause an application
compiled with libnl to crash or possibly execute arbitrary code in the
context of the user running such an application. (CVE-2017-0553)"
  );
  script_set_attribute(
    attribute:"see_also",
    value:"https://alas.aws.amazon.com/ALAS-2017-876.html"
  );
  script_set_attribute(
    attribute:"solution", 
    value:"Run 'yum update libnl3' to update your system."
  );
  script_set_cvss_base_vector("CVSS2#AV:N/AC:H/Au:N/C:C/I:C/A:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:libnl3");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:libnl3-cli");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:libnl3-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:libnl3-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:libnl3-doc");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:amazon:linux");

  script_set_attribute(attribute:"patch_publication_date", value:"2017/08/30");
  script_set_attribute(attribute:"plugin_publication_date", value:"2017/09/01");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_copyright(english:"This script is Copyright (C) 2017-2018 and is owned by Tenable, Inc. or an Affiliate thereof.");
  script_family(english:"Amazon Linux Local Security Checks");

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/AmazonLinux/release", "Host/AmazonLinux/rpm-list");

  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/AmazonLinux/release");
if (isnull(release) || !strlen(release)) audit(AUDIT_OS_NOT, "Amazon Linux");
os_ver = pregmatch(pattern: "^AL(A|\d)", string:release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Amazon Linux");
os_ver = os_ver[1];
if (os_ver != "A")
{
  if (os_ver == 'A') os_ver = 'AMI';
  audit(AUDIT_OS_NOT, "Amazon Linux AMI", "Amazon Linux " + os_ver);
}

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


flag = 0;
if (rpm_check(release:"ALA", reference:"libnl3-3.2.28-4.6.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"libnl3-cli-3.2.28-4.6.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"libnl3-debuginfo-3.2.28-4.6.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"libnl3-devel-3.2.28-4.6.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"libnl3-doc-3.2.28-4.6.amzn1")) flag++;

if (flag)
{
  if (report_verbosity > 0) security_hole(port:0, extra:rpm_report_get());
  else security_hole(0);
  exit(0);
}
else
{
  tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, "libnl3 / libnl3-cli / libnl3-debuginfo / libnl3-devel / libnl3-doc");
}