diff --git a/SOURCES/0001-opusdec-Don-t-use-any-channel-positions-for-64-chann.patch b/SOURCES/0001-opusdec-Don-t-use-any-channel-positions-for-64-chann.patch new file mode 100644 index 0000000..d9f7581 --- /dev/null +++ b/SOURCES/0001-opusdec-Don-t-use-any-channel-positions-for-64-chann.patch @@ -0,0 +1,27 @@ +From a8f51eaa18a0a3c5a4ace173b8724c73c8b1646d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= +Date: Fri, 19 Jun 2026 13:48:16 +0300 +Subject: [PATCH] opusdec: Don't use any channel positions for >64 channels + +We don't support this. + +Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5122 + +Part-of: +--- + subprojects/gst-plugins-base/ext/opus/gstopusdec.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/subprojects/gst-plugins-base/ext/opus/gstopusdec.c b/subprojects/gst-plugins-base/ext/opus/gstopusdec.c +index 03d061a..c3bfe2f 100644 +--- a/subprojects/gst-plugins-base/ext/opus/gstopusdec.c ++++ b/subprojects/gst-plugins-base/ext/opus/gstopusdec.c +@@ -359,6 +359,8 @@ gst_opus_dec_negotiate (GstOpusDec * dec, const GstAudioChannelPosition * pos) + GST_DEBUG_OBJECT (dec, "Using a default of 2 channels"); + dec->n_channels = 2; + pos = NULL; ++ } else if (dec->n_channels > 64) { ++ pos = NULL; + } + + if (dec->sample_rate == 0) { diff --git a/SOURCES/0001-riff-Correctly-check-that-enough-RGB-palette-data-is.patch b/SOURCES/0001-riff-Correctly-check-that-enough-RGB-palette-data-is.patch new file mode 100644 index 0000000..420b82a --- /dev/null +++ b/SOURCES/0001-riff-Correctly-check-that-enough-RGB-palette-data-is.patch @@ -0,0 +1,44 @@ +From 9ed23ad51f1da683dcd5a0646b0b9e76e12f41de Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= +Date: Wed, 11 Feb 2026 19:44:34 +0200 +Subject: [PATCH] riff: Correctly check that enough RGB palette data is + available + +This can otherwise overflow and result in out-of-bounds reads/writes. + +Fixes GST-SA-2026-0004, ZDI-CAN-28854, CVE-2026-2921. + +Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4901 + +Part-of: +--- + subprojects/gst-plugins-base/gst-libs/gst/riff/riff-media.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/subprojects/gst-plugins-base/gst-libs/gst/riff/riff-media.c b/subprojects/gst-plugins-base/gst-libs/gst/riff/riff-media.c +index 74f99d6ad1..df4c4f09b0 100644 +--- a/subprojects/gst-plugins-base/gst-libs/gst/riff/riff-media.c ++++ b/subprojects/gst-plugins-base/gst-libs/gst/riff/riff-media.c +@@ -994,7 +994,7 @@ gst_riff_create_video_caps (guint32 codec_fcc, + if (palette) { + GstBuffer *copy; + guint num_colors; +- gsize size; ++ gsize expected_size, size; + + if (strf != NULL) + num_colors = strf->num_colors; +@@ -1003,7 +1003,9 @@ gst_riff_create_video_caps (guint32 codec_fcc, + + size = gst_buffer_get_size (palette); + +- if (size >= (num_colors * 4)) { ++ if (!g_size_checked_mul (&expected_size, num_colors, 4)) { ++ GST_WARNING ("Palette too large: broken file"); ++ } else if (size >= expected_size) { + guint8 *pdata; + + /* palette is always at least 256*4 bytes */ +-- +2.53.0 + diff --git a/SPECS/gstreamer1-plugins-base.spec b/SPECS/gstreamer1-plugins-base.spec index a0ece3b..8c83335 100644 --- a/SPECS/gstreamer1-plugins-base.spec +++ b/SPECS/gstreamer1-plugins-base.spec @@ -9,7 +9,7 @@ Name: gstreamer1-plugins-base Version: 1.22.12 -Release: 4%{?dist} +Release: 9%{?dist} Summary: GStreamer streaming media framework base plugins License: LGPL-2.1-or-later @@ -32,6 +32,10 @@ Patch007: 0007-vorbisdec-Set-at-most-64-channels-to-NONE-position.patch Patch008: 0008-ssaparse-Search-for-closing-brace-after-opening-brac.patch Patch009: 0009-ssaparse-Don-t-use-strstr-on-strings-that-are-potent.patch Patch010: 0010-subparse-Check-for-NULL-return-of-strchr-when-parsin.patch +Patch011: 0001-riff-Correctly-check-that-enough-RGB-palette-data-is.patch +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12044 +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/178ae5ac20db75e56d65e4c4bc142bb234387807 +Patch012: 0001-opusdec-Don-t-use-any-channel-positions-for-64-chann.patch BuildRequires: meson >= 0.48.0 @@ -145,6 +149,8 @@ for the GStreamer Base Plugins library. %patch -P 8 -p3 %patch -P 9 -p3 %patch -P 10 -p3 +%patch -P 11 -p3 +%patch -P 12 -p3 %build %meson \ @@ -520,6 +526,23 @@ chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gst-play-1.0 %endif %changelog +* Tue Aug 25 2026 RHEL Packaging Agent - 1.22.12-9 +- Apply patch for CVE-2026-18297 + +* Wed Apr 01 2026 Tomas Pelka - 1.22.12-8 +- Rebuild again -7 was build in wrong target + +* Tue Mar 31 2026 Veronika Kabatova - 1.22.12-7 +- Rebuild to fix missing binaries due to buildsystem oversight + +* Mon Mar 30 2026 Tomas Pelka - 1.22.12-6 +- Rebuild for z-stream + Resolves: RHEL-156272, RHEL-156273 + +* Fri Mar 27 2026 Wim Taymans - 1.22.12-5 +- Apply patch for CVE-2026-2921 + Resolves: RHEL-156249 + * Fri Dec 13 2024 Wim Taymans - 1.22.12-4 - Bump version - Apply patches for CVE-2024-47538, CVE-2024-47541, CVE-2024-47542,