Your message dated Sat, 31 Aug 2024 12:34:14 +0100
with message-id 
<9e3e8b8cd0db3b52d4adb2cfad04baa007c8e3e8.ca...@adam-barratt.org.uk>
and subject line Closing bugs for 12.7
has caused the Debian Bug report #1076156,
regarding bookworm-pu: package imagemagick/8:6.9.11.60+dfsg-1.6+deb12u2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1076156: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1076156
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: bookworm
X-Debbugs-Cc: imagemag...@packages.debian.org
Control: affects -1 + src:imagemagick
User: release.debian....@packages.debian.org
Usertags: pu

[ Reason ]

  * CVE-2023-34151 fix was incomplete (Closes: #1070340)
  * Fix variation of CVE-2023-1289 found by testing.

[ Impact ]

  * CVE are still open is not fixed


[ Tests ]

Manual test of CVE-2023-34151, automatic of CVE-2023-1289.


[ Risks ]

Risk are low, crosscheck done by santiago.

[ Checklist ]
  [X] *all* changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in (old)stable
  [X] the issue is verified as fixed in unstable

diff -Nru imagemagick-6.9.11.60+dfsg/debian/changelog imagemagick-6.9.11.60+dfsg/debian/changelog
--- imagemagick-6.9.11.60+dfsg/debian/changelog	2024-02-12 20:15:47.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/changelog	2024-07-11 10:48:47.000000000 +0000
@@ -1,3 +1,10 @@
+imagemagick (8:6.9.11.60+dfsg-1.6+deb12u2) bookworm; urgency=medium
+
+  * CVE-2023-34151 fix was incomplete (Closes: #1070340)
+  * Fix variation of CVE-2023-1289 found by testing.
+
+ -- Bastien Roucari??s <ro...@debian.org>  Thu, 11 Jul 2024 10:48:47 +0000
+
 imagemagick (8:6.9.11.60+dfsg-1.6+deb12u1) bookworm-security; urgency=high
 
   * Acknowledge NMU
@@ -34,7 +41,7 @@
     was found in coders/tiff.c in ImageMagick. This issue
     may allow a local attacker to trick the user into opening
     a specially crafted file, resulting in an application crash
-    and denial of service.
+    and denial of service. Fix also CVE-2022-3213.
   * Fix CVE-2023-5341: A heap use-after-free flaw was found in
     coders/bmp.c
 
diff -Nru imagemagick-6.9.11.60+dfsg/debian/control imagemagick-6.9.11.60+dfsg/debian/control
--- imagemagick-6.9.11.60+dfsg/debian/control	2024-02-12 19:54:48.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/control	2024-07-11 10:48:47.000000000 +0000
@@ -1,4 +1,4 @@
-# Autogenerated Mon Jul 27 10:33:31 CEST 2020 from make -f debian/rules update_pkg
+# Autogenerated Mon Jun 24 16:27:31 UTC 2024 from make -f debian/rules update_pkg
 Source: imagemagick
 Section: graphics
 Priority: optional
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0066-CVE-2023-34151-properly-cast-double-to-size_t.patch imagemagick-6.9.11.60+dfsg/debian/patches/0066-CVE-2023-34151-properly-cast-double-to-size_t.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0066-CVE-2023-34151-properly-cast-double-to-size_t.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0066-CVE-2023-34151-properly-cast-double-to-size_t.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,29 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Tue, 23 Apr 2024 18:19:24 -0400
+Subject: CVE-2023-34151: properly cast double to size_t
+
+bug: https://github.com/ImageMagick/ImageMagick/issues/6341
+bug-debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1070340
+
+forgot to cast double to unsigned int
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/be15ac962dea19536be1009d157639030fc42be9.patch
+---
+ coders/mvg.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/coders/mvg.c b/coders/mvg.c
+index 2d503e1..d8e793e 100644
+--- a/coders/mvg.c
++++ b/coders/mvg.c
+@@ -191,8 +191,8 @@ static Image *ReadMVGImage(const ImageInfo *image_info,ExceptionInfo *exception)
+     96.0;
+   draw_info->affine.sy=image->y_resolution == 0.0 ? 1.0 : image->y_resolution/
+     96.0;
+-  image->columns=(size_t) (draw_info->affine.sx*image->columns);
+-  image->rows=(size_t) (draw_info->affine.sy*image->rows);
++  image->columns=CastDoubleToUnsigned(draw_info->affine.sx*image->columns);
++  image->rows=CastDoubleToUnsigned(draw_info->affine.sy*image->rows);
+   status=SetImageExtent(image,image->columns,image->rows);
+   if (status == MagickFalse)
+     {
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0067-CVE-2023-34151.patch imagemagick-6.9.11.60+dfsg/debian/patches/0067-CVE-2023-34151.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0067-CVE-2023-34151.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0067-CVE-2023-34151.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,72 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Mon, 21 Feb 2022 11:55:23 -0500
+Subject: CVE-2023-34151
+
+This is a prerequist for fixing it
+
+magick produces incorrect result possibly due to overflow
+
+bug: https://github.com/ImageMagick/ImageMagick/issues/4870
+origin: https://github.com/ImageMagick/ImageMagick6/commit/8b7b17c8fef72dab479e6ca676676d8c5e395dd6
+---
+ coders/txt.c           | 24 ++++++++++++------------
+ magick/image-private.h | 11 +++++++++++
+ 2 files changed, 23 insertions(+), 12 deletions(-)
+
+diff --git a/coders/txt.c b/coders/txt.c
+index 0e5c794..bca071f 100644
+--- a/coders/txt.c
++++ b/coders/txt.c
+@@ -573,18 +573,18 @@ static Image *ReadTXTImage(const ImageInfo *image_info,ExceptionInfo *exception)
+             green+=(range+1)/2.0;
+             blue+=(range+1)/2.0;
+           }
+-        pixel.red=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
+-          MagickMax(red+0.5,0.0),range);
+-        pixel.green=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
+-          MagickMax(green+0.5,0.0),range);
+-        pixel.blue=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
+-          MagickMax(blue+0.5,0.0),range);
+-        pixel.index=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
+-          MagickMax(index+0.5,0.0),range);
+-        pixel.opacity=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
+-          MagickMax(opacity+0.5,0.0),range);
+-        q=GetAuthenticPixels(image,CastDoubleToLong(x_offset),
+-          CastDoubleToLong(y_offset),1,1,exception);
++        pixel.red=(MagickRealType) ScaleAnyToQuantum(CastDoubleToQuantumAny(
++          red),range);
++        pixel.green=(MagickRealType) ScaleAnyToQuantum(CastDoubleToQuantumAny(
++          green),range);
++        pixel.blue=(MagickRealType) ScaleAnyToQuantum(CastDoubleToQuantumAny(
++          blue),range);
++        pixel.index=(MagickRealType) ScaleAnyToQuantum(CastDoubleToQuantumAny(
++          index),range);
++        pixel.opacity=(MagickRealType) ScaleAnyToQuantum(CastDoubleToQuantumAny(
++          opacity),range);
++        q=GetAuthenticPixels(image,CastDoubleToLong(x_offset),CastDoubleToLong(
++          y_offset),1,1,exception);
+         if (q == (PixelPacket *) NULL)
+           {
+             status=MagickFalse;
+diff --git a/magick/image-private.h b/magick/image-private.h
+index b269f33..fc7d4b4 100644
+--- a/magick/image-private.h
++++ b/magick/image-private.h
+@@ -84,6 +84,17 @@ static inline size_t CastDoubleToUnsigned(const double x)
+   return((size_t) x);
+ }
+ 
++static inline QuantumAny CastDoubleToQuantumAny(const double x)
++{
++  if (IsNaN(x) != 0)
++    return(0);
++  if (x > ((double) ((QuantumAny) ~0)))
++    return((QuantumAny) ~0);
++  if (x < 0.0)
++    return(0.0);
++  return((QuantumAny) (x+0.5));
++}
++
+ static inline double DegreesToRadians(const double degrees)
+ {
+   return((double) (MagickPI*degrees/180.0));
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0068-incorrect-bounds-checking-for-draw-affine-https-gith.patch imagemagick-6.9.11.60+dfsg/debian/patches/0068-incorrect-bounds-checking-for-draw-affine-https-gith.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0068-incorrect-bounds-checking-for-draw-affine-https-gith.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0068-incorrect-bounds-checking-for-draw-affine-https-gith.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,62 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Sun, 28 Aug 2022 10:55:11 -0400
+Subject: incorrect bounds checking for draw affine @
+ https://github.com/ImageMagick/ImageMagick/issues/5497
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/c5a9368d871943eceafce143bb87612b2a9623b2.patch
+---
+ magick/draw.c | 24 ++++++++++++++++--------
+ 1 file changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/magick/draw.c b/magick/draw.c
+index 50ed8e0..14774d6 100644
+--- a/magick/draw.c
++++ b/magick/draw.c
+@@ -1206,12 +1206,12 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
+   assert(affine != (AffineMatrix *) NULL);
+   extent[0].x=0.0;
+   extent[0].y=0.0;
+-  extent[1].x=(double) source->columns-1.0;
++  extent[1].x=(double) source->columns;
+   extent[1].y=0.0;
+-  extent[2].x=(double) source->columns-1.0;
+-  extent[2].y=(double) source->rows-1.0;
++  extent[2].x=(double) source->columns;
++  extent[2].y=(double) source->rows;
+   extent[3].x=0.0;
+-  extent[3].y=(double) source->rows-1.0;
++  extent[3].y=(double) source->rows;
+   for (i=0; i < 4; i++)
+   {
+     point=extent[i];
+@@ -1237,11 +1237,15 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
+   if (SetImageStorageClass(image,DirectClass) == MagickFalse)
+     return(MagickFalse);
+   status=MagickTrue;
+-  edge.x1=MagickMax(min.x,0.0);
+-  edge.y1=MagickMax(min.y,0.0);
+-  edge.x2=MagickMin(max.x,(double) image->columns-1.0);
+-  edge.y2=MagickMin(max.y,(double) image->rows-1.0);
++  edge.x1=min.x;
++  edge.y1=min.y;
++  edge.x2=max.x;
++  edge.y2=max.y;
+   inverse_affine=InverseAffineMatrix(affine);
++  if (edge.y1 < 0.0)
++    edge.y1=0.0;
++  if (edge.y2 > (image->rows-1.0))
++    edge.y2=image->rows-1.0;
+   GetMagickPixelPacket(image,&zero);
+   exception=(&image->exception);
+   start=CastDoubleToLong(ceil(edge.y1-0.5));
+@@ -1281,6 +1285,10 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
+     inverse_edge=AffineEdge(source,&inverse_affine,(double) y,&edge);
+     if (inverse_edge.x2 < inverse_edge.x1)
+       continue;
++    if (inverse_edge.x1 < 0.0)
++      inverse_edge.x1=0.0;
++    if (inverse_edge.x2 > image->columns-1.0)
++      inverse_edge.x2=image->columns-1.0;
+     q=GetCacheViewAuthenticPixels(image_view,CastDoubleToLong(
+       ceil(inverse_edge.x1-0.5)),y,(size_t) CastDoubleToLong(floor(
+       inverse_edge.x2+0.5)-ceil(inverse_edge.x1-0.5)+1),1,exception);
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0069-CVE-2023-34151.patch imagemagick-6.9.11.60+dfsg/debian/patches/0069-CVE-2023-34151.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0069-CVE-2023-34151.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0069-CVE-2023-34151.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,102 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Fri, 19 Apr 2024 13:39:44 -0400
+Subject: CVE-2023-34151
+
+improved range checking (https://github.com/ImageMagick/ImageMagick/issues/6341)
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/75ebd9975f6ba8106ec15a6b3e6ba95f4c14e117.patch
+---
+ coders/mvg.c           |  4 ++--
+ magick/image-private.h | 46 +++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 35 insertions(+), 15 deletions(-)
+
+diff --git a/coders/mvg.c b/coders/mvg.c
+index d8e793e..d17de75 100644
+--- a/coders/mvg.c
++++ b/coders/mvg.c
+@@ -177,8 +177,8 @@ static Image *ReadMVGImage(const ImageInfo *image_info,ExceptionInfo *exception)
+           continue;
+         (void) sscanf(p,"viewbox %lf %lf %lf %lf",&bounds.x1,&bounds.y1,
+           &bounds.x2,&bounds.y2);
+-        image->columns=(size_t) floor((bounds.x2-bounds.x1)+0.5);
+-        image->rows=(size_t) floor((bounds.y2-bounds.y1)+0.5);
++        image->columns=CastDoubleToUnsigned(floor((bounds.x2-bounds.x1)+0.5));
++        image->rows=CastDoubleToUnsigned(floor((bounds.y2-bounds.y1)+0.5));
+         break;
+       }
+     }
+diff --git a/magick/image-private.h b/magick/image-private.h
+index fc7d4b4..57c5159 100644
+--- a/magick/image-private.h
++++ b/magick/image-private.h
+@@ -53,30 +53,25 @@ extern "C" {
+ #define UndefinedCompressionQuality  0UL
+ #define UndefinedTicksPerSecond  100L
+ 
+-static inline ssize_t CastDoubleToLong(const double value)
++static inline size_t CastDoubleToLong(const double x)
+ {
+-  if (IsNaN(value) != 0)
+-    return(0);
+-  if (value > (double) MAGICK_SSIZE_MAX)
+-    return((ssize_t) MAGICK_SSIZE_MAX);
+-  if (value < (double) MAGICK_SSIZE_MIN)
+-    return((ssize_t) MAGICK_SSIZE_MIN);
+-  return((ssize_t) value);
+-}
++  double
++    value;
+ 
+-static inline size_t CastDoubleToUnsigned(const double x)
+-{
+   if (IsNaN(x) != 0)
+     {
+       errno=ERANGE;
+       return(0);
+     }
+-  if (floor(x) > ((double) MAGICK_SSIZE_MAX-1))
++  value=floor(x);
++  if (value > ((double) MAGICK_SSIZE_MAX-1))
+     {
+       errno=ERANGE;
+       return((size_t) MAGICK_SIZE_MAX);
+     }
+-  if (ceil(x) < 0.0)
++
++  value=ceil(x);
++  if (value < ((double) MAGICK_SSIZE_MIN+1))
+     {
+       errno=ERANGE;
+       return(0);
+@@ -95,6 +90,31 @@ static inline QuantumAny CastDoubleToQuantumAny(const double x)
+   return((QuantumAny) (x+0.5));
+ }
+ 
++static inline size_t CastDoubleToUnsigned(const double x)
++{
++  double
++    value;
++
++  if (IsNaN(x) != 0)
++    {
++      errno=ERANGE;
++      return(0);
++    }
++  value=floor(x);
++  if (value > ((double) MAGICK_SIZE_MAX-1))
++    {
++      errno=ERANGE;
++      return((size_t) MAGICK_SIZE_MAX);
++    }
++  value=ceil(x);
++  if (ceil(x) < 0.0)
++    {
++      errno=ERANGE;
++      return(0);
++    }
++  return((size_t) x);
++}
++
+ static inline double DegreesToRadians(const double degrees)
+ {
+   return((double) (MagickPI*degrees/180.0));
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0070-check-for-value-0-ceil-not-required.patch imagemagick-6.9.11.60+dfsg/debian/patches/0070-check-for-value-0-ceil-not-required.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0070-check-for-value-0-ceil-not-required.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0070-check-for-value-0-ceil-not-required.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,54 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Fri, 19 Apr 2024 14:33:05 -0400
+Subject: check for value < 0, ceil() not required
+
+This patch addresses CVE-2023-34151, not a recurring bug of CVE-2022-32546.
+
+Cast from double to integer is hard to correctly and was fixed by a few patches upstream.
+
+bug: https://github.com/ImageMagick/ImageMagick/issues/6341
+origin: https://github.com/ImageMagick/ImageMagick6/commit/b72508c8fce196cd031856574c202490be830649.patch
+---
+ magick/image-private.h | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+diff --git a/magick/image-private.h b/magick/image-private.h
+index 57c5159..bfc0265 100644
+--- a/magick/image-private.h
++++ b/magick/image-private.h
+@@ -67,16 +67,14 @@ static inline size_t CastDoubleToLong(const double x)
+   if (value > ((double) MAGICK_SSIZE_MAX-1))
+     {
+       errno=ERANGE;
+-      return((size_t) MAGICK_SIZE_MAX);
+-    }
+-
+-  value=ceil(x);
++      return((ssize_t) MAGICK_SSIZE_MAX);
++    } value=ceil(x);
+   if (value < ((double) MAGICK_SSIZE_MIN+1))
+     {
+       errno=ERANGE;
+       return(0);
+     }
+-  return((size_t) x);
++  return((ssize_t) value);
+ }
+ 
+ static inline QuantumAny CastDoubleToQuantumAny(const double x)
+@@ -106,13 +104,12 @@ static inline size_t CastDoubleToUnsigned(const double x)
+       errno=ERANGE;
+       return((size_t) MAGICK_SIZE_MAX);
+     }
+-  value=ceil(x);
+-  if (ceil(x) < 0.0)
++  if (value < 0.0)
+     {
+       errno=ERANGE;
+       return(0);
+     }
+-  return((size_t) x);
++  return((size_t) value);
+ }
+ 
+ static inline double DegreesToRadians(const double degrees)
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0071-fix-undefined-behaviors-when-casting-double-to-size_.patch imagemagick-6.9.11.60+dfsg/debian/patches/0071-fix-undefined-behaviors-when-casting-double-to-size_.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0071-fix-undefined-behaviors-when-casting-double-to-size_.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0071-fix-undefined-behaviors-when-casting-double-to-size_.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,42 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Fri, 19 Apr 2024 19:38:56 -0400
+Subject: fix undefined behaviors when casting double to size_t
+
+This is needed for fixing CVE-2023-34151
+
+Cast from double to integer is hard to correctly and was fixed by a few patches upstream.
+
+bug: https://github.com/ImageMagick/ImageMagick/issues/6341
+origin: https://github.com/ImageMagick/ImageMagick6/commit/88789966667b748f14a904f8c9122274810e8a3e
+---
+ magick/image-private.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/magick/image-private.h b/magick/image-private.h
+index bfc0265..839ed72 100644
+--- a/magick/image-private.h
++++ b/magick/image-private.h
+@@ -64,12 +64,12 @@ static inline size_t CastDoubleToLong(const double x)
+       return(0);
+     }
+   value=floor(x);
+-  if (value > ((double) MAGICK_SSIZE_MAX-1))
++  if (value > ((double) MAGICK_SSIZE_MAX))
+     {
+       errno=ERANGE;
+       return((ssize_t) MAGICK_SSIZE_MAX);
+     } value=ceil(x);
+-  if (value < ((double) MAGICK_SSIZE_MIN+1))
++  if (value < ((double) MAGICK_SSIZE_MIN))
+     {
+       errno=ERANGE;
+       return(0);
+@@ -99,7 +99,7 @@ static inline size_t CastDoubleToUnsigned(const double x)
+       return(0);
+     }
+   value=floor(x);
+-  if (value > ((double) MAGICK_SIZE_MAX-1))
++  if (value > ((double) MAGICK_SIZE_MAX))
+     {
+       errno=ERANGE;
+       return((size_t) MAGICK_SIZE_MAX);
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0072-use-a-different-path-for-positive-and-negative-value.patch imagemagick-6.9.11.60+dfsg/debian/patches/0072-use-a-different-path-for-positive-and-negative-value.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0072-use-a-different-path-for-positive-and-negative-value.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0072-use-a-different-path-for-positive-and-negative-value.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,49 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Sat, 20 Apr 2024 06:40:49 -0400
+Subject: use a different path for positive and negative values
+
+This is needed for fixing CVE-2023-34151
+
+Cast from double to integer is hard to correctly and was fixed by a few patches upstream.
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/bc5ac19bd93895e5c6158aad0d8e49a0c50b0ebb.patch
+---
+ magick/image-private.h | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
+
+diff --git a/magick/image-private.h b/magick/image-private.h
+index 839ed72..4e03993 100644
+--- a/magick/image-private.h
++++ b/magick/image-private.h
+@@ -63,16 +63,23 @@ static inline size_t CastDoubleToLong(const double x)
+       errno=ERANGE;
+       return(0);
+     }
+-  value=floor(x);
+-  if (value > ((double) MAGICK_SSIZE_MAX))
++  if (x < 0.0)
+     {
+-      errno=ERANGE;
+-      return((ssize_t) MAGICK_SSIZE_MAX);
+-    } value=ceil(x);
+-  if (value < ((double) MAGICK_SSIZE_MIN))
++      value=ceil(x);
++      if (value < ((double) MAGICK_SSIZE_MIN))
++        {
++          errno=ERANGE;
++          return((ssize_t) MAGICK_SSIZE_MIN);
++        }
++    }
++  else
+     {
+-      errno=ERANGE;
+-      return(0);
++      value=floor(x);
++      if (value > ((double) MAGICK_SSIZE_MAX))
++        {
++          errno=ERANGE;
++          return((ssize_t) MAGICK_SSIZE_MAX);
++        }
+     }
+   return((ssize_t) value);
+ }
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0073-use-instead-to-work-around-precision-limitations-of-.patch imagemagick-6.9.11.60+dfsg/debian/patches/0073-use-instead-to-work-around-precision-limitations-of-.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0073-use-instead-to-work-around-precision-limitations-of-.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0073-use-instead-to-work-around-precision-limitations-of-.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,26 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Tue, 23 Apr 2024 11:39:48 -0400
+Subject: use >= instead to work around precision limitations of a double.
+
+This is needed for fixing CVE-2023-34151
+
+Cast from double to integer is hard to correctly and was fixed by a few patches upstream.
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/3252d4771ff1142888ba83c439588969fcea98e4.patch
+---
+ magick/image-private.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/magick/image-private.h b/magick/image-private.h
+index 4e03993..bfe0a81 100644
+--- a/magick/image-private.h
++++ b/magick/image-private.h
+@@ -106,7 +106,7 @@ static inline size_t CastDoubleToUnsigned(const double x)
+       return(0);
+     }
+   value=floor(x);
+-  if (value > ((double) MAGICK_SIZE_MAX))
++  if (value >= ((double) MAGICK_SIZE_MAX))
+     {
+       errno=ERANGE;
+       return((size_t) MAGICK_SIZE_MAX);
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0074-CVE-2023-1289-recursion-detection-fail.patch imagemagick-6.9.11.60+dfsg/debian/patches/0074-CVE-2023-1289-recursion-detection-fail.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0074-CVE-2023-1289-recursion-detection-fail.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0074-CVE-2023-1289-recursion-detection-fail.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,73 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Mon, 6 Mar 2023 19:50:49 -0500
+Subject: CVE-2023-1289: recursion detection fail
+
+This is a partial revert of the detection recursion of CVE-2023-1289.
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/1485a4c2cba8ca32981016fa25e7a15ef84f06f6.patch
+---
+ magick/constitute.c | 7 -------
+ magick/draw.c       | 1 -
+ magick/image.c      | 1 -
+ magick/image.h      | 3 ---
+ 4 files changed, 12 deletions(-)
+
+diff --git a/magick/constitute.c b/magick/constitute.c
+index 49e8f82..410c106 100644
+--- a/magick/constitute.c
++++ b/magick/constitute.c
+@@ -563,16 +563,9 @@ MagickExport Image *ReadImage(const ImageInfo *image_info,
+       if ((thread_support & DecoderThreadSupport) == 0)
+         LockSemaphoreInfo(magick_info->semaphore);
+       status=IsCoderAuthorized(read_info->magick,ReadPolicyRights,exception);
+-      if (((ImageInfo *) image_info)->recursion_depth++ > MaxReadRecursionDepth)
+-        {
+-          (void) ThrowMagickException(exception,GetMagickModule(),CoderError,
+-            "NumberOfImagesIsNotSupported","`%s'",read_info->magick);
+-          status=MagickFalse;
+-        }
+       image=(Image *) NULL;
+       if (status != MagickFalse)
+         image=GetImageDecoder(magick_info)(read_info,exception);
+-      ((ImageInfo *) image_info)->recursion_depth--;
+       if ((thread_support & DecoderThreadSupport) == 0)
+         UnlockSemaphoreInfo(magick_info->semaphore);
+     }
+diff --git a/magick/draw.c b/magick/draw.c
+index 14774d6..c27cb9a 100644
+--- a/magick/draw.c
++++ b/magick/draw.c
+@@ -5452,7 +5452,6 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
+       if (primitive_info->text == (char *) NULL)
+         break;
+       clone_info=AcquireImageInfo();
+-      clone_info->recursion_depth=draw_info->image_info->recursion_depth;
+       composite_images=(Image *) NULL;
+       if (LocaleNCompare(primitive_info->text,"data:",5) == 0)
+         composite_images=ReadInlineImage(clone_info,primitive_info->text,
+diff --git a/magick/image.c b/magick/image.c
+index 9ee22d8..1fc3617 100644
+--- a/magick/image.c
++++ b/magick/image.c
+@@ -1008,7 +1008,6 @@ MagickExport ImageInfo *CloneImageInfo(const ImageInfo *image_info)
+   clone_info->subimage=image_info->scene;  /* deprecated */
+   clone_info->subrange=image_info->number_scenes;  /* deprecated */
+   clone_info->channel=image_info->channel;
+-  clone_info->recursion_depth=image_info->recursion_depth;
+   clone_info->debug=IsEventLogging();
+   clone_info->signature=image_info->signature;
+   return(clone_info);
+diff --git a/magick/image.h b/magick/image.h
+index e71df13..ac69bef 100644
+--- a/magick/image.h
++++ b/magick/image.h
+@@ -499,9 +499,6 @@ struct _ImageInfo
+ 
+   MagickBooleanType
+     synchronize;
+-
+-  size_t
+-    recursion_depth;  /* recursion detection */
+ };
+ 
+ extern MagickExport ExceptionType
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0075-improved-fix-for-possible-DoS-for-certain-SVG-constr.patch imagemagick-6.9.11.60+dfsg/debian/patches/0075-improved-fix-for-possible-DoS-for-certain-SVG-constr.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0075-improved-fix-for-possible-DoS-for-certain-SVG-constr.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0075-improved-fix-for-possible-DoS-for-certain-SVG-constr.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,60 @@
+From: Cristy <mikayla-gr...@urban-warrior.org>
+Date: Thu, 23 Dec 2021 06:46:46 -0500
+Subject: improved fix for possible DoS for certain SVG constructs
+
+This is partial fix CVE-2023-1289
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/84ec30550c3146f525383f18a786a6bbd5028a93.patch
+---
+ magick/draw.c | 36 +++++++++++++++++++++++++-----------
+ 1 file changed, 25 insertions(+), 11 deletions(-)
+
+diff --git a/magick/draw.c b/magick/draw.c
+index c27cb9a..bab9b47 100644
+--- a/magick/draw.c
++++ b/magick/draw.c
+@@ -5459,19 +5459,33 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
+       else
+         if (*primitive_info->text != '\0')
+           {
++            MagickBooleanType
++              status;
++
++            struct stat
++              attributes;
++
++            (void) CopyMagickString(clone_info->filename,primitive_info->text,
++              MagickPathExtent);
+             (void) CopyMagickString(clone_info->filename,primitive_info->text,
+               MagickPathExtent);
+-            status&=SetImageInfo(clone_info,1,exception);
+-            if (clone_info->size != (char *) NULL)
+-              clone_info->size=DestroyString(clone_info->size);
+-            if (clone_info->extract != (char *) NULL)
+-              clone_info->extract=DestroyString(clone_info->extract);
+-            if ((LocaleNCompare(clone_info->magick,"http",4) == 0) ||
+-                (LocaleCompare(clone_info->magick,"mpri") == 0))
+-              (void) CopyMagickString(clone_info->filename,primitive_info->text,
+-                MagickPathExtent);
+-            if (*clone_info->filename != '\0')
+-              composite_images=ReadImage(clone_info,exception);
++            status=GetPathAttributes(clone_info->filename,&attributes);
++            if ((status != MagickFalse) && (S_ISCHR(attributes.st_mode) == 0))
++              {
++                status&=SetImageInfo(clone_info,1,exception);
++                (void) CopyMagickString(clone_info->filename,
++                  primitive_info->text,MagickPathExtent);
++                if (clone_info->size != (char *) NULL)
++                  clone_info->size=DestroyString(clone_info->size);
++                if (clone_info->extract != (char *) NULL)
++                  clone_info->extract=DestroyString(clone_info->extract);
++                if ((LocaleCompare(clone_info->magick,"file") == 0) ||
++                    (LocaleCompare(clone_info->magick,"https") == 0) ||
++                    (LocaleCompare(clone_info->magick,"http") == 0) ||
++                    (LocaleCompare(clone_info->magick,"mpri") == 0) ||
++                    (IsPathAccessible(clone_info->filename) != MagickFalse))
++                  composite_images=ReadImage(clone_info,exception);
++              }
+           }
+       clone_info=DestroyImageInfo(clone_info);
+       if (composite_images == (Image *) NULL)
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0076-permit-compositing-MPRI-images.patch imagemagick-6.9.11.60+dfsg/debian/patches/0076-permit-compositing-MPRI-images.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0076-permit-compositing-MPRI-images.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0076-permit-compositing-MPRI-images.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,95 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Sat, 29 Jan 2022 11:31:10 -0500
+Subject: permit compositing MPRI images
+
+This fix follow up of CVE-2023-1289
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/4dd4d0df449acb13fb859041b4996af58243e352.patch
+---
+ coders/mpr.c  |  9 +++++++--
+ magick/draw.c | 41 +++++++++++++++++++++++++----------------
+ 2 files changed, 32 insertions(+), 18 deletions(-)
+
+diff --git a/coders/mpr.c b/coders/mpr.c
+index 9cebc13..24c4e1f 100644
+--- a/coders/mpr.c
++++ b/coders/mpr.c
+@@ -100,8 +100,13 @@ static Image *ReadMPRImage(const ImageInfo *image_info,ExceptionInfo *exception)
+   assert(exception->signature == MagickCoreSignature);
+   image=(Image *) GetImageRegistry(ImageRegistryType,image_info->filename,
+     exception);
+-  if (image != (Image *) NULL)
+-    (void) SyncImageSettings(image_info,image);
++  if (image == (Image *) NULL)
++    {
++      (void) ThrowMagickException(exception,GetMagickModule(),FileOpenError,
++        "UnableToOpenFile","`%s'",image_info->filename);
++      return(image);
++    }
++  (void) SyncImageSettings(image_info,image);
+   return(image);
+ }
+ 
+diff --git a/magick/draw.c b/magick/draw.c
+index bab9b47..a8fcb91 100644
+--- a/magick/draw.c
++++ b/magick/draw.c
+@@ -5459,33 +5459,42 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
+       else
+         if (*primitive_info->text != '\0')
+           {
+-            MagickBooleanType
+-              status;
++            MagickStatusType
++              path_status;
+ 
+             struct stat
+               attributes;
+ 
++            /*
++              Read composite image.
++            */
+             (void) CopyMagickString(clone_info->filename,primitive_info->text,
+               MagickPathExtent);
++            (void) SetImageInfo(clone_info,1,exception);
+             (void) CopyMagickString(clone_info->filename,primitive_info->text,
+               MagickPathExtent);
+-            status=GetPathAttributes(clone_info->filename,&attributes);
+-            if ((status != MagickFalse) && (S_ISCHR(attributes.st_mode) == 0))
++            if (clone_info->size != (char *) NULL)
++              clone_info->size=DestroyString(clone_info->size);
++            if (clone_info->extract != (char *) NULL)
++              clone_info->extract=DestroyString(clone_info->extract);
++            path_status=GetPathAttributes(clone_info->filename,&attributes);
++            if (path_status != MagickFalse)
+               {
+-                status&=SetImageInfo(clone_info,1,exception);
+-                (void) CopyMagickString(clone_info->filename,
+-                  primitive_info->text,MagickPathExtent);
+-                if (clone_info->size != (char *) NULL)
+-                  clone_info->size=DestroyString(clone_info->size);
+-                if (clone_info->extract != (char *) NULL)
+-                  clone_info->extract=DestroyString(clone_info->extract);
+-                if ((LocaleCompare(clone_info->magick,"file") == 0) ||
+-                    (LocaleCompare(clone_info->magick,"https") == 0) ||
+-                    (LocaleCompare(clone_info->magick,"http") == 0) ||
+-                    (LocaleCompare(clone_info->magick,"mpri") == 0) ||
+-                    (IsPathAccessible(clone_info->filename) != MagickFalse))
++                if (S_ISCHR(attributes.st_mode) == 0)
+                   composite_images=ReadImage(clone_info,exception);
++                else
++                  (void) ThrowMagickException(exception,GetMagickModule(),
++                    FileOpenError,"UnableToOpenFile","`%s'",
++                    clone_info->filename);
+               }
++            else
++              if ((LocaleCompare(clone_info->magick,"ftp") != 0) &&
++                  (LocaleCompare(clone_info->magick,"https") != 0) &&
++                  (LocaleCompare(clone_info->magick,"http") != 0))
++                composite_images=ReadImage(clone_info,exception);
++              else
++                (void) ThrowMagickException(exception,GetMagickModule(),
++                  FileOpenError,"UnableToOpenFile","`%s'",clone_info->filename);
+           }
+       clone_info=DestroyImageInfo(clone_info);
+       if (composite_images == (Image *) NULL)
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0077-VID-images-not-permitted-when-compositing.patch imagemagick-6.9.11.60+dfsg/debian/patches/0077-VID-images-not-permitted-when-compositing.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0077-VID-images-not-permitted-when-compositing.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0077-VID-images-not-permitted-when-compositing.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,26 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Mon, 31 Jan 2022 09:44:05 -0500
+Subject: VID images not permitted when compositing
+
+This fix followup of CVE-2023-1289
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/f4529c0dcf3a8f96c438086b28fbef8338cda0b1.patch
+---
+ magick/draw.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/magick/draw.c b/magick/draw.c
+index a8fcb91..0ab2dde 100644
+--- a/magick/draw.c
++++ b/magick/draw.c
+@@ -5489,8 +5489,9 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
+               }
+             else
+               if ((LocaleCompare(clone_info->magick,"ftp") != 0) &&
++                  (LocaleCompare(clone_info->magick,"http") != 0) &&
+                   (LocaleCompare(clone_info->magick,"https") != 0) &&
+-                  (LocaleCompare(clone_info->magick,"http") != 0))
++                  (LocaleCompare(clone_info->magick,"vid") != 0))
+                 composite_images=ReadImage(clone_info,exception);
+               else
+                 (void) ThrowMagickException(exception,GetMagickModule(),
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0078-do-not-composite-SVG-to-avoid-possible-recursion.patch imagemagick-6.9.11.60+dfsg/debian/patches/0078-do-not-composite-SVG-to-avoid-possible-recursion.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0078-do-not-composite-SVG-to-avoid-possible-recursion.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0078-do-not-composite-SVG-to-avoid-possible-recursion.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,42 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Mon, 6 Mar 2023 19:55:46 -0500
+Subject: do not composite SVG to avoid possible recursion
+
+This is part of fix of CVE-2023-1289
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/75aac79108af0c0b0d7fc88b1f09c340b0d62c85.patch
+---
+ magick/draw.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/magick/draw.c b/magick/draw.c
+index 0ab2dde..ce22a42 100644
+--- a/magick/draw.c
++++ b/magick/draw.c
+@@ -5459,6 +5459,9 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
+       else
+         if (*primitive_info->text != '\0')
+           {
++            const MagickInfo
++              *magick_info;
++
+             MagickStatusType
+               path_status;
+ 
+@@ -5471,6 +5474,16 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
+             (void) CopyMagickString(clone_info->filename,primitive_info->text,
+               MagickPathExtent);
+             (void) SetImageInfo(clone_info,1,exception);
++            magick_info=GetMagickInfo(clone_info->magick,exception);
++            if ((magick_info != (const MagickInfo*) NULL) &&
++                (LocaleCompare(magick_info->module,"SVG") == 0))
++              {
++                (void) ThrowMagickException(exception,GetMagickModule(),
++                  CorruptImageError,"ImageTypeNotSupported","`%s'",
++                  clone_info->filename);
++                clone_info=DestroyImageInfo(clone_info);
++                break;
++              }
+             (void) CopyMagickString(clone_info->filename,primitive_info->text,
+               MagickPathExtent);
+             if (clone_info->size != (char *) NULL)
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0079-recursion-detection-framework.patch imagemagick-6.9.11.60+dfsg/debian/patches/0079-recursion-detection-framework.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0079-recursion-detection-framework.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0079-recursion-detection-framework.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,24 @@
+From: Cristy <urban-warr...@imagemagick.org>
+Date: Mon, 6 Mar 2023 15:06:05 -0500
+Subject: recursion detection framework
+
+Avoid a memory leak in previous patches
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/060660bf45e0771cf0431e5c2749aa51fabf23f8.patch
+---
+ magick/draw.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/magick/draw.c b/magick/draw.c
+index ce22a42..051f2fe 100644
+--- a/magick/draw.c
++++ b/magick/draw.c
+@@ -1017,6 +1017,8 @@ MagickExport DrawInfo *DestroyDrawInfo(DrawInfo *draw_info)
+     draw_info->clipping_mask=DestroyImage(draw_info->clipping_mask);
+   if (draw_info->composite_mask != (Image *) NULL)
+     draw_info->composite_mask=DestroyImage(draw_info->composite_mask);
++  if (draw_info->image_info != (ImageInfo *) NULL)
++    draw_info->image_info=DestroyImageInfo(draw_info->image_info);
+   draw_info->signature=(~MagickCoreSignature);
+   draw_info=(DrawInfo *) RelinquishMagickMemory(draw_info);
+   return(draw_info);
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/0080-Fixed-memory-leak.patch imagemagick-6.9.11.60+dfsg/debian/patches/0080-Fixed-memory-leak.patch
--- imagemagick-6.9.11.60+dfsg/debian/patches/0080-Fixed-memory-leak.patch	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/0080-Fixed-memory-leak.patch	2024-07-11 10:48:47.000000000 +0000
@@ -0,0 +1,21 @@
+From: Dirk Lemstra <d...@lemstra.org>
+Date: Sun, 16 Jul 2023 06:45:32 +0200
+Subject: Fixed memory leak.
+
+origin: https://github.com/ImageMagick/ImageMagick6/commit/c90e79b3b22fec309cab55af2ee606f71b027b12.patch
+---
+ magick/draw.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/magick/draw.c b/magick/draw.c
+index 051f2fe..91c4954 100644
+--- a/magick/draw.c
++++ b/magick/draw.c
+@@ -381,7 +381,6 @@ MagickExport DrawInfo *CloneDrawInfo(const ImageInfo *image_info,
+     clone_info->composite_mask=CloneImage(draw_info->composite_mask,0,0,
+       MagickTrue,&draw_info->composite_mask->exception);
+   clone_info->render=draw_info->render;
+-  clone_info->image_info=CloneImageInfo(draw_info->image_info);
+   clone_info->debug=IsEventLogging();
+   return(clone_info);
+ }
diff -Nru imagemagick-6.9.11.60+dfsg/debian/patches/series imagemagick-6.9.11.60+dfsg/debian/patches/series
--- imagemagick-6.9.11.60+dfsg/debian/patches/series	2024-02-12 20:15:47.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/patches/series	2024-07-11 10:48:47.000000000 +0000
@@ -63,3 +63,18 @@
 0063-Added-check-for-invalid-size.patch
 0064-improve-BMP-error-checking.patch
 0065-CVE-2023-5341.patch
+0066-CVE-2023-34151-properly-cast-double-to-size_t.patch
+0067-CVE-2023-34151.patch
+0068-incorrect-bounds-checking-for-draw-affine-https-gith.patch
+0069-CVE-2023-34151.patch
+0070-check-for-value-0-ceil-not-required.patch
+0071-fix-undefined-behaviors-when-casting-double-to-size_.patch
+0072-use-a-different-path-for-positive-and-negative-value.patch
+0073-use-instead-to-work-around-precision-limitations-of-.patch
+0074-CVE-2023-1289-recursion-detection-fail.patch
+0075-improved-fix-for-possible-DoS-for-certain-SVG-constr.patch
+0076-permit-compositing-MPRI-images.patch
+0077-VID-images-not-permitted-when-compositing.patch
+0078-do-not-composite-SVG-to-avoid-possible-recursion.patch
+0079-recursion-detection-framework.patch
+0080-Fixed-memory-leak.patch
diff -Nru imagemagick-6.9.11.60+dfsg/debian/rules imagemagick-6.9.11.60+dfsg/debian/rules
--- imagemagick-6.9.11.60+dfsg/debian/rules	2024-02-12 19:54:48.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/rules	2024-07-11 10:48:47.000000000 +0000
@@ -240,6 +240,12 @@
 	HDRI=$(call HDRI_PART,$*) \
 	QUANTUMDEPTH=$* \
 	UCQUANTUMDEPTH=$(call UC,$*) \
+	$(DH_EXEC_SUBST) $(CURDIR)/debian/tests.d/CVE-2023-1289-IMVERSION.QUANTUMDEPTH.in > $(CURDIR)/debian/tests/CVE-2023-1289-$(IMVERSION).$*
+	chmod +x $(CURDIR)/debian/tests/CVE-2023-1289-$(IMVERSION).$*
+	QUANTUM=$(call QUANTUM_PART,$*) \
+	HDRI=$(call HDRI_PART,$*) \
+	QUANTUMDEPTH=$* \
+	UCQUANTUMDEPTH=$(call UC,$*) \
 	$(DH_EXEC_SUBST) $(CURDIR)/debian/tests.d/perlmagick-IMVERSION.QUANTUMDEPTH.in > $(CURDIR)/debian/tests/perlmagick-$(IMVERSION).$*
 	chmod +x $(CURDIR)/debian/tests/perlmagick-$(IMVERSION).$*
 	# clean up
diff -Nru imagemagick-6.9.11.60+dfsg/debian/tests/control imagemagick-6.9.11.60+dfsg/debian/tests/control
--- imagemagick-6.9.11.60+dfsg/debian/tests/control	2024-02-12 19:54:48.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/tests/control	2024-07-11 10:48:47.000000000 +0000
@@ -4,9 +4,17 @@
 Tests: perlmagick-6.q16
 Depends: libimage-magick-q16-perl, libmagickcore-6.q16-6-extra, libaliased-perl, gsfonts
 
+Tests: CVE-2023-1289-6.q16
+Depends: imagemagick-6.q16, libmagickcore-6.q16-6-extra, netpbm
+Restrictions: allow-stderr
+
 Tests: rose-6.q16hdri
 Depends: imagemagick-6.q16hdri, libmagickcore-6.q16hdri-6-extra, netpbm
 
 Tests: perlmagick-6.q16hdri
 Depends: libimage-magick-q16hdri-perl, libmagickcore-6.q16hdri-6-extra, libaliased-perl, gsfonts
 
+Tests: CVE-2023-1289-6.q16hdri
+Depends: imagemagick-6.q16hdri, libmagickcore-6.q16hdri-6-extra, netpbm
+Restrictions: allow-stderr
+
diff -Nru imagemagick-6.9.11.60+dfsg/debian/tests/CVE-2023-1289-6.q16 imagemagick-6.9.11.60+dfsg/debian/tests/CVE-2023-1289-6.q16
--- imagemagick-6.9.11.60+dfsg/debian/tests/CVE-2023-1289-6.q16	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/tests/CVE-2023-1289-6.q16	2024-07-09 13:25:50.000000000 +0000
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+CONVERT=convert-im6.q16
+
+set -e
+tee bad.svg <<"EOF"
+<!DOCTYPE test>
+<svg width="128px" height="128px" xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; version="1.1">
+<image height="200" width="200" xlink:href="bad.svg" />
+</svg>
+EOF
+
+error_code=0
+$CONVERT -verbose -font OpenSymbol bad.svg t.jpg || error_code=$?
+if [ error_code -gt 126]; then
+    exit $error_code;
+else
+    exit 0;
+fi
+
diff -Nru imagemagick-6.9.11.60+dfsg/debian/tests/CVE-2023-1289-6.q16hdri imagemagick-6.9.11.60+dfsg/debian/tests/CVE-2023-1289-6.q16hdri
--- imagemagick-6.9.11.60+dfsg/debian/tests/CVE-2023-1289-6.q16hdri	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/tests/CVE-2023-1289-6.q16hdri	2024-07-09 13:25:50.000000000 +0000
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+CONVERT=convert-im6.q16hdri
+
+set -e
+tee bad.svg <<"EOF"
+<!DOCTYPE test>
+<svg width="128px" height="128px" xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; version="1.1">
+<image height="200" width="200" xlink:href="bad.svg" />
+</svg>
+EOF
+
+error_code=0
+$CONVERT -verbose -font OpenSymbol bad.svg t.jpg || error_code=$?
+if [ error_code -gt 126]; then
+    exit $error_code;
+else
+    exit 0;
+fi
+
diff -Nru imagemagick-6.9.11.60+dfsg/debian/tests.d/control.quantum.in imagemagick-6.9.11.60+dfsg/debian/tests.d/control.quantum.in
--- imagemagick-6.9.11.60+dfsg/debian/tests.d/control.quantum.in	2024-02-12 19:54:48.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/tests.d/control.quantum.in	2024-07-11 10:48:47.000000000 +0000
@@ -4,3 +4,7 @@
 Tests: perlmagick-${IMVERSION}.${QUANTUMDEPTH}
 Depends: libimage-magick-${QUANTUMDEPTH}-perl, libmagickcore-${IMVERSION}.${QUANTUMDEPTH}-${CORESOVERSION}-extra, libaliased-perl, gsfonts
 
+Tests: CVE-2023-1289-${IMVERSION}.${QUANTUMDEPTH}
+Depends: imagemagick-${IMVERSION}.${QUANTUMDEPTH}, libmagickcore-${IMVERSION}.${QUANTUMDEPTH}-${CORESOVERSION}-extra, netpbm
+Restrictions: allow-stderr
+
diff -Nru imagemagick-6.9.11.60+dfsg/debian/tests.d/CVE-2023-1289-IMVERSION.QUANTUMDEPTH.in imagemagick-6.9.11.60+dfsg/debian/tests.d/CVE-2023-1289-IMVERSION.QUANTUMDEPTH.in
--- imagemagick-6.9.11.60+dfsg/debian/tests.d/CVE-2023-1289-IMVERSION.QUANTUMDEPTH.in	1970-01-01 00:00:00.000000000 +0000
+++ imagemagick-6.9.11.60+dfsg/debian/tests.d/CVE-2023-1289-IMVERSION.QUANTUMDEPTH.in	2024-07-09 13:25:50.000000000 +0000
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+CONVERT=convert-im${IMVERSION}.${QUANTUMDEPTH}
+
+set -e
+tee bad.svg <<"EOF"
+<!DOCTYPE test>
+<svg width="128px" height="128px" xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; version="1.1">
+<image height="200" width="200" xlink:href="bad.svg" />
+</svg>
+EOF
+
+error_code=0
+$CONVERT -verbose -font OpenSymbol bad.svg t.jpg || error_code=$?
+if [ error_code -gt 126]; then
+    exit $error_code;
+else
+    exit 0;
+fi
+

Attachment: signature.asc
Description: This is a digitally signed message part.


--- End Message ---
--- Begin Message ---
Package: release.debian.org
Version: 12.7

Hi,

Each of these bugs relates to an update including in today's bookworm
12.7 point release.

Regards,

Adam

--- End Message ---

Reply via email to