#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(281635);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/01/03");
script_cve_id(
"CVE-2024-56171",
"CVE-2025-6021",
"CVE-2025-6170",
"CVE-2025-24928",
"CVE-2025-27113",
"CVE-2025-32414",
"CVE-2025-32415",
"CVE-2025-49794",
"CVE-2025-49796"
);
script_name(english:"EulerOS Virtualization 2.10.0 : libxml2 (EulerOS-SA-2026-1001)");
script_set_attribute(attribute:"synopsis", value:
"The remote EulerOS Virtualization host is missing multiple security updates.");
script_set_attribute(attribute:"description", value:
"According to the versions of the libxml2 packages installed, the EulerOS Virtualization installation on the remote host
is affected by the following vulnerabilities :
libxml2 before 2.12.10 and 2.13.x before 2.13.6 has a NULL pointer dereference in xmlPatMatch in
pattern.c.(CVE-2025-27113)
libxml2 before 2.12.10 and 2.13.x before 2.13.6 has a stack-based buffer overflow in xmlSnprintfElements
in valid.c. To exploit this, DTD validation must occur for an untrusted document or untrusted DTD. NOTE:
this is similar to CVE-2017-9047.(CVE-2025-24928)
libxml2 before 2.12.10 and 2.13.x before 2.13.6 has a use-after-free in xmlSchemaIDCFillNodeTables and
xmlSchemaBubbleIDCNodeTables in xmlschemas.c. To exploit this, a crafted XML document must be validated
against an XML schema with certain identity constraints, or a crafted XML schema must be
used.(CVE-2024-56171)
In libxml2 before 2.13.8 and 2.14.x before 2.14.2, out-of-bounds memory access can occur in the Python API
(Python bindings) because of an incorrect return value. This occurs in xmlPythonFileRead and
xmlPythonFileReadRaw because of a difference between bytes and characters.(CVE-2025-32414)
In libxml2 before 2.13.8 and 2.14.x before 2.14.2, xmlSchemaIDCFillNodeTables in xmlschemas.c has a heap-
based buffer under-read. To exploit this, a crafted XML document must be validated against an XML schema
with certain identity constraints, or a crafted XML schema must be used.(CVE-2025-32415)
A use-after-free vulnerability was found in libxml2. This issue occurs when parsing XPath elements under
certain circumstances when the XML schematron has the sch:name path='...'/ schema elements. This
flaw allows a malicious actor to craft a malicious XML document used as input for libxml, resulting in the
program's crash using libxml or other possible undefined behaviors.(CVE-2025-49794)
A vulnerability was found in libxml2. Processing certain sch:name elements from the input XML file can
trigger a memory corruption issue. This flaw allows an attacker to craft a malicious XML input file that
can lead libxml to crash, resulting in a denial of service or other possible undefined behavior due to
sensitive data being corrupted in memory.(CVE-2025-49796)
A flaw was found in the interactive shell of the xmllint command-line tool, used for parsing XML files.
When a user inputs an overly long command, the program does not check the input size properly, which can
cause it to crash. This issue might allow attackers to run harmful code in rare configurations without
modern protections.(CVE-2025-6170)
A flaw was found in libxml2's xmlBuildQName function, where integer overflows in buffer size calculations
can lead to a stack-based buffer overflow. This issue can result in memory corruption or a denial of
service when processing crafted input.(CVE-2025-6021)
Tenable has extracted the preceding description block directly from the EulerOS Virtualization libxml2 security
advisory.
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
# https://developer.huaweicloud.com/ict/en/site-euleros/euleros/security-advisories/EulerOS-SA-2026-1001
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?01de96a5");
script_set_attribute(attribute:"solution", value:
"Update the affected libxml2 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:L/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:"cvss_score_source", value:"CVE-2024-56171");
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:"2025/02/18");
script_set_attribute(attribute:"patch_publication_date", value:"2026/01/04");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/01/03");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:libxml2");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:python3-libxml2");
script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:uvp:2.10.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) 2026 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/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 (uvp != "2.10.0") audit(AUDIT_OS_NOT, "EulerOS Virtualization 2.10.0");
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 = [
"libxml2-2.9.10-11.h37.eulerosv2r10",
"python3-libxml2-2.9.10-11.h37.eulerosv2r10"
];
foreach (var pkg in pkgs)
if (rpm_check(release:"EulerOS-2.0", reference:pkg)) 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");
}
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation