aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/cups-filters/APKBUILD23
-rw-r--r--main/cups-filters/CVE-2015-2265.patch21
-rw-r--r--main/cups-filters/CVE-2015-3279.patch103
-rw-r--r--main/cups-filters/CVE-2015-8327.patch19
4 files changed, 161 insertions, 5 deletions
diff --git a/main/cups-filters/APKBUILD b/main/cups-filters/APKBUILD
index 2d4c62f7bf..e852f5f05e 100644
--- a/main/cups-filters/APKBUILD
+++ b/main/cups-filters/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cups-filters
pkgver=1.0.61
-pkgrel=1
+pkgrel=2
pkgdesc="OpenPrinting CUPS filters and backends"
url="http://www.linuxfoundation.org/collaborate/workgroups/openprinting/pdf_as_standard_print_job_format"
arch="all"
@@ -16,7 +16,11 @@ makedepends="$depends_dev cups-dev libjpeg-turbo-dev poppler-dev zlib-dev
qpdf-dev avahi-dev dbus-dev"
install=""
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-source="http://www.openprinting.org/download/cups-filters/cups-filters-$pkgver.tar.xz"
+source="http://www.openprinting.org/download/cups-filters/cups-filters-$pkgver.tar.xz
+ CVE-2015-8327.patch
+ CVE-2015-3279.patch
+ CVE-2015-2265.patch
+ "
_builddir="$srcdir"/cups-filters-$pkgver
prepare() {
@@ -70,6 +74,15 @@ libs() {
mv "$pkgdir"/usr/lib/lib*.so.* "$subpkgdir"/usr/lib/
}
-md5sums="f16a422bf3135e90b83f969c13a259cf cups-filters-1.0.61.tar.xz"
-sha256sums="f5285e3ee436ea42f2986cddfb8020d240ca8b0d7f8dc4b0718b6695ad4504af cups-filters-1.0.61.tar.xz"
-sha512sums="7d538d71e6c8342e521f4366c443e767b64e324ed1689bb56c15e70211c91ea89e819c7ae142a9f6d86a111c6a5a4d44ba7b8aa2e5d0d71247fc2d3771c1598d cups-filters-1.0.61.tar.xz"
+md5sums="f16a422bf3135e90b83f969c13a259cf cups-filters-1.0.61.tar.xz
+d3048ef67d12dd313bcc7b9ad732c754 CVE-2015-8327.patch
+6080c982f59fa74e4cf318322e8f799d CVE-2015-3279.patch
+7fe40fc0a04958f93f6eee2f4672a39f CVE-2015-2265.patch"
+sha256sums="f5285e3ee436ea42f2986cddfb8020d240ca8b0d7f8dc4b0718b6695ad4504af cups-filters-1.0.61.tar.xz
+9e7d091a53dd2cf212362778b697962bfeb55d1020f9d2e58d0c635e9a8587b8 CVE-2015-8327.patch
+01f637bb11f68cf13af4e461efc9e06a1be54b878a4d415f66b03693826eaed6 CVE-2015-3279.patch
+5f24d4799ae0e61c413bcc7376a49678ce52de3e68d20a519fe81fc3af48fe7e CVE-2015-2265.patch"
+sha512sums="7d538d71e6c8342e521f4366c443e767b64e324ed1689bb56c15e70211c91ea89e819c7ae142a9f6d86a111c6a5a4d44ba7b8aa2e5d0d71247fc2d3771c1598d cups-filters-1.0.61.tar.xz
+1f6558b585c5f8080287f93c3b182102aa9f96bbbfd4ca4a4b9c32219b68b87c37a19dd5d1009046869c273818c2f3aa21937d9a75c5e57ca26f3f72d174d8a3 CVE-2015-8327.patch
+5d600246f4d2d94da4e6cada458eb44edd7abcf1e09caa25cefeee50680f6e0f22a6ebb6a35005a7233836cc15e647ea110b69911dab2a9ab24ff1d6f4a1533a CVE-2015-3279.patch
+c16d7598be3eaaaeee8014f2b8e6a1f42ac5fde6a3798270dca8a70fb34228f7f28096db1400a750d56ffa1693c5810713aab2cd7a399eb7e55f65ec8441ff45 CVE-2015-2265.patch"
diff --git a/main/cups-filters/CVE-2015-2265.patch b/main/cups-filters/CVE-2015-2265.patch
new file mode 100644
index 0000000000..f4cf6fa0da
--- /dev/null
+++ b/main/cups-filters/CVE-2015-2265.patch
@@ -0,0 +1,21 @@
+Description: cups-browsed: SECURITY FIX: Fixed a bug in the remove_bad_chars()
+ failing to reliably filter out illegal characters if there are two
+ or more subsequent illegal characters, allowing execution of
+ arbitrary commands with the rights of the "lp" user, using forged
+ print service announcements on DNS-SD servers (Bug #1265).
+Author: Till Kamppeter <till.kamppeter@gmail.com>
+Last-Update: 2015-02-27
+Origin: upstream
+Bug-CVE: CVE-2015-2265
+Bug-Debian: https://bugs.debian.org/780267
+
+--- a/utils/cups-browsed.c
++++ b/utils/cups-browsed.c
+@@ -634,6 +634,7 @@
+ str[i] == '.' || str[i] == ','))) {
+ /* Letter or number, keep it */
+ havedash = 0;
++ str[j] = str[i];
+ } else {
+ /* Replace all other characters by a single '-' */
+ if (havedash == 1)
diff --git a/main/cups-filters/CVE-2015-3279.patch b/main/cups-filters/CVE-2015-3279.patch
new file mode 100644
index 0000000000..deb92f400b
--- /dev/null
+++ b/main/cups-filters/CVE-2015-3279.patch
@@ -0,0 +1,103 @@
+Description: SECURITY FIX: texttopdf: Fixed buffer overflow on size allocation of texttopdf when working with extremely small line sizes, which causes the size calculation to result in 0.
+Author: Tim Waugh <twaugh@redhat.com>
+Bug-CVE: CVE-2015-3258
+Bug-CVE: CVE-2015-3279
+Origin: upstream
+Last-Update: 2015-07-03
+
+--- a/filter/textcommon.c
++++ b/filter/textcommon.c
+@@ -26,6 +26,7 @@
+ */
+
+ #include "textcommon.h"
++#include <limits.h>
+
+
+ /*
+@@ -644,6 +645,45 @@
+ if (PrettyPrint)
+ PageTop -= 216.0f / LinesPerInch;
+
++ /*
++ * Allocate memory for the page...
++ */
++
++ SizeColumns = (PageRight - PageLeft) / 72.0 * CharsPerInch;
++ SizeLines = (PageTop - PageBottom) / 72.0 * LinesPerInch;
++
++ /*
++ * Enforce minimum size...
++ */
++ if (SizeColumns < 1)
++ SizeColumns = 1;
++ if (SizeLines < 1)
++ SizeLines = 1;
++
++ if (SizeLines >= INT_MAX / SizeColumns / sizeof(lchar_t))
++ {
++ fprintf(stderr, "ERROR: bad page size\n");
++ exit(1);
++ }
++
++ Page = calloc(sizeof(lchar_t *), SizeLines);
++ if (!Page)
++ {
++ fprintf(stderr, "ERROR: cannot allocate memory for page\n");
++ exit(1);
++ }
++
++ Page[0] = calloc(sizeof(lchar_t), SizeColumns * SizeLines);
++ if (!Page[0])
++ {
++ free(Page);
++ fprintf(stderr, "ERROR: cannot allocate memory for page\n");
++ exit(1);
++ }
++
++ for (i = 1; i < SizeLines; i ++)
++ Page[i] = Page[0] + i * SizeColumns;
++
+ Copies = atoi(argv[4]);
+
+ WriteProlog(argv[3], argv[2], getenv("CLASSIFICATION"),
+@@ -1122,6 +1162,8 @@
+ if (ppd != NULL)
+ ppdClose(ppd);
+
++ free(Page[0]);
++ free(Page);
+ return (0);
+ }
+
+--- a/filter/texttopdf.c
++++ b/filter/texttopdf.c
+@@ -172,9 +172,6 @@
+ { "FN","FB","FI" };
+ int i,j;
+
+- free(Page[0]);
+- free(Page);
+-
+ // embed fonts
+ for (i = PrettyPrint ? 2 : 1; i >= 0; i --) {
+ for (j = 0; j < NumFonts; j ++)
+@@ -333,18 +330,6 @@
+ PageTop -= 36;
+ }
+
+- /*
+- * Allocate memory for the page...
+- */
+-
+- SizeColumns = (PageRight - PageLeft) / 72.0 * CharsPerInch;
+- SizeLines = (PageTop - PageBottom) / 72.0 * LinesPerInch;
+-
+- Page = calloc(sizeof(lchar_t *), SizeLines);
+- Page[0] = calloc(sizeof(lchar_t), SizeColumns * SizeLines);
+- for (i = 1; i < SizeLines; i ++)
+- Page[i] = Page[0] + i * SizeColumns;
+-
+ if (PageColumns > 1)
+ {
+ ColumnGutter = CharsPerInch / 2;
diff --git a/main/cups-filters/CVE-2015-8327.patch b/main/cups-filters/CVE-2015-8327.patch
new file mode 100644
index 0000000000..45fe9c408d
--- /dev/null
+++ b/main/cups-filters/CVE-2015-8327.patch
@@ -0,0 +1,19 @@
+Description: foomatic-rip: SECURITY FIX: Also consider the back tick ('`') as
+ an illegal shell escape character. Thanks to Michal Kowalczyk from the Google
+ Security Team for the hint.
+Author: Till Kamppeter <till.kamppeter@gmail.com>
+Bug-CVE: CVE-2015-8327
+Origin: upstream
+Last-Update: 2015-11-26
+
+--- a/filter/foomatic-rip/util.c
++++ b/filter/foomatic-rip/util.c
+@@ -31,7 +31,7 @@
+ #include <assert.h>
+
+
+-const char* shellescapes = "|<>&!$\'\"#*?()[]{}";
++const char* shellescapes = "|<>&!$\'\"`#*?()[]{}";
+
+ const char * temp_dir()
+ {