EulerOS 2.0 SP11 : perl (EulerOS-SA-2026-4267)
10
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(364776);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/10/12");
script_cve_id("CVE-2026-12087", "CVE-2026-57432", "CVE-2026-57433");
script_xref(name:"IAVA", value:"2026-A-0618");
script_xref(name:"IAVA", value:"2026-A-0696-S");
script_name(english:"EulerOS 2.0 SP11 : perl (EulerOS-SA-2026-4267)");
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 perl packages installed, the EulerOS installation on the remote host is affected by the
following vulnerabilities :
Storable versions before 3.41 for Perl have a signed integer overflow when deserializing a crafted SX_HOOK
record.
retrieve_hook_common reads a signed 32-bit item count from an SX_HOOK record and calls av_extend with that
count plus one. A count of I32_MAX wraps the addition to a negative value.
A crafted blob passed to thaw or retrieve triggers the overflow; av_extend receives the negative count and
dies with a panic, terminating the deserialization.(CVE-2026-57433)
Socket versions before 2.041 for Perl have an out-of-bounds heap read.
In Socket.xs, pack_ip_mreq_source() checks the length of its source argument before the argument is read,
so the check tests the byte length carried over from the preceding multiaddr argument instead. Both
addresses occupy a 4-byte field, so a valid multiaddr lets a source of any length pass the check, and the
source is then copied into the 4-byte imr_sourceaddr field with a fixed-size copy. A source shorter than 4
bytes is not rejected, and the copy reads up to 3 bytes past the end of its buffer.
Calling pack_ip_mreq_source() with a source value shorter than 4 bytes copies adjacent heap memory into
the returned packed structure.(CVE-2026-12087)
Perl versions through 5.43.10 have an integer overflow in S_measure_struct leading to an out-of-bounds
heap read in pack and unpack.
S_measure_struct adds each item's size times its repeat count to a running total with no overflow check,
so a large repeat count in a pack or unpack template wraps the signed SSize_t total negative. The @, X,
and x position codes then guard their moves with a signed length comparison that passes when the length is
negative, advancing the buffer pointer out of bounds.
A template derived from untrusted input can read heap memory past the buffer and return it to the
caller.(CVE-2026-57432)
Tenable has extracted the preceding description block directly from the EulerOS perl 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-4267
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?76f13ef9");
script_set_attribute(attribute:"solution", value:
"Update the affected perl packages.");
script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:C/I:C/A:C");
script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-57432");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"exploit_available", value:"false");
script_set_attribute(attribute:"vuln_publication_date", value:"2026/06/15");
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:perl");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:perl-devel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:perl-help");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:perl-libs");
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 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 = [
"perl-5.34.0-3.h18.eulerosv2r11",
"perl-devel-5.34.0-3.h18.eulerosv2r11",
"perl-help-5.34.0-3.h18.eulerosv2r11",
"perl-libs-5.34.0-3.h18.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_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, "perl");
}
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.8High risk
Vulners AI Score7.8
CVSS 3.18.4 - 9.8
EPSS0.00374
SSVC