EulerOS 2.0 SP13 : expat (EulerOS-SA-2026-4044)
10
10
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(364727);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/10/12");
script_cve_id(
"CVE-2026-50219",
"CVE-2026-56131",
"CVE-2026-56132",
"CVE-2026-56403",
"CVE-2026-56404",
"CVE-2026-56405",
"CVE-2026-56406",
"CVE-2026-56407",
"CVE-2026-56408",
"CVE-2026-56409",
"CVE-2026-56410",
"CVE-2026-56411",
"CVE-2026-56412",
"CVE-2026-66046",
"CVE-2026-76641",
"CVE-2026-76957"
);
script_xref(name:"IAVA", value:"2026-A-0650-S");
script_xref(name:"IAVA", value:"2026-A-0925-S");
script_name(english:"EulerOS 2.0 SP13 : expat (EulerOS-SA-2026-4044)");
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 expat packages installed, the EulerOS installation on the remote host is affected by
the following vulnerabilities :
libexpat before 2.8.2 has an integer overflow in getAttributeId.(CVE-2026-56405)
Expat through 2.8.3 contains an out-of-bounds read vulnerability that allows attackers to trigger memory
corruption by processing XML with external entity parsers created via XML_ExternalEntityParserCreate. A
struct size mismatch between ELEMENT_TYPE members causes storeAtts to read the attIndex member past
allocated memory boundaries, resulting in failure to normalize whitespace in non-CDATA attributes or a
wild pointer dereference causing a segfault. This vulnerability was introduced by the fix for
CVE-2026-66046.(CVE-2026-76641)
libexpat before 2.8.2 lacks handler call depth tracking for calls to XML_GetBuffer, XML_Parse,
XML_ParseBuffer, XML_ParserFree, or XML_ParserReset from within handlers in cases of a policy violation.
Thus, a use-after-free can occur,(CVE-2026-50219)
xmlwf in libexpat before 2.8.2 has an integer overflow for the output filename when -d outputDir is
used.(CVE-2026-56409)
libexpat before 2.8.2 has an integer overflow in XML_ParseBuffer because it lacked a check that was
present in XML_Parse.(CVE-2026-56406)
libexpat before 2.8.2 does not consider XML_TOK_DATA_CHARS in doCdataSection and thus lacks handler call
depth tracking for various calls from within handlers in cases of a policy violation. Thus, a use-after-
free can occur. NOTE: this issue exists because of an incomplete fix for CVE-2026-50219.(CVE-2026-56412)
xmlwf in libexpat before 2.8.2 has an integer overflow in endDoctypeDecl via NOTATION
declarations.(CVE-2026-56411)
libexpat before 2.8.2 has an integer overflow in doProlog that is related to storeEntityValue and entity
textLen.(CVE-2026-56407)
Expat through 2.8.3 contains a denial of service vulnerability caused by quadratic algorithmic complexity
in the storeAtts() function in xmlparse.c, where processing N specified attributes with non-normalized
values triggers an O(N^2) linear scan of elementType-defaultAtts to determine CDATA status. A remote
unauthenticated attacker can supply a single well-formed XML document of a few megabytes to an application
parsing untrusted XML to cause excessive CPU consumption, resulting in denial of service without requiring
authentication, external entity resolution, or non-default parser options.(CVE-2026-66046)
libexpat before 2.8.2 has an integer overflow in storeAtts.(CVE-2026-56403)
libexpat before 2.8.2 lacks handler call depth tracking for calls to XML_ResumeParser from within handlers
in cases of a policy violation. Thus, a use-after-free can occur (similar to the CVE-2026-50219
situation).(CVE-2026-56131)
libexpat before 2.8.2 has an integer overflow in addBinding.(CVE-2026-56404)
libexpat before 2.8.2 has an integer overflow in copyString.(CVE-2026-56408)
In libexpat before 2.8.2, there is a heap-based buffer overflow in doProlog in xmlparse.c because scaffold
backing array reallocation is mishandled when there is data-structure sharing across
parsers.(CVE-2026-56132)
xmlwf in libexpat before 2.8.2 has an integer overflow in resolveSystemId.(CVE-2026-56410)
libexpat before 2.8.4 lacks handler call depth tracking with custom encoding callbacks. Thus, a use-after-
free can occur. NOTE: this is similar to CVE-2026-50219, CVE-2026-56131 and
CVE-2026-56412.(CVE-2026-76957)
Tenable has extracted the preceding description block directly from the EulerOS expat 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-4044
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?d98e83ac");
script_set_attribute(attribute:"solution", value:
"Update the affected expat 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:POC/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:P/RL:O/RC:C");
script_set_attribute(attribute:"cvss4_vector", value:"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N");
script_set_attribute(attribute:"cvss4_threat_vector", value:"CVSS:4.0/E:P");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-76957");
script_set_attribute(attribute:"cvss4_score_source", value:"CVE-2026-76641");
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:"2026/06/04");
script_set_attribute(attribute:"patch_publication_date", value:"2026/10/10");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/10/12");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:expat");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:expat-devel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:expat-help");
script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:2.0");
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_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_info2.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 SP13");
var sp = get_kb_item("Host/EulerOS/sp");
if (isnull(sp) || sp !~ "^(13)$") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP13");
if (!empty_or_null(uvp)) audit(AUDIT_OS_NOT, "EulerOS 2.0 SP13", "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 = [
"expat-2.4.1-8.h23.eulerosv2r13",
"expat-devel-2.4.1-8.h23.eulerosv2r13",
"expat-help-2.4.1-8.h23.eulerosv2r13"
];
foreach (var pkg in pkgs)
if (rpm_check(release:"EulerOS-2.0", sp:"13", 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, "expat");
}
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
12 Oct 2026 00:00Current
7.6High risk
Vulners AI Score7.6
CVSS 3.17.5 - 7.8
CVSS 48.7
EPSS0.00742
SSVC