--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: bookworm-pu: cups/2.4.2-3+deb12u7
- From: Thorsten Alteholz <debian@alteholz.de>
- Date: Fri, 28 Jun 2024 15:06:05 +0000 (UTC)
- Message-id: <alpine.DEB.2.21.2406281505010.20459@postfach.intern.alteholz.me>
Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian.org@packages.debian.org
Usertags: pu
I know, I am rather late, but while preparing a new version of cups for
unstable, I found an upstream regression for the latest fix of
CVE-2024-35235. Four other commits are needed as well when cups only uses
a domain socket for communication.
In unstable I got #1073852 and #1074074, so this seems to be a valid use
case.
Thorsten
PS. to maybe quicken things, I already uploaded the package
diff -Nru cups-2.4.2/debian/changelog cups-2.4.2/debian/changelog
--- cups-2.4.2/debian/changelog 2024-06-11 19:32:57.000000000 +0200
+++ cups-2.4.2/debian/changelog 2024-06-27 23:16:49.000000000 +0200
@@ -1,3 +1,10 @@
+cups (2.4.2-3+deb12u7) bookworm; urgency=medium
+
+ * fix regression of CVE-2024-35235 in case only domain sockets
+ are used
+
+ -- Thorsten Alteholz <debian@alteholz.de> Thu, 27 Jun 2024 23:16:49 +0200
+
cups (2.4.2-3+deb12u6) bookworm; urgency=medium
* CVE-2024-35235 (Closes: #1073002)
diff -Nru cups-2.4.2/debian/patches/0020-CVE-2024-35235-regression1.patch cups-2.4.2/debian/patches/0020-CVE-2024-35235-regression1.patch
--- cups-2.4.2/debian/patches/0020-CVE-2024-35235-regression1.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.4.2/debian/patches/0020-CVE-2024-35235-regression1.patch 2024-06-27 23:16:49.000000000 +0200
@@ -0,0 +1,47 @@
+commit 7adb50839710f908af11a2f0a7d4b7aa506af2b8
+Author: Michael R Sweet <msweet@msweet.org>
+Date: Fri Jun 14 15:09:41 2024 -0400
+
+ Don't abort early if there are no listen sockets after loading cupsd.conf (Issue #985)
+
+Index: cups-2.4.2/scheduler/conf.c
+===================================================================
+--- cups-2.4.2.orig/scheduler/conf.c 2024-06-26 16:06:39.865759162 +0200
++++ cups-2.4.2/scheduler/conf.c 2024-06-26 16:06:39.865759162 +0200
+@@ -1052,7 +1052,7 @@
+ * as an error and exit!
+ */
+
+- if (cupsArrayCount(Listeners) == 0)
++ if (cupsArrayCount(Listeners) == 0 && !OnDemand)
+ {
+ /*
+ * No listeners!
+Index: cups-2.4.2/scheduler/main.c
+===================================================================
+--- cups-2.4.2.orig/scheduler/main.c 2024-06-26 16:06:39.865759162 +0200
++++ cups-2.4.2/scheduler/main.c 2024-06-26 16:06:39.865759162 +0200
+@@ -2037,6 +2037,23 @@
+ service_add_listener(fd, 0);
+ }
+ #endif /* HAVE_LAUNCHD */
++
++ if (cupsArrayCount(Listeners) == 0)
++ {
++ /*
++ * No listeners!
++ */
++
++ cupsdLogMessage(CUPSD_LOG_EMERG,
++ "No valid Listen or Port lines were found in the "
++ "configuration file.");
++
++ /*
++ * Commit suicide...
++ */
++
++ cupsdEndProcess(getpid(), 0);
++ }
+ }
+
+
diff -Nru cups-2.4.2/debian/patches/0021-CVE-2024-35235-regression2.patch cups-2.4.2/debian/patches/0021-CVE-2024-35235-regression2.patch
--- cups-2.4.2/debian/patches/0021-CVE-2024-35235-regression2.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.4.2/debian/patches/0021-CVE-2024-35235-regression2.patch 2024-06-27 23:16:49.000000000 +0200
@@ -0,0 +1,22 @@
+commit 824f49f24d6babc2c02215ee6303fee7ce6a553a
+Author: Michael R Sweet <msweet@msweet.org>
+Date: Fri Jun 14 15:16:11 2024 -0400
+
+ Fix builds without on-demand support.
+
+Index: cups-2.4.2/scheduler/conf.c
+===================================================================
+--- cups-2.4.2.orig/scheduler/conf.c 2024-06-26 16:07:35.737840279 +0200
++++ cups-2.4.2/scheduler/conf.c 2024-06-26 16:07:35.737840279 +0200
+@@ -1052,7 +1052,11 @@
+ * as an error and exit!
+ */
+
++#ifdef HAVE_ONDEMAND
+ if (cupsArrayCount(Listeners) == 0 && !OnDemand)
++#else
++ if (cupsArrayCount(Listeners) == 0)
++#endif // HAVE_ONDEMAND
+ {
+ /*
+ * No listeners!
diff -Nru cups-2.4.2/debian/patches/0022-CVE-2024-35235-regression3.patch cups-2.4.2/debian/patches/0022-CVE-2024-35235-regression3.patch
--- cups-2.4.2/debian/patches/0022-CVE-2024-35235-regression3.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.4.2/debian/patches/0022-CVE-2024-35235-regression3.patch 2024-06-27 23:16:49.000000000 +0200
@@ -0,0 +1,102 @@
+commit 74f437b7d20be44bacbbbc792da69ff9c82dfe8f
+Author: Zdenek Dohnal <zdohnal@redhat.com>
+Date: Tue Jun 18 10:43:30 2024 +0200
+
+ scheduler: Fix cupsd activated on-demand via socket
+
+ If only the expected cups.sock is set as listener in cupsd.conf, the
+ array Listeners was NULL. To prevent copying the code, do the array
+ allocation earlier and have only one check for Listeners, in
+ service_checkin() which is run every time cupsd starts.
+
+ Fixes #985
+
+Index: cups-2.4.2/scheduler/conf.c
+===================================================================
+--- cups-2.4.2.orig/scheduler/conf.c 2024-06-28 11:44:05.099633082 +0200
++++ cups-2.4.2/scheduler/conf.c 2024-06-28 11:44:05.095633082 +0200
+@@ -558,6 +558,18 @@
+
+ cupsdDeleteAllListeners();
+
++ /*
++ * Allocate array Listeners
++ */
++
++ Listeners = cupsArrayNew(NULL, NULL);
++
++ if (!Listeners)
++ {
++ fprintf(stderr, "Unable to allocate memory for array Listeners.");
++ return (0);
++ }
++
+ old_remote_port = RemotePort;
+ RemotePort = 0;
+
+@@ -1048,32 +1060,6 @@
+ }
+
+ /*
+- * Check that we have at least one listen/port line; if not, report this
+- * as an error and exit!
+- */
+-
+-#ifdef HAVE_ONDEMAND
+- if (cupsArrayCount(Listeners) == 0 && !OnDemand)
+-#else
+- if (cupsArrayCount(Listeners) == 0)
+-#endif // HAVE_ONDEMAND
+- {
+- /*
+- * No listeners!
+- */
+-
+- cupsdLogMessage(CUPSD_LOG_EMERG,
+- "No valid Listen or Port lines were found in the "
+- "configuration file.");
+-
+- /*
+- * Commit suicide...
+- */
+-
+- cupsdEndProcess(getpid(), 0);
+- }
+-
+- /*
+ * Set the default locale using the language and charset...
+ */
+
+@@ -3148,17 +3134,6 @@
+ * Allocate another listener...
+ */
+
+- if (!Listeners)
+- Listeners = cupsArrayNew(NULL, NULL);
+-
+- if (!Listeners)
+- {
+- cupsdLogMessage(CUPSD_LOG_ERROR,
+- "Unable to allocate %s at line %d - %s.",
+- line, linenum, strerror(errno));
+- break;
+- }
+-
+ if ((lis = calloc(1, sizeof(cupsd_listener_t))) == NULL)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+Index: cups-2.4.2/scheduler/main.c
+===================================================================
+--- cups-2.4.2.orig/scheduler/main.c 2024-06-28 11:44:05.099633082 +0200
++++ cups-2.4.2/scheduler/main.c 2024-06-28 11:45:15.471659573 +0200
+@@ -2044,9 +2044,7 @@
+ * No listeners!
+ */
+
+- cupsdLogMessage(CUPSD_LOG_EMERG,
+- "No valid Listen or Port lines were found in the "
+- "configuration file.");
++ cupsdLogMessage(CUPSD_LOG_EMERG, "No listener sockets present.");
+
+ /*
+ * Commit suicide...
diff -Nru cups-2.4.2/debian/patches/0023-CVE-2024-35235-regression4.patch cups-2.4.2/debian/patches/0023-CVE-2024-35235-regression4.patch
--- cups-2.4.2/debian/patches/0023-CVE-2024-35235-regression4.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.4.2/debian/patches/0023-CVE-2024-35235-regression4.patch 2024-06-27 23:16:49.000000000 +0200
@@ -0,0 +1,19 @@
+commit fb0c914e0d998e23d1ec24c4213fb35c7a931594
+Author: Zdenek Dohnal <zdohnal@redhat.com>
+Date: Tue Jun 18 10:50:51 2024 +0200
+
+ conf.c: Add newline to fprintf
+
+Index: cups-2.4.2/scheduler/conf.c
+===================================================================
+--- cups-2.4.2.orig/scheduler/conf.c 2024-06-28 11:45:27.039663959 +0200
++++ cups-2.4.2/scheduler/conf.c 2024-06-28 11:45:27.035663958 +0200
+@@ -566,7 +566,7 @@
+
+ if (!Listeners)
+ {
+- fprintf(stderr, "Unable to allocate memory for array Listeners.");
++ fprintf(stderr, "Unable to allocate memory for array Listeners.\n");
+ return (0);
+ }
+
diff -Nru cups-2.4.2/debian/patches/series cups-2.4.2/debian/patches/series
--- cups-2.4.2/debian/patches/series 2024-06-11 13:11:18.000000000 +0200
+++ cups-2.4.2/debian/patches/series 2024-06-27 23:16:49.000000000 +0200
@@ -17,3 +17,7 @@
0017-check-colormodel-also-for-CMYK.patch
0018-dont-override-color-settings-from-print-dialoag.patch
0019-CVE-2024-35235.patch
+0020-CVE-2024-35235-regression1.patch
+0021-CVE-2024-35235-regression2.patch
+0022-CVE-2024-35235-regression3.patch
+0023-CVE-2024-35235-regression4.patch
--- End Message ---