Fix CVE-2025-27832, CVE-2025-27835, CVE-2025-27836
This commit is contained in:
parent
e09858a0d3
commit
551fe3173f
41
backport-CVE-2025-27832.patch
Normal file
41
backport-CVE-2025-27832.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From 36ac25fca7ba65a2a24d96d553e8dd63990210b9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Zdenek Hutyra <zhutyra@centrum.cz>
|
||||||
|
Date: Wed, 20 Nov 2024 11:42:31 +0000
|
||||||
|
Subject: Bug 708133: Avoid integer overflow leading to buffer overflow
|
||||||
|
|
||||||
|
The calculation of the buffer size was being done with int values, and
|
||||||
|
overflowing that data type. By leaving the total size calculation to the
|
||||||
|
memory manager, the calculation ends up being done in size_t values, and
|
||||||
|
avoiding the overflow in this case, but also meaning the memory manager
|
||||||
|
overflow protection will be effective.
|
||||||
|
|
||||||
|
CVE-2025-27832
|
||||||
|
---
|
||||||
|
contrib/japanese/gdevnpdl.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/contrib/japanese/gdevnpdl.c b/contrib/japanese/gdevnpdl.c
|
||||||
|
index 60065bacf..4967282bd 100644
|
||||||
|
--- a/contrib/japanese/gdevnpdl.c
|
||||||
|
+++ b/contrib/japanese/gdevnpdl.c
|
||||||
|
@@ -587,7 +587,7 @@ npdl_print_page_copies(gx_device_printer * pdev, gp_file * prn_stream, int num_c
|
||||||
|
int code;
|
||||||
|
int maxY = lprn->BlockLine / lprn->nBh * lprn->nBh;
|
||||||
|
|
||||||
|
- if (!(lprn->CompBuf = gs_malloc(pdev->memory->non_gc_memory, line_size * maxY, sizeof(byte), "npdl_print_page_copies(CompBuf)")))
|
||||||
|
+ if (!(lprn->CompBuf = gs_malloc(pdev->memory->non_gc_memory, line_size, maxY, "npdl_print_page_copies(CompBuf)")))
|
||||||
|
return_error(gs_error_VMerror);
|
||||||
|
|
||||||
|
/* Initialize printer */
|
||||||
|
@@ -683,7 +683,7 @@ npdl_print_page_copies(gx_device_printer * pdev, gp_file * prn_stream, int num_c
|
||||||
|
/* Form Feed */
|
||||||
|
gp_fputs("\014", prn_stream);
|
||||||
|
|
||||||
|
- gs_free(pdev->memory->non_gc_memory, lprn->CompBuf, line_size * maxY, sizeof(byte), "npdl_print_page_copies(CompBuf)");
|
||||||
|
+ gs_free(pdev->memory->non_gc_memory, lprn->CompBuf, line_size, maxY, "npdl_print_page_copies(CompBuf)");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
cgit v1.2.3
|
||||||
|
|
||||||
30
backport-CVE-2025-27835.patch
Normal file
30
backport-CVE-2025-27835.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From 920fae688705b3a25a1f8925f3837219a6243565 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Zdenek Hutyra <zhutyra@centrum.cz>
|
||||||
|
Date: Wed, 20 Nov 2024 11:27:52 +0000
|
||||||
|
Subject: Bug 708131: Fix confusion between bytes and shorts
|
||||||
|
|
||||||
|
We were copying data from a string in multiple of shorts, rather than multiple
|
||||||
|
of bytes, leading to both an read (probably benign, given the memory manager)
|
||||||
|
and write buffer overflow.
|
||||||
|
|
||||||
|
CVE-2025-27835
|
||||||
|
---
|
||||||
|
psi/zbfont.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/psi/zbfont.c b/psi/zbfont.c
|
||||||
|
index acffb39ef..5850ab54d 100644
|
||||||
|
--- a/psi/zbfont.c
|
||||||
|
+++ b/psi/zbfont.c
|
||||||
|
@@ -253,7 +253,7 @@ gs_font_map_glyph_to_unicode(gs_font *font, gs_glyph glyph, int ch, ushort *u, u
|
||||||
|
if (l > length)
|
||||||
|
return l;
|
||||||
|
|
||||||
|
- memcpy(unicode_return, v->value.const_bytes, l * sizeof(short));
|
||||||
|
+ memcpy(unicode_return, v->value.const_bytes, l);
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
if (r_type(v) == t_integer) {
|
||||||
|
--
|
||||||
|
cgit v1.2.3
|
||||||
|
|
||||||
60
backport-CVE-2025-27836.patch
Normal file
60
backport-CVE-2025-27836.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
From db77f4c0ce0298625f75059cb6b8c31e61350753 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Zdenek Hutyra <zhutyra@centrum.cz>
|
||||||
|
Date: Mon, 13 Jan 2025 09:07:57 +0000
|
||||||
|
Subject: Bug 708192: Fix potential print buffer overflow
|
||||||
|
|
||||||
|
CVE-2025-27836
|
||||||
|
---
|
||||||
|
contrib/japanese/gdev10v.c | 22 ++++++++++++++++------
|
||||||
|
1 file changed, 16 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/contrib/japanese/gdev10v.c b/contrib/japanese/gdev10v.c
|
||||||
|
index 0bd3cec02..9d27573dc 100644
|
||||||
|
--- a/contrib/japanese/gdev10v.c
|
||||||
|
+++ b/contrib/japanese/gdev10v.c
|
||||||
|
@@ -199,17 +199,25 @@ bj10v_print_page(gx_device_printer *pdev, gp_file *prn_stream)
|
||||||
|
int bytes_per_column = bits_per_column / 8;
|
||||||
|
int x_skip_unit = bytes_per_column * (xres / 180);
|
||||||
|
int y_skip_unit = (yres / 180);
|
||||||
|
- byte *in = (byte *)gs_malloc(pdev->memory->non_gc_memory, 8, line_size, "bj10v_print_page(in)");
|
||||||
|
- /* We need one extra byte in <out> for our sentinel. */
|
||||||
|
- byte *out = (byte *)gs_malloc(pdev->memory->non_gc_memory, bits_per_column * line_size + 1, 1, "bj10v_print_page(out)");
|
||||||
|
+ byte *in, *out;
|
||||||
|
int lnum = 0;
|
||||||
|
int y_skip = 0;
|
||||||
|
int code = 0;
|
||||||
|
int blank_lines = 0;
|
||||||
|
int bytes_per_data = ((xres == 360) && (yres == 360)) ? 1 : 3;
|
||||||
|
|
||||||
|
- if ( in == 0 || out == 0 )
|
||||||
|
- return -1;
|
||||||
|
+ if (bits_per_column == 0 || line_size > (max_int - 1) / bits_per_column) {
|
||||||
|
+ code = gs_note_error(gs_error_rangecheck);
|
||||||
|
+ goto error;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ in = (byte *)gs_malloc(pdev->memory->non_gc_memory, 8, line_size, "bj10v_print_page(in)");
|
||||||
|
+ /* We need one extra byte in <out> for our sentinel. */
|
||||||
|
+ out = (byte *)gs_malloc(pdev->memory->non_gc_memory, bits_per_column * line_size + 1, 1, "bj10v_print_page(out)");
|
||||||
|
+ if ( in == NULL || out == NULL ) {
|
||||||
|
+ code = gs_note_error(gs_error_VMerror);
|
||||||
|
+ goto error;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* Initialize the printer. */
|
||||||
|
prn_puts(pdev, "\033@");
|
||||||
|
@@ -320,8 +328,10 @@ notz:
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Eject the page */
|
||||||
|
-xit: prn_putc(pdev, 014); /* form feed */
|
||||||
|
+xit:
|
||||||
|
+ prn_putc(pdev, 014); /* form feed */
|
||||||
|
prn_flush(pdev);
|
||||||
|
+error:
|
||||||
|
gs_free(pdev->memory->non_gc_memory, (char *)out, bits_per_column, line_size, "bj10v_print_page(out)");
|
||||||
|
gs_free(pdev->memory->non_gc_memory, (char *)in, 8, line_size, "bj10v_print_page(in)");
|
||||||
|
return code;
|
||||||
|
--
|
||||||
|
cgit v1.2.3
|
||||||
|
|
||||||
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
Name: ghostscript
|
Name: ghostscript
|
||||||
Version: 9.52
|
Version: 9.52
|
||||||
Release: 20
|
Release: 21
|
||||||
Summary: An interpreter for PostScript and PDF files
|
Summary: An interpreter for PostScript and PDF files
|
||||||
License: AGPLv3+
|
License: AGPLv3+
|
||||||
URL: https://ghostscript.com/
|
URL: https://ghostscript.com/
|
||||||
@ -64,6 +64,9 @@ Patch45: backport-CVE-2024-46953.patch
|
|||||||
Patch46: backport-CVE-2024-46956.patch
|
Patch46: backport-CVE-2024-46956.patch
|
||||||
Patch47: backport-CVE-2024-46955.patch
|
Patch47: backport-CVE-2024-46955.patch
|
||||||
Patch48: backport-CVE-2024-46951.patch
|
Patch48: backport-CVE-2024-46951.patch
|
||||||
|
Patch49: backport-CVE-2025-27832.patch
|
||||||
|
Patch50: backport-CVE-2025-27835.patch
|
||||||
|
Patch60: backport-CVE-2025-27836.patch
|
||||||
|
|
||||||
BuildRequires: automake gcc
|
BuildRequires: automake gcc
|
||||||
BuildRequires: adobe-mappings-cmap-devel adobe-mappings-pdf-devel
|
BuildRequires: adobe-mappings-cmap-devel adobe-mappings-pdf-devel
|
||||||
@ -224,6 +227,12 @@ install -m 0755 -d %{buildroot}%{_datadir}/%{name}/conf.d/
|
|||||||
%{_bindir}/dvipdf
|
%{_bindir}/dvipdf
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Mar 27 2025 Funda Wang <fundawang@yeah.net> - 9.52-21
|
||||||
|
- Type:CVE
|
||||||
|
- ID:NA
|
||||||
|
- SUG:NA
|
||||||
|
- DECS: Fix CVE-2025-27832, CVE-2025-27835, CVE-2025-27836
|
||||||
|
|
||||||
* Fri Nov 01 2024 liningjie <liningjie@xfusion.com> - 9.52-20
|
* Fri Nov 01 2024 liningjie <liningjie@xfusion.com> - 9.52-20
|
||||||
- Type:CVE
|
- Type:CVE
|
||||||
- ID:NA
|
- ID:NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user