Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/cups: security bump to v2.4.20
@ 2026-10-25 17:48 Thomas Perale via buildroot
  2026-10-25 20:25 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 2+ messages in thread
From: Thomas Perale via buildroot @ 2026-10-25 17:48 UTC (permalink / raw)
  To: buildroot; +Cc: Angelo Compagnucci, Olivier Schonken

See the release note:

- https://github.com/OpenPrinting/cups/releases/tag/v2.4.20

The additional patch is required to fix the build with the option
`--with-dnssd=no`. This build error can be triggered by not enabling the
package `BR2_PACKAGE_AVAHI_LIBAVAHI_CLIENT` [1].

Fixes the following vulnerabilities:

- CVE-2026-55453:
    OpenPrinting CUPS is an open source printing system for Linux and
    other Unix-like operating systems. Prior to 2.4.20, the backend/ipp.c
    quote_string() function preserves carriage-return and line-feed
    characters in a remote printer-controlled marker-message before
    report_attr() writes the value to the scheduler status stream. The
    scheduler can parse an injected newline as a separate PPD: control
    line and persist an attacker-selected PPD keyword. The reporter
    demonstrated that a later print job on a Foomatic-backed queue could
    consume an injected FoomaticRIPCommandLine value and execute in the
    filter context as lp.
    https://www.cve.org/CVERecord?id=CVE-2026-55453

- CVE-2026-55467:
    OpenPrinting CUPS is an open source printing system for Linux and
    other Unix-like operating systems. Prior to 2.4.20, the cupsdCreateJob
    option-string builder in scheduler/job.c maps attacker-controlled
    destination-uri and pre-dial-string values from a configured fax queue
    to the phone and faxPrefix options. Unlike ordinary IPP job
    attributes, these mapped fax values bypass the control-character
    sanitizer and are copied directly into the filter options argument. A
    user permitted to submit a job can therefore inject control characters
    into the downstream option stream. The reporter states that a
    downstream fax filter passing these values to a shell or modem command
    could execute code as lp, while the maintainer states that CUPS has no
    confidentiality or integrity impact because the only known code-
    executing filter is optional Foomatic and addressed separately,
    leaving possible disruption of the affected queue.
    https://www.cve.org/CVERecord?id=CVE-2026-55467

- CVE-2026-55480:
    OpenPrinting CUPS is an open source printing system for Linux and
    other Unix-like operating systems. Prior to 2.4.20, copy_model() in
    scheduler/ipp.c creates a predictable TempDir/<connection-number>.ppd
    path in an lp-group-writable directory and opens it as root without
    O_EXCL or O_NOFOLLOW. Exploitation requires an lp-group process able
    to write that directory to predict the connection-derived name and
    plant a symlink before the root open, while a privileged add-printer
    or modify-printer operation using a model PPD triggers copy_model().
    The reporter treats an existing lp foothold and the privileged
    operation as distinct prerequisites, while the maintainer assesses
    high privileges because installing the relevant filter or
    administering the printer requires root or print-administrator access.
    If the race succeeds, the root scheduler follows the symlink and
    truncates or overwrites a root-writable target with generated PPD
    data, compromising file integrity or availability.
    https://www.cve.org/CVERecord?id=CVE-2026-55480

- CVE-2026-61702:
    OpenPrinting CUPS is an open source printing system for Linux and
    other Unix-like operating systems. Prior to 2.4.20, copy_banner() in
    scheduler/ipp.c uses the attacker-controlled IPP attributes-natural-
    language value as a directory component beneath DataDir/banners when
    processing a job-sheets banner. The job-sheets value must first match
    a registered banner basename, and the traversed path must contain a
    matching reachable basename; selecting an arbitrary target as
    demonstrated additionally requires pre-positioned path state such as a
    symlink with that basename. Subject to the scheduler's filesystem and
    sandbox access, path separators in the language value can escape the
    intended banner directory, make the root scheduler open the reachable
    file, and copy its bytes into a job-sheet spool object that a
    configured backend can deliver to an attacker-observable endpoint.
    https://www.cve.org/CVERecord?id=CVE-2026-61702

