#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(302483);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/03/16");
script_cve_id(
"CVE-2025-47912",
"CVE-2025-58183",
"CVE-2025-58185",
"CVE-2025-58186",
"CVE-2025-58187",
"CVE-2025-58189",
"CVE-2025-61723",
"CVE-2025-61724",
"CVE-2025-61727",
"CVE-2025-61729"
);
script_name(english:"EulerOS 2.0 SP12 : golang (EulerOS-SA-2026-1363)");
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 golang packages installed, the EulerOS installation on the remote host is affected by
the following vulnerabilities :
The Reader.ReadResponse function constructs a response string through repeated string concatenation of
lines. When the number of lines in a response is large, this can cause excessive CPU
consumption.(CVE-2025-61724)
Parsing a maliciously crafted DER payload could allocate large amounts of memory, causing memory
exhaustion.(CVE-2025-58185)
tar.Reader does not set a maximum size on the number of sparse region data blocks in GNU tar pax 1.0
sparse files. A maliciously-crafted archive containing a large number of sparse regions can cause a Reader
to read an unbounded amount of data from the archive into memory. When reading from a compressed source, a
small compressed input can result in large allocations.(CVE-2025-58183)
Despite HTTP headers having a default limit of 1MB, the number of cookies that can be parsed does not have
a limit. By sending a lot of very small cookies such as 'a=;', an attacker can make an HTTP server
allocate a large amount of structs, causing large memory consumption.(CVE-2025-58186)
The Parse function permits values other than IPv6 addresses to be included in square brackets within the
host component of a URL. RFC 3986 permits IPv6 addresses to be included within the host component,
enclosed within square brackets. For example: 'http://[::1]/'. IPv4 addresses and hostnames must not
appear within square brackets. Parse did not enforce this requirement.(CVE-2025-47912)
Within HostnameError.Error(), when constructing an error string, there is no limit to the number of hosts
that will be printed out. Furthermore, the error string is constructed by repeated string concatenation,
leading to quadratic runtime. Therefore, a certificate provided by a malicious actor can result in
excessive resource consumption.(CVE-2025-61729)
Due to the design of the name constraint checking algorithm, the processing time of some inputs scale non-
linearly with respect to the size of the certificate. This affects programs which validate arbitrary
certificate chains.(CVE-2025-58187)
The processing time for parsing some invalid inputs scales non-linearly with respect to the size of the
input. This affects programs which parse untrusted PEM inputs.(CVE-2025-61723)
When Conn.Handshake fails during ALPN negotiation the error contains attacker controlled information (the
ALPN protocols sent by the client) which is not escaped.(CVE-2025-58189)
An excluded subdomain constraint in a certificate chain does not restrict the usage of wildcard SANs in
the leaf certificate. For example a constraint that excludes the subdomain test.example.com does not
prevent a leaf certificate from claiming the SAN *.example.com.(CVE-2025-61727)
Tenable has extracted the preceding description block directly from the EulerOS golang 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-1363
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?01eae2e2");
script_set_attribute(attribute:"solution", value:
"Update the affected golang packages.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:P/A:C");
script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2025-47912");
script_set_attribute(attribute:"cvss3_score_source", value:"CVE-2025-61727");
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:"2025/10/23");
script_set_attribute(attribute:"patch_publication_date", value:"2026/03/16");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/03/16");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:golang");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:golang-devel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:golang-help");
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) 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/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 SP12");
var sp = get_kb_item("Host/EulerOS/sp");
if (isnull(sp) || sp !~ "^(12)$") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP12");
if (!empty_or_null(uvp)) audit(AUDIT_OS_NOT, "EulerOS 2.0 SP12", "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 = [
"golang-1.17.3-12.h33.eulerosv2r12",
"golang-devel-1.17.3-12.h33.eulerosv2r12",
"golang-help-1.17.3-12.h33.eulerosv2r12"
];
foreach (var pkg in pkgs)
if (rpm_check(release:"EulerOS-2.0", sp:"12", 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, "golang");
}
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