Lucene search
K

EulerOS 2.0 SP15 : cups (EulerOS-SA-2026-2437)

🗓️ 27 Jun 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 3 Views

EulerOS 2.0 SP15 cups flaws enable localhost auth and root access via unauthorized print jobs; no patches.

Related
Refs
Code
ReporterTitlePublishedViews
Family
ATTACKERKB
CVE-2026-39316
7 Apr 202617:00
attackerkb
ATTACKERKB
CVE-2026-39314
7 Apr 202616:59
attackerkb
ATTACKERKB
CVE-2026-34979
3 Apr 202621:16
attackerkb
ATTACKERKB
CVE-2026-34980
3 Apr 202621:18
attackerkb
ATTACKERKB
CVE-2026-34990
3 Apr 202621:14
attackerkb
ATTACKERKB
CVE-2026-27447
3 Apr 202621:11
attackerkb
ATTACKERKB
CVE-2026-34978
3 Apr 202621:15
attackerkb
Tenable Nessus
Amazon Linux 2023 : cups, cups-client, cups-devel (ALAS2023-2026-1635)
30 Apr 202600:00
nessus
Tenable Nessus
Amazon Linux 2023 : cups, cups-client, cups-devel (ALAS2023-2026-1668)
20 May 202600:00
nessus
Tenable Nessus
Amazon Linux 2 : cups, --advisory ALAS2-2026-3279 (ALAS-2026-3279)
30 Apr 202600:00
nessus
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(323176);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/06/27");

  script_cve_id(
    "CVE-2026-27447",
    "CVE-2026-34978",
    "CVE-2026-34979",
    "CVE-2026-34980",
    "CVE-2026-34990",
    "CVE-2026-39314",
    "CVE-2026-39316"
  );

  script_name(english:"EulerOS 2.0 SP15 : cups (EulerOS-SA-2026-2437)");

  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 cups packages installed, the EulerOS installation on the remote host is affected by the
following vulnerabilities :

    OpenPrinting CUPS is an open source printing system for Linux and other Unix-like operating systems. In
    versions 2.4.16 and prior, a local unprivileged user can coerce cupsd into authenticating to an attacker-
    controlled localhost IPP service with a reusable Authorization: Local ... token. That token is enough to
    drive /admin/ requests on localhost, and the attacker can combine CUPS-Create-Local-Printer with printer-
    is-shared=true to persist a file:///... queue even though the normal FileDevice policy rejects such URIs.
    Printing to that queue gives an arbitrary root file overwrite; the PoC below uses that primitive to drop a
    sudoers fragment and demonstrate root command execution. At time of publication, there are no publicly
    available patches.(CVE-2026-34990)

    OpenPrinting CUPS is an open source printing system for Linux and other Unix-like operating systems. In
    versions 2.4.16 and prior, there is a heap-based buffer overflow in the CUPS scheduler when building
    filter option strings from job attribute. At time of publication, there are no publicly available
    patches.(CVE-2026-34979)

    OpenPrinting CUPS is an open source printing system for Linux and other Unix-like operating systems. In
    versions 2.4.16 and prior, in a network-exposed cupsd with a shared target queue, an unauthorized client
    can send a Print-Job to that shared PostScript queue without authentication. The server accepts a page-
    border value supplied as textWithoutLanguage, preserves an embedded newline through option escaping and
    reparse, and then reparses the resulting second-line PPD: text as a trusted scheduler control record. A
    follow-up raw print job can therefore make the server execute an attacker-chosen existing binary such as
    /usr/bin/vim as lp. At time of publication, there are no publicly available patches.(CVE-2026-34980)

    OpenPrinting CUPS is an open source printing system for Linux and other Unix-like operating systems. In
    versions 2.4.16 and prior, a use-after-free vulnerability exists in the CUPS scheduler (cupsd) when
    temporary printers are automatically deleted. cupsdDeleteTemporaryPrinters() in scheduler/printers.c calls
    cupsdDeletePrinter() without first expiring subscriptions that reference the printer, leaving
    cupsd_subscription_t.dest as a dangling pointer to freed heap memory. The dangling pointer is subsequently
    dereferenced at multiple code sites, causing a crash (denial of service) of the cupsd daemon. With heap
    grooming, this can be leveraged for code execution.(CVE-2026-39316)

    OpenPrinting CUPS is an open source printing system for Linux and other Unix-like operating systems. In
    versions 2.4.16 and prior, CUPS daemon (cupsd) contains an authorization bypass vulnerability due to case-
    insensitive username comparison during authorization checks. The vulnerability allows an unprivileged user
    to gain unauthorized access to restricted operations by using a user with a username that differs only in
    case from an authorized user. At time of publication, there are no publicly available
    patches.(CVE-2026-27447)

    OpenPrinting CUPS is an open source printing system for Linux and other Unix-like operating systems. In
    versions 2.4.16 and prior, an integer underflow vulnerability in _ppdCreateFromIPP() (cups/ppd-cache.c)
    allows any unprivileged local user to crash the cupsd root process by supplying a negative job-password-
    supported IPP attribute. The bounds check only caps the upper bound, so a negative value passes
    validation, is cast to size_t (wrapping to ~2^64), and is used as the length argument to memset() on a
    33-byte stack buffer. This causes an immediate SIGSEGV in the cupsd root process. Combined with systemd's
    Restart=on-failure, an attacker can repeat the crash for sustained denial of service.(CVE-2026-39314)

    OpenPrinting CUPS is an open source printing system for Linux and other Unix-like operating systems. In
    versions 2.4.16 and prior, the RSS notifier allows .. path traversal in notify-recipient-uri (e.g.,
    rss:///../job.cache), letting a remote IPP client write RSS XML bytes outside CacheDir/rss (anywhere that
    is lp-writable). In particular, because CacheDir is group-writable by default (typically root:lp and mode
    0770), the notifier (running as lp) can replace root-managed state files via temp-file + rename(). This
    PoC clobbers CacheDir/job.cache with RSS XML, and after restarting cupsd the scheduler fails to parse the
    job cache and previously queued jobs disappear. At time of publication, there are no publicly available
    patches.(CVE-2026-34978)

Tenable has extracted the preceding description block directly from the EulerOS cups 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-2437
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?675f34f0");
  script_set_attribute(attribute:"solution", value:
"Update the affected cups packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:S/C:C/I:P/A:N");
  script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:A/AC:H/PR:N/UI:N/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:"cvss4_vector", value:"CVSS:4.0/AV:A/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:L/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-27447");
  script_set_attribute(attribute:"cvss3_score_source", value:"CVE-2026-34980");
  script_set_attribute(attribute:"cvss4_score_source", value:"CVE-2026-34980");

  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/04/03");
  script_set_attribute(attribute:"patch_publication_date", value:"2026/06/26");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/06/27");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:cups-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:cups-libs");
  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 SP15");

var sp = get_kb_item("Host/EulerOS/sp");
if (isnull(sp) || sp !~ "^(15)$") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP15");

if (!empty_or_null(uvp)) audit(AUDIT_OS_NOT, "EulerOS 2.0 SP15", "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 = [
  "cups-devel-2.4.7-6.h21510.6.eulerosv2r15",
  "cups-libs-2.4.7-6.h21510.6.eulerosv2r15"
];

foreach (var pkg in pkgs)
  if (rpm_check(release:"EulerOS-2.0", sp:"15", 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, "cups");
}

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