- CVE-2026-87875:
    The cupsUTF32ToUTF8() function in CUPS's cups/transcode.c lacks a
    source-length bound and can read past the end of the source buffer,
    resulting in a heap out-of-bounds read. This is reachable via SNMP
    supply-description parsing in backend/snmp-supplies.c with attacker-
    controlled content.
    https://www.cve.org/CVERecord?id=CVE-2026-87875

- CVE-2026-87876:
    Two case-insensitive comparisons on request-derived usernames outside
    the main authorization path in CUPS's scheduler (printer ACL
    validation and private-attribute filtering) could allow bypass of
    username-based access controls in certain configurations.
    https://www.cve.org/CVERecord?id=CVE-2026-87876

- CVE-2026-105326:
    An argument injection flaw was found in CUPS. When email notification
    is configured, the CUPS scheduler accepts printer subscription
    requests that supply a mailto notify-recipient-uri. The mailto
    notifier passes the recipient address to the configured sendmail
    program without ensuring it cannot be interpreted as command-line
    options. A remote attacker who can reach the CUPS service could supply
    a crafted recipient value starting with "-" to influence sendmail
    behavior. Successful exploitation depends on the installed mail
    transfer agent and CUPS network exposure, and may lead to execution of
    attacker-controlled commands with the privileges of the CUPS service
    user.
    https://www.cve.org/CVERecord?id=CVE-2026-105326

[1] https://github.com/OpenPrinting/cups/pull/1740

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
 ...stination-enumeration-without-DNS-SD.patch | 29 +++++++++++++++++++
 package/cups/cups.hash                        |  4 +--
 package/cups/cups.mk                          |  2 +-
 3 files changed, 32 insertions(+), 3 deletions(-)
 create mode 100644 package/cups/0005-Fix-destination-enumeration-without-DNS-SD.patch

diff --git a/package/cups/0005-Fix-destination-enumeration-without-DNS-SD.patch b/package/cups/0005-Fix-destination-enumeration-without-DNS-SD.patch
new file mode 100644
index 0000000000..b342427023
--- /dev/null
+++ b/package/cups/0005-Fix-destination-enumeration-without-DNS-SD.patch
@@ -0,0 +1,29 @@
+From 23a183b63a4c94ae7cd0f36c63ee7eb905be60fd Mon Sep 17 00:00:00 2001
+From: Rui Chen <rui@chenrui.dev>
+Date: Mon, 5 Oct 2026 22:55:47 -0400
+Subject: [PATCH] Fix destination enumeration without DNS-SD
+
+Add the local destination fields used by cups_enum_dests to the non-DNS-SD callback data structure.
+
+Fixes #1739
+
+Signed-off-by: Rui Chen <rui@chenrui.dev>
+Upstream: https://github.com/OpenPrinting/cups/commit/a197d30e27b5dd4d8c41d7a8ab136727290ed7de
+Signed-off-by: Thoams Perale <thomas.perale@mind.be>
+---
+ cups/dest.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/cups/dest.c b/cups/dest.c
+index dac26f119e..676470e70c 100644
+--- a/cups/dest.c
++++ b/cups/dest.c
+@@ -125,6 +125,8 @@ typedef struct _cups_getdata_s
+ {
+   int		num_dests;		/* Number of destinations */
+   cups_dest_t	*dests;			/* Destinations */
++  int		num_local;		/* Number of local cupsd queues */
++  cups_dest_t	*local_dests;		/* Local cupsd queues */
+   char		def_name[1024],		/* Default printer name, if any */
+ 		*def_instance;		/* Default printer instance, if any */
+ } _cups_getdata_t;
diff --git a/package/cups/cups.hash b/package/cups/cups.hash
index 7cb25fc4dd..eb029e8683 100644
--- a/package/cups/cups.hash
+++ b/package/cups/cups.hash
@@ -1,5 +1,5 @@
-# From https://github.com/OpenPrinting/cups/releases/tag/v2.4.19
-sha256  820984b12a67f98705785aae2dd1347fe0ac097828001d4583ff64574aed6389  cups-2.4.19-source.tar.gz
+# From https://github.com/OpenPrinting/cups/releases/tag/v2.4.20
+sha256  ab4d9cd7f3e58060091d2b24972223d6401675f11c49b65abf4f6ef31dea22ff  cups-2.4.20-source.tar.gz
 # Locally calculated:
 sha256  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  LICENSE
 sha256  977206f041b9a6f47ac00531e1242c0fab7063da71178f8d868b167b70866b6d  NOTICE
diff --git a/package/cups/cups.mk b/package/cups/cups.mk
index 3e85a2eecf..2fbf65e58e 100644
--- a/package/cups/cups.mk
+++ b/package/cups/cups.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-CUPS_VERSION = 2.4.19
+CUPS_VERSION = 2.4.20
 CUPS_SOURCE = cups-$(CUPS_VERSION)-source.tar.gz
 CUPS_SITE = https://github.com/OpenPrinting/cups/releases/download/v$(CUPS_VERSION)
 CUPS_LICENSE = Apache-2.0 with GPL-2.0/LGPL-2.0 exception
-- 
2.56.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH 1/1] package/cups: security bump to v2.4.20
  2026-10-25 17:48 [Buildroot] [PATCH 1/1] package/cups: security bump to v2.4.20 Thomas Perale via buildroot
@ 2026-10-25 20:25 ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-25 20:25 UTC (permalink / raw)
  To: Thomas Perale; +Cc: buildroot, Angelo Compagnucci, Olivier Schonken

On Sun, Oct 25, 2026 at 06:48:35PM +0100, Thomas Perale via buildroot wrote:
> See the release note:
> 
> - https://github.com/OpenPrinting/cups/releases/tag/v2.4.20
> 
> The additional patch is required to fix the build with the option
> `--with-dnssd=no`. This build error can be triggered by not enabling the
> package `BR2_PACKAGE_AVAHI_LIBAVAHI_CLIENT` [1].
> 
> Fixes the following vulnerabilities:
> 
> - CVE-2026-55453:
>     OpenPrinting CUPS is an open source printing system for Linux and
>     other Unix-like operating systems. Prior to 2.4.20, the backend/ipp.c
>     quote_string() function preserves carriage-return and line-feed
>     characters in a remote printer-controlled marker-message before
>     report_attr() writes the value to the scheduler status stream. The
>     scheduler can parse an injected newline as a separate PPD: control
>     line and persist an attacker-selected PPD keyword. The reporter
>     demonstrated that a later print job on a Foomatic-backed queue could
>     consume an injected FoomaticRIPCommandLine value and execute in the
>     filter context as lp.
>     https://www.cve.org/CVERecord?id=CVE-2026-55453
> 
> - CVE-2026-55467:
>     OpenPrinting CUPS is an open source printing system for Linux and
>     other Unix-like operating systems. Prior to 2.4.20, the cupsdCreateJob
>     option-string builder in scheduler/job.c maps attacker-controlled
>     destination-uri and pre-dial-string values from a configured fax queue
>     to the phone and faxPrefix options. Unlike ordinary IPP job
>     attributes, these mapped fax values bypass the control-character
>     sanitizer and are copied directly into the filter options argument. A
>     user permitted to submit a job can therefore inject control characters
>     into the downstream option stream. The reporter states that a
>     downstream fax filter passing these values to a shell or modem command
>     could execute code as lp, while the maintainer states that CUPS has no
>     confidentiality or integrity impact because the only known code-
>     executing filter is optional Foomatic and addressed separately,
>     leaving possible disruption of the affected queue.
>     https://www.cve.org/CVERecord?id=CVE-2026-55467
> 
> - CVE-2026-55480:
>     OpenPrinting CUPS is an open source printing system for Linux and
>     other Unix-like operating systems. Prior to 2.4.20, copy_model() in
>     scheduler/ipp.c creates a predictable TempDir/<connection-number>.ppd
>     path in an lp-group-writable directory and opens it as root without
>     O_EXCL or O_NOFOLLOW. Exploitation requires an lp-group process able
>     to write that directory to predict the connection-derived name and
>     plant a symlink before the root open, while a privileged add-printer
>     or modify-printer operation using a model PPD triggers copy_model().
>     The reporter treats an existing lp foothold and the privileged
>     operation as distinct prerequisites, while the maintainer assesses
>     high privileges because installing the relevant filter or
>     administering the printer requires root or print-administrator access.
>     If the race succeeds, the root scheduler follows the symlink and
>     truncates or overwrites a root-writable target with generated PPD
>     data, compromising file integrity or availability.
>     https://www.cve.org/CVERecord?id=CVE-2026-55480
> 
> - CVE-2026-61702:
>     OpenPrinting CUPS is an open source printing system for Linux and
>     other Unix-like operating systems. Prior to 2.4.20, copy_banner() in
>     scheduler/ipp.c uses the attacker-controlled IPP attributes-natural-
>     language value as a directory component beneath DataDir/banners when
>     processing a job-sheets banner. The job-sheets value must first match
>     a registered banner basename, and the traversed path must contain a
>     matching reachable basename; selecting an arbitrary target as
>     demonstrated additionally requires pre-positioned path state such as a
>     symlink with that basename. Subject to the scheduler's filesystem and
>     sandbox access, path separators in the language value can escape the
>     intended banner directory, make the root scheduler open the reachable
>     file, and copy its bytes into a job-sheet spool object that a
>     configured backend can deliver to an attacker-observable endpoint.
>     https://www.cve.org/CVERecord?id=CVE-2026-61702
> 
> - CVE-2026-87875:
>     The cupsUTF32ToUTF8() function in CUPS's cups/transcode.c lacks a
>     source-length bound and can read past the end of the source buffer,
>     resulting in a heap out-of-bounds read. This is reachable via SNMP
>     supply-description parsing in backend/snmp-supplies.c with attacker-
>     controlled content.
>     https://www.cve.org/CVERecord?id=CVE-2026-87875
> 
> - CVE-2026-87876:
>     Two case-insensitive comparisons on request-derived usernames outside
>     the main authorization path in CUPS's scheduler (printer ACL
>     validation and private-attribute filtering) could allow bypass of
>     username-based access controls in certain configurations.
>     https://www.cve.org/CVERecord?id=CVE-2026-87876
> 
> - CVE-2026-105326:
>     An argument injection flaw was found in CUPS. When email notification
>     is configured, the CUPS scheduler accepts printer subscription
>     requests that supply a mailto notify-recipient-uri. The mailto
>     notifier passes the recipient address to the configured sendmail
>     program without ensuring it cannot be interpreted as command-line
>     options. A remote attacker who can reach the CUPS service could supply
>     a crafted recipient value starting with "-" to influence sendmail
>     behavior. Successful exploitation depends on the installed mail
>     transfer agent and CUPS network exposure, and may lead to execution of
>     attacker-controlled commands with the privileges of the CUPS service
>     user.
>     https://www.cve.org/CVERecord?id=CVE-2026-105326
> 
> [1] https://github.com/OpenPrinting/cups/pull/1740
> 
> Signed-off-by: Thomas Perale <thomas.perale@mind.be>

Applied to master, thanks!

Best regards,

Thomas Petazzoni
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-10-25 20:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-25 17:48 [Buildroot] [PATCH 1/1] package/cups: security bump to v2.4.20 Thomas Perale via buildroot
2026-10-25 20:25 ` Thomas Petazzoni via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox