summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/image.scm1
-rw-r--r--gnu/packages/patches/libtiff-CVE-2022-34526.patch22
3 files changed, 24 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index b09c887c8d..094012316f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1416,6 +1416,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/libtgvoip-disable-sse2.patch 		\
   %D%/packages/patches/libtgvoip-disable-webrtc.patch 		\
   %D%/packages/patches/libtheora-config-guess.patch		\
+  %D%/packages/patches/libtiff-CVE-2022-34526.patch		\
   %D%/packages/patches/libtirpc-CVE-2021-46828.patch		\
   %D%/packages/patches/libtirpc-hurd.patch			\
   %D%/packages/patches/libtommath-fix-linkage.patch		\
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 0461835a70..f669f97c40 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -575,6 +575,7 @@ extracting icontainer icon files.")
        (method url-fetch)
        (uri (string-append "https://download.osgeo.org/libtiff/tiff-"
                            version ".tar.xz"))
+       (patches (search-patches "libtiff-CVE-2022-34526.patch"))
        (sha256
         (base32
          "1h8xrcpbyf9id2hw2ms0cmpgx0li8gladjzj82ycgk28018pnc29"))))
diff --git a/gnu/packages/patches/libtiff-CVE-2022-34526.patch b/gnu/packages/patches/libtiff-CVE-2022-34526.patch
new file mode 100644
index 0000000000..a5ad9d79a5
--- /dev/null
+++ b/gnu/packages/patches/libtiff-CVE-2022-34526.patch
@@ -0,0 +1,22 @@
+Fix CVE-2022-34526:
+
+  https://nvd.nist.gov/vuln/detail/CVE-2022-34526
+  https://gitlab.com/libtiff/libtiff/-/issues/433
+
+Patch taken from upstream source repository:
+
+  https://gitlab.com/libtiff/libtiff/-/commit/275735d0354e39c0ac1dc3c0db2120d6f31d1990
+
+diff --git a/libtiff/tif_dirinfo.c b/libtiff/tif_dirinfo.c
+--- a/libtiff/tif_dirinfo.c
++++ b/libtiff/tif_dirinfo.c
+@@ -1191,6 +1191,9 @@ _TIFFCheckFieldIsValidForCodec(TIFF *tif, ttag_t tag)
+ 	    default:
+ 		return 1;
+ 	}
++	if( !TIFFIsCODECConfigured(tif->tif_dir.td_compression) ) {
++		return 0;
++	}
+ 	/* Check if codec specific tags are allowed for the current
+ 	 * compression scheme (codec) */
+ 	switch (tif->tif_dir.td_compression) {