The remote Rocky Linux 8 host is affected by multiple vulnerabilities in libxml2 (RLSA-2021:2569) which could result in denial of service, use-after-free, out-of-bounds read, and NULL dereference attacks
Reporter | Title | Published | Views | Family All 199 |
---|---|---|---|---|
![]() | EulerOS Virtualization 3.0.6.6 : libxml2 (EulerOS-SA-2022-1131) | 13 Feb 202200:00 | – | nessus |
![]() | EulerOS 2.0 SP2 : libxml2 (EulerOS-SA-2021-2406) | 14 Sep 202100:00 | – | nessus |
![]() | Oracle Linux 8 : libxml2 (ELSA-2021-2569) | 3 Jul 202100:00 | – | nessus |
![]() | EulerOS 2.0 SP8 : libxml2 (EulerOS-SA-2021-2306) | 10 Aug 202100:00 | – | nessus |
![]() | EulerOS 2.0 SP3 : libxml2 (EulerOS-SA-2021-2595) | 25 Oct 202100:00 | – | nessus |
![]() | AlmaLinux 8 : libxml2 (ALSA-2021:2569) | 9 Feb 202200:00 | – | nessus |
![]() | RHEL 8 : libxml2 (RHSA-2021:2569) | 29 Jun 202100:00 | – | nessus |
![]() | CentOS 8 : libxml2 (CESA-2021:2569) | 3 Jul 202100:00 | – | nessus |
![]() | EulerOS 2.0 SP9 : libxml2 (EulerOS-SA-2021-2249) | 9 Aug 202100:00 | – | nessus |
![]() | EulerOS 2.0 SP9 : libxml2 (EulerOS-SA-2021-2275) | 9 Aug 202100:00 | – | nessus |
#%NASL_MIN_LEVEL 70300
##
# (C) Tenable Network Security, Inc.
#
# The package checks in this plugin were extracted from
# Rocky Linux Security Advisory RLSA-2021:2569.
##
include('deprecated_nasl_level.inc');
include('compat.inc');
if (description)
{
script_id(157803);
script_version("1.7");
script_set_attribute(attribute:"plugin_modification_date", value:"2023/11/09");
script_cve_id(
"CVE-2021-3516",
"CVE-2021-3517",
"CVE-2021-3518",
"CVE-2021-3537",
"CVE-2021-3541"
);
script_xref(name:"RLSA", value:"2021:2569");
script_xref(name:"IAVA", value:"2021-A-0482");
script_xref(name:"IAVA", value:"2021-A-0487-S");
script_name(english:"Rocky Linux 8 : libxml2 (RLSA-2021:2569)");
script_set_attribute(attribute:"synopsis", value:
"The remote Rocky Linux host is missing one or more security updates.");
script_set_attribute(attribute:"description", value:
"The remote Rocky Linux 8 host has packages installed that are affected by multiple vulnerabilities as referenced in the
RLSA-2021:2569 advisory.
- There's a flaw in libxml2's xmllint in versions before 2.9.11. An attacker who is able to submit a crafted
file to be processed by xmllint could trigger a use-after-free. The greatest impact of this flaw is to
confidentiality, integrity, and availability. (CVE-2021-3516)
- There is a flaw in the xml entity encoding functionality of libxml2 in versions before 2.9.11. An attacker
who is able to supply a crafted file to be processed by an application linked with the affected
functionality of libxml2 could trigger an out-of-bounds read. The most likely impact of this flaw is to
application availability, with some potential impact to confidentiality and integrity if an attacker is
able to use memory information to further exploit the application. (CVE-2021-3517)
- There's a flaw in libxml2 in versions before 2.9.11. An attacker who is able to submit a crafted file to
be processed by an application linked with libxml2 could trigger a use-after-free. The greatest impact
from this flaw is to confidentiality, integrity, and availability. (CVE-2021-3518)
- A vulnerability found in libxml2 in versions before 2.9.11 shows that it did not propagate errors while
parsing XML mixed content, causing a NULL dereference. If an untrusted XML document was parsed in recovery
mode and post-validated, the flaw could be used to crash the application. The highest threat from this
vulnerability is to system availability. (CVE-2021-3537)
- A flaw was found in libxml2. Exponential entity expansion attack its possible bypassing all existing
protection mechanisms and leading to denial of service. (CVE-2021-3541)
Note that Nessus has not tested for this issue but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"see_also", value:"https://errata.rockylinux.org/RLSA-2021:2569");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1950515");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1954225");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1954232");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1954242");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1956522");
script_set_attribute(attribute:"solution", value:
"Update the affected 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:F/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/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:"cvss_score_source", value:"CVE-2021-3517");
script_set_attribute(attribute:"cvss3_score_source", value:"CVE-2021-3518");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2021/05/14");
script_set_attribute(attribute:"patch_publication_date", value:"2021/07/22");
script_set_attribute(attribute:"plugin_publication_date", value:"2022/02/09");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:rocky:linux:libxml2");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:rocky:linux:libxml2-debuginfo");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:rocky:linux:libxml2-debugsource");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:rocky:linux:libxml2-devel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:rocky:linux:python3-libxml2");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:rocky:linux:python3-libxml2-debuginfo");
script_set_attribute(attribute:"cpe", value:"cpe:/o:rocky:linux:8");
script_set_attribute(attribute:"stig_severity", value:"I");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Rocky Linux Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2022-2023 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/RockyLinux/release", "Host/RockyLinux/rpm-list", "Host/cpu");
exit(0);
}
include('rpm.inc');
if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var os_release = get_kb_item('Host/RockyLinux/release');
if (isnull(os_release) || 'Rocky Linux' >!< os_release) audit(AUDIT_OS_NOT, 'Rocky Linux');
var os_ver = pregmatch(pattern: "Rocky(?: Linux)? release ([0-9]+(\.[0-9]+)?)", string:os_release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, 'Rocky Linux');
os_ver = os_ver[1];
if (! preg(pattern:"^8([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, 'Rocky Linux 8.x', 'Rocky Linux ' + os_ver);
if (!get_kb_item('Host/RockyLinux/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$" && 's390' >!< cpu && 'aarch64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'Rocky Linux', cpu);
var pkgs = [
{'reference':'libxml2-2.9.7-9.el8_4.2', 'cpu':'aarch64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-2.9.7-9.el8_4.2', 'cpu':'i686', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-2.9.7-9.el8_4.2', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-debuginfo-2.9.7-9.el8_4.2', 'cpu':'aarch64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-debuginfo-2.9.7-9.el8_4.2', 'cpu':'i686', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-debuginfo-2.9.7-9.el8_4.2', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-debugsource-2.9.7-9.el8_4.2', 'cpu':'aarch64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-debugsource-2.9.7-9.el8_4.2', 'cpu':'i686', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-debugsource-2.9.7-9.el8_4.2', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-devel-2.9.7-9.el8_4.2', 'cpu':'aarch64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-devel-2.9.7-9.el8_4.2', 'cpu':'i686', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libxml2-devel-2.9.7-9.el8_4.2', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'python3-libxml2-2.9.7-9.el8_4.2', 'cpu':'aarch64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'python3-libxml2-2.9.7-9.el8_4.2', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'python3-libxml2-debuginfo-2.9.7-9.el8_4.2', 'cpu':'aarch64', 'release':'8', 'rpm_spec_vers_cmp':TRUE},
{'reference':'python3-libxml2-debuginfo-2.9.7-9.el8_4.2', 'cpu':'x86_64', 'release':'8', 'rpm_spec_vers_cmp':TRUE}
];
var flag = 0;
foreach var package_array ( pkgs ) {
var reference = NULL;
var _release = NULL;
var sp = NULL;
var _cpu = NULL;
var el_string = NULL;
var rpm_spec_vers_cmp = NULL;
var epoch = NULL;
var allowmaj = NULL;
var exists_check = NULL;
if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
if (!empty_or_null(package_array['release'])) _release = 'Rocky-' + package_array['release'];
if (!empty_or_null(package_array['sp'])) sp = package_array['sp'];
if (!empty_or_null(package_array['cpu'])) _cpu = package_array['cpu'];
if (!empty_or_null(package_array['el_string'])) el_string = package_array['el_string'];
if (!empty_or_null(package_array['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = package_array['rpm_spec_vers_cmp'];
if (!empty_or_null(package_array['epoch'])) epoch = package_array['epoch'];
if (!empty_or_null(package_array['allowmaj'])) allowmaj = package_array['allowmaj'];
if (!empty_or_null(package_array['exists_check'])) exists_check = package_array['exists_check'];
if (reference && _release && (!exists_check || rpm_exists(release:_release, rpm:exists_check))) {
if (rpm_check(release:_release, sp:sp, cpu:_cpu, reference:reference, epoch:epoch, el_string:el_string, rpm_spec_vers_cmp:rpm_spec_vers_cmp, allowmaj:allowmaj)) flag++;
}
}
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_HOLE,
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, 'libxml2 / libxml2-debuginfo / libxml2-debugsource / libxml2-devel / etc');
}
Transform Your Security Services
Elevate your offerings with Vulners' advanced Vulnerability Intelligence. Contact us for a demo and discover the difference comprehensive, actionable intelligence can make in your security strategy.
Book a live demo