Lucene search

K
nessusThis script is Copyright (C) 2016-2021 and is owned by Tenable, Inc. or an Affiliate thereof.SL_20160216_GLIBC_ON_SL6_X.NASL
HistoryFeb 17, 2016 - 12:00 a.m.

Scientific Linux Security Update : glibc on SL6.x i386/x86_64 (20160216)

2016-02-1700:00:00
This script is Copyright (C) 2016-2021 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
12

A stack-based buffer overflow was found in the way the libresolv library performed dual A/AAAA DNS queries. A remote attacker could create a specially crafted DNS response which could cause libresolv to crash or, potentially, execute code with the permissions of the user running the library. Note: this issue is only exposed when libresolv is called from the nss_dns NSS service module. (CVE-2015-7547)

This update also fixes the following bugs :

  • The dynamic loader has been enhanced to allow the loading of more shared libraries that make use of static thread local storage. While static thread local storage is the fastest access mechanism it may also prevent the shared library from being loaded at all since the static storage space is a limited and shared process-global resource. Applications which would previously fail with ‘dlopen: cannot load any more object with static TLS’ should now start up correctly.

  • A bug in the POSIX realtime support would cause asynchronous I/O or certain timer API calls to fail and return errors in the presence of large thread-local storage data that exceeded PTHREAD_STACK_MIN in size (generally 16 KiB). The bug in librt has been corrected and the impacted APIs no longer return errors when large thread-local storage data is present in the application.

#%NASL_MIN_LEVEL 70300
#
# (C) Tenable Network Security, Inc.
#
# The descriptive text is (C) Scientific Linux.
#

include('deprecated_nasl_level.inc');
include('compat.inc');

if (description)
{
  script_id(88797);
  script_version("2.14");
  script_set_attribute(attribute:"plugin_modification_date", value:"2021/01/14");

  script_cve_id("CVE-2015-7547");
  script_xref(name:"TRA", value:"TRA-2017-08");
  script_xref(name:"IAVA", value:"2016-A-0053");

  script_name(english:"Scientific Linux Security Update : glibc on SL6.x i386/x86_64 (20160216)");
  script_summary(english:"Checks rpm output for the updated packages");

  script_set_attribute(
    attribute:"synopsis", 
    value:
"The remote Scientific Linux host is missing one or more security
updates."
  );
  script_set_attribute(
    attribute:"description", 
    value:
"A stack-based buffer overflow was found in the way the libresolv
library performed dual A/AAAA DNS queries. A remote attacker could
create a specially crafted DNS response which could cause libresolv to
crash or, potentially, execute code with the permissions of the user
running the library. Note: this issue is only exposed when libresolv
is called from the nss_dns NSS service module. (CVE-2015-7547)

This update also fixes the following bugs :

  - The dynamic loader has been enhanced to allow the
    loading of more shared libraries that make use of static
    thread local storage. While static thread local storage
    is the fastest access mechanism it may also prevent the
    shared library from being loaded at all since the static
    storage space is a limited and shared process-global
    resource. Applications which would previously fail with
    'dlopen: cannot load any more object with static TLS'
    should now start up correctly.

  - A bug in the POSIX realtime support would cause
    asynchronous I/O or certain timer API calls to fail and
    return errors in the presence of large thread-local
    storage data that exceeded PTHREAD_STACK_MIN in size
    (generally 16 KiB). The bug in librt has been corrected
    and the impacted APIs no longer return errors when large
    thread-local storage data is present in the application."
  );
  # https://listserv.fnal.gov/scripts/wa.exe?A2=ind1602&L=scientific-linux-errata&F=&S=&P=15820
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?28dbaa3a"
  );
  script_set_attribute(
    attribute:"see_also",
    value:"https://www.tenable.com/security/research/tra-2017-08"
  );
  script_set_attribute(attribute:"solution", value:"Update the affected packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:glibc");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:glibc-common");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:glibc-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:glibc-debuginfo-common");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:glibc-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:glibc-headers");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:glibc-static");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:glibc-utils");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:nscd");
  script_set_attribute(attribute:"cpe", value:"x-cpe:/o:fermilab:scientific_linux");

  script_set_attribute(attribute:"vuln_publication_date", value:"2016/02/18");
  script_set_attribute(attribute:"patch_publication_date", value:"2016/02/16");
  script_set_attribute(attribute:"plugin_publication_date", value:"2016/02/17");
  script_set_attribute(attribute:"in_the_news", value:"true");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_set_attribute(attribute:"stig_severity", value:"I");
  script_end_attributes();

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

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

  exit(0);
}


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

if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
release = get_kb_item("Host/RedHat/release");
if (isnull(release) || "Scientific Linux " >!< release) audit(AUDIT_HOST_NOT, "running Scientific Linux");
os_ver = pregmatch(pattern: "Scientific Linux.*release ([0-9]+(\.[0-9]+)?)", string:release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Scientific Linux");
os_ver = os_ver[1];
if (! preg(pattern:"^6([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, "Scientific Linux 6.x", "Scientific Linux " + os_ver);
if (!get_kb_item("Host/RedHat/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);

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


flag = 0;
if (rpm_check(release:"SL6", reference:"glibc-2.12-1.166.el6_7.7")) flag++;
if (rpm_check(release:"SL6", reference:"glibc-common-2.12-1.166.el6_7.7")) flag++;
if (rpm_check(release:"SL6", reference:"glibc-debuginfo-2.12-1.166.el6_7.7")) flag++;
if (rpm_check(release:"SL6", reference:"glibc-debuginfo-common-2.12-1.166.el6_7.7")) flag++;
if (rpm_check(release:"SL6", reference:"glibc-devel-2.12-1.166.el6_7.7")) flag++;
if (rpm_check(release:"SL6", reference:"glibc-headers-2.12-1.166.el6_7.7")) flag++;
if (rpm_check(release:"SL6", reference:"glibc-static-2.12-1.166.el6_7.7")) flag++;
if (rpm_check(release:"SL6", reference:"glibc-utils-2.12-1.166.el6_7.7")) flag++;
if (rpm_check(release:"SL6", reference:"nscd-2.12-1.166.el6_7.7")) 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, "glibc / glibc-common / glibc-debuginfo / glibc-debuginfo-common / etc");
}
VendorProductVersionCPE
fermilabscientific_linuxglibcp-cpe:/a:fermilab:scientific_linux:glibc
fermilabscientific_linuxglibc-commonp-cpe:/a:fermilab:scientific_linux:glibc-common
fermilabscientific_linuxglibc-debuginfop-cpe:/a:fermilab:scientific_linux:glibc-debuginfo
fermilabscientific_linuxglibc-debuginfo-commonp-cpe:/a:fermilab:scientific_linux:glibc-debuginfo-common
fermilabscientific_linuxglibc-develp-cpe:/a:fermilab:scientific_linux:glibc-devel
fermilabscientific_linuxglibc-headersp-cpe:/a:fermilab:scientific_linux:glibc-headers
fermilabscientific_linuxglibc-staticp-cpe:/a:fermilab:scientific_linux:glibc-static
fermilabscientific_linuxglibc-utilsp-cpe:/a:fermilab:scientific_linux:glibc-utils
fermilabscientific_linuxnscdp-cpe:/a:fermilab:scientific_linux:nscd
fermilabscientific_linuxx-cpe:/o:fermilab:scientific_linux