This update addresses two security vulnerabilities :
CVE-2017-16997: Check for empty tokens before dynamic string token expansion in the dynamic linker, so that pre-existing privileged programs with $ORIGIN
rpaths/runpaths do not cause the dynamic linker to search the current directory, potentially leading to privilege escalation. (RHBZ#1526866).
CVE-2018-1000001: getcwd
would sometimes return a non-absolute path, confusing the realpath
function, leading to privilege escalation in conjunction with user namespaces. (RHBZ#1533837)
In addition, this update changes the thread stack size accounting to provide additional stack space compared to previous glibc versions.
For some applications (nptd
in particular), the PTHREAD_STACK_MIN
stack size was too small on x86-64 machines with AVX-512 support (RHBZ#1527887).
Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website.
Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
#%NASL_MIN_LEVEL 70300
#
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Fedora Security Advisory FEDORA-2018-7714b514e2.
#
include('deprecated_nasl_level.inc');
include('compat.inc');
if (description)
{
script_id(106279);
script_version("3.7");
script_set_attribute(attribute:"plugin_modification_date", value:"2021/01/06");
script_cve_id("CVE-2017-16997", "CVE-2018-1000001");
script_xref(name:"FEDORA", value:"2018-7714b514e2");
script_name(english:"Fedora 27 : glibc (2018-7714b514e2)");
script_summary(english:"Checks rpm output for the updated package.");
script_set_attribute(
attribute:"synopsis",
value:"The remote Fedora host is missing a security update."
);
script_set_attribute(
attribute:"description",
value:
"This update addresses two security vulnerabilities :
- CVE-2017-16997: Check for empty tokens before dynamic
string token expansion in the dynamic linker, so that
pre-existing privileged programs with `$ORIGIN`
rpaths/runpaths do not cause the dynamic linker to
search the current directory, potentially leading to
privilege escalation. (RHBZ#1526866).
- CVE-2018-1000001: `getcwd` would sometimes return a
non-absolute path, confusing the `realpath` function,
leading to privilege escalation in conjunction with user
namespaces. (RHBZ#1533837)
In addition, this update changes the thread stack size accounting to
provide additional stack space compared to previous glibc versions.
For some applications (`nptd` in particular), the `PTHREAD_STACK_MIN`
stack size was too small on x86-64 machines with AVX-512 support
(RHBZ#1527887).
Note that Tenable Network Security has extracted the preceding
description block directly from the Fedora update system website.
Tenable has attempted to automatically clean and format it as much as
possible without introducing additional issues."
);
script_set_attribute(
attribute:"see_also",
value:"https://bodhi.fedoraproject.org/updates/FEDORA-2018-7714b514e2"
);
script_set_attribute(attribute:"solution", value:"Update the affected glibc package.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C");
script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:F/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:"metasploit_name", value:'glibc "realpath()" Privilege Escalation');
script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:glibc");
script_set_attribute(attribute:"cpe", value:"cpe:/o:fedoraproject:fedora:27");
script_set_attribute(attribute:"vuln_publication_date", value:"2017/12/18");
script_set_attribute(attribute:"patch_publication_date", value:"2018/01/23");
script_set_attribute(attribute:"plugin_publication_date", value:"2018/01/24");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_copyright(english:"This script is Copyright (C) 2018-2021 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_family(english:"Fedora Local Security Checks");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/RedHat/release", "Host/RedHat/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/RedHat/release");
if (isnull(release) || "Fedora" >!< release) audit(AUDIT_OS_NOT, "Fedora");
os_ver = pregmatch(pattern: "Fedora.*release ([0-9]+)", string:release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Fedora");
os_ver = os_ver[1];
if (! preg(pattern:"^27([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, "Fedora 27", "Fedora " + 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 ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Fedora", cpu);
flag = 0;
if (rpm_check(release:"FC27", reference:"glibc-2.26-24.fc27")) 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");
}
Vendor | Product | Version | CPE |
---|---|---|---|
fedoraproject | fedora | glibc | p-cpe:/a:fedoraproject:fedora:glibc |
fedoraproject | fedora | 27 | cpe:/o:fedoraproject:fedora:27 |