According to the versions of the glibc packages installed, the EulerOS installation on the remote host is affected by the following vulnerabilities :
A flaw was found in glibc. In an extremely rare situation, the getaddrinfo function may access memory that has been freed, resulting in an application crash. This issue is only exploitable when a NSS module implements only the nss_gethostbyname2_r and nss_getcanonname_r hooks without implementing the
nss*_gethostbyname3_r hook. The resolved name should return a large number of IPv6 and IPv4, and the call to the getaddrinfo function should have the AF_INET6 address family with AI_CANONNAME, AI_ALL and AI_V4MAPPED as flags. (CVE-2023-4806)
A flaw was found in glibc. In an uncommon situation, the gaih_inet function may use memory that has been freed, resulting in an application crash. This issue is only exploitable when the getaddrinfo function is called and the hosts database in /etc/nsswitch.conf is configured with SUCCESS=continue or SUCCESS=merge.
(CVE-2023-4813)
A buffer overflow was discovered in the GNU C Library’s dynamic loader ld.so while processing the GLIBC_TUNABLES environment variable. This issue could allow a local attacker to use maliciously crafted GLIBC_TUNABLES environment variables when launching binaries with SUID permission to execute code with elevated privileges. (CVE-2023-4911)
A flaw was found in the GNU C Library. A recent fix for CVE-2023-4806 introduced the potential for a memory leak, which may result in an application crash. (CVE-2023-5156)
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.
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(188881);
script_version("1.2");
script_set_attribute(attribute:"plugin_modification_date", value:"2024/01/29");
script_cve_id(
"CVE-2023-4806",
"CVE-2023-4813",
"CVE-2023-4911",
"CVE-2023-5156"
);
script_xref(name:"CISA-KNOWN-EXPLOITED", value:"2023/12/12");
script_name(english:"EulerOS 2.0 SP11 : glibc (EulerOS-SA-2023-3269)");
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 glibc packages installed, the EulerOS installation on the remote host is affected by
the following vulnerabilities :
- A flaw was found in glibc. In an extremely rare situation, the getaddrinfo function may access memory that
has been freed, resulting in an application crash. This issue is only exploitable when a NSS module
implements only the _nss_*_gethostbyname2_r and _nss_*_getcanonname_r hooks without implementing the
_nss_*_gethostbyname3_r hook. The resolved name should return a large number of IPv6 and IPv4, and the
call to the getaddrinfo function should have the AF_INET6 address family with AI_CANONNAME, AI_ALL and
AI_V4MAPPED as flags. (CVE-2023-4806)
- A flaw was found in glibc. In an uncommon situation, the gaih_inet function may use memory that has been
freed, resulting in an application crash. This issue is only exploitable when the getaddrinfo function is
called and the hosts database in /etc/nsswitch.conf is configured with SUCCESS=continue or SUCCESS=merge.
(CVE-2023-4813)
- A buffer overflow was discovered in the GNU C Library's dynamic loader ld.so while processing the
GLIBC_TUNABLES environment variable. This issue could allow a local attacker to use maliciously crafted
GLIBC_TUNABLES environment variables when launching binaries with SUID permission to execute code with
elevated privileges. (CVE-2023-4911)
- A flaw was found in the GNU C Library. A recent fix for CVE-2023-4806 introduced the potential for a
memory leak, which may result in an application crash. (CVE-2023-5156)
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.huaweicloud.com/ict/en/site-euleros/euleros/security-advisories/EulerOS-SA-2023-3269
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?ba94d1be");
script_set_attribute(attribute:"solution", value:
"Update the affected glibc packages.");
script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:S/C:C/I:C/A:C");
script_set_cvss_temporal_vector("CVSS2#E:H/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:H/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2023-4911");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"exploit_framework_core", value:"true");
script_set_attribute(attribute:"exploited_by_malware", value:"true");
script_set_attribute(attribute:"metasploit_name", value:'Glibc Tunables Privilege Escalation CVE-2023-4911 (aka Looney Tunables)');
script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2023/09/12");
script_set_attribute(attribute:"patch_publication_date", value:"2023/12/11");
script_set_attribute(attribute:"plugin_publication_date", value:"2024/01/16");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:glibc");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:glibc-all-langpacks");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:glibc-common");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:glibc-locale-archive");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:glibc-locale-source");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:libnsl");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:nscd");
script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:2.0");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Huawei Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2024 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/cpu", "Host/EulerOS/release", "Host/EulerOS/rpm-list", "Host/EulerOS/sp");
script_exclude_keys("Host/EulerOS/uvp_version");
exit(0);
}
include("rpm.inc");
if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var _release = get_kb_item("Host/EulerOS/release");
if (isnull(_release) || _release !~ "^EulerOS") audit(AUDIT_OS_NOT, "EulerOS");
var uvp = get_kb_item("Host/EulerOS/uvp_version");
if (_release !~ "^EulerOS release 2\.0(\D|$)") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP11");
var sp = get_kb_item("Host/EulerOS/sp");
if (isnull(sp) || sp !~ "^(11)$") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP11");
if (!empty_or_null(uvp)) audit(AUDIT_OS_NOT, "EulerOS 2.0 SP11", "EulerOS UVP " + uvp);
if (!get_kb_item("Host/EulerOS/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
var cpu = get_kb_item("Host/cpu");
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$" && "aarch64" >!< cpu && "x86" >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "EulerOS", cpu);
if ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$" && "x86" >!< cpu) audit(AUDIT_ARCH_NOT, "i686 / x86_64", cpu);
var flag = 0;
var pkgs = [
"glibc-2.34-70.h77.eulerosv2r11",
"glibc-all-langpacks-2.34-70.h77.eulerosv2r11",
"glibc-common-2.34-70.h77.eulerosv2r11",
"glibc-locale-archive-2.34-70.h77.eulerosv2r11",
"glibc-locale-source-2.34-70.h77.eulerosv2r11",
"libnsl-2.34-70.h77.eulerosv2r11",
"nscd-2.34-70.h77.eulerosv2r11"
];
foreach (var pkg in pkgs)
if (rpm_check(release:"EulerOS-2.0", sp:"11", reference:pkg)) flag++;
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_WARNING,
extra : rpm_report_get()
);
exit(0);
}
else
{
var tested = pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, "glibc");
}
Vendor | Product | Version | CPE |
---|---|---|---|
huawei | euleros | glibc | p-cpe:/a:huawei:euleros:glibc |
huawei | euleros | glibc-all-langpacks | p-cpe:/a:huawei:euleros:glibc-all-langpacks |
huawei | euleros | glibc-common | p-cpe:/a:huawei:euleros:glibc-common |
huawei | euleros | glibc-locale-archive | p-cpe:/a:huawei:euleros:glibc-locale-archive |
huawei | euleros | glibc-locale-source | p-cpe:/a:huawei:euleros:glibc-locale-source |
huawei | euleros | libnsl | p-cpe:/a:huawei:euleros:libnsl |
huawei | euleros | nscd | p-cpe:/a:huawei:euleros:nscd |
huawei | euleros | 2.0 | cpe:/o:huawei:euleros:2.0 |