compat-libtiff3/compat-libtiff3.spec
RHEL Packaging Agent 072cfeac1c Fix CVE-2026-12912: heap-buffer-overflow in PixarLog ABGR decoding
Backport fix for CVE-2026-12912 to compat-libtiff3 (libtiff 3.9.4).
Two upstream commits were cherry-picked and adapted to the 3.9.4
API to fix a heap-buffer-overflow in PixarLogDecode when handling
8BITABGR data with stride 3. The first patch adds a bounds check
and fixes the output pointer advance, and the second extends the
bounds check to handle multi-row strip decoding.

CVE: CVE-2026-12912
Upstream patches:
 - ba2b04b114.patch
 - f9bda11bf2.patch
Resolves: RHEL-189375

This commit was backported by Ymir, a Red Hat Enterprise Linux software maintenance AI agent.

Assisted-by: Ymir
2026-06-27 08:18:38 +00:00

161 lines
4.4 KiB
RPMSpec

Summary: Compatibility package for libtiff 3
Name: compat-libtiff3
Version: 3.9.4
Release: 16%{?dist}
License: libtiff
Group: System Environment/Libraries
URL: http://www.remotesensing.org/libtiff/
Source: ftp://ftp.remotesensing.org/pub/libtiff/tiff-%{version}.tar.gz
Patch1: libtiff-acversion.patch
Patch2: libtiff-mantypo.patch
Patch3: libtiff-scanlinesize.patch
Patch4: libtiff-getimage-64bit.patch
Patch5: libtiff-ycbcr-clamp.patch
Patch6: libtiff-3samples.patch
Patch7: libtiff-subsampling.patch
Patch8: libtiff-unknown-fix.patch
Patch9: libtiff-checkbytecount.patch
Patch10: libtiff-tiffdump.patch
Patch11: libtiff-CVE-2011-0192.patch
Patch12: libtiff-CVE-2011-1167.patch
Patch13: libtiff-CVE-2009-5022.patch
Patch14: libtiff-CVE-2012-1173.patch
Patch15: libtiff-CVE-2012-2088.patch
Patch16: libtiff-CVE-2012-2113.patch
Patch17: libtiff-CVE-2012-3401.patch
Patch18: libtiff-CVE-2012-4447.patch
Patch19: libtiff-CVE-2012-4564.patch
Patch20: libtiff-CVE-2012-5581.patch
Patch21: libtiff-tiffinfo-exif.patch
Patch22: libtiff-printdir-width.patch
Patch27: libtiff-CVE-2013-1960.patch
Patch28: libtiff-CVE-2013-1961.patch
Patch29: libtiff-CVE-2013-4231.patch
Patch30: libtiff-CVE-2013-4232.patch
Patch31: libtiff-CVE-2013-4244.patch
Patch32: libtiff-CVE-2013-4243.patch
Patch33: libtiff-CVE-2018-7456.patch
Patch34: libtiff-coverity.patch
# from upstream, for <= 4.7.0, RHEL-112528
# https://gitlab.com/libtiff/libtiff/-/merge_requests/732.patch
Patch35: libtiff-3.9.4-CVE-2025-9900.patch
# from upstream, for <= 4.7.1, RHEL-159315
# https://gitlab.com/libtiff/libtiff/-/commit/782a11d6b5b61c6dc21e714950a4af5bf89f023c
Patch36: libtiff-CVE-2026-4775.patch
# from upstream, RHEL-189375
# https://gitlab.com/libtiff/libtiff/-/commit/ba2b04b114c5dd945107ccc613cedfcca3af73bb
# https://gitlab.com/libtiff/libtiff/-/commit/f9bda11bf2fc819b971517582666d56f18b1bc3f
Patch37: libtiff-CVE-2026-12912.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: zlib-devel libjpeg-devel
BuildRequires: libtool automake autoconf
%global LIBVER %(echo %{version} | cut -f 1-2 -d .)
%description
The libtiff3 package provides libtiff 3, an older version of libtiff
library for manipulating TIFF (Tagged Image File Format)
image format files. This version should be used only if you are unable
to use the current version of libtiff.
%prep
%setup -q -n tiff-%{version}
%patch -P 1 -p1
%patch -P 2 -p1
%patch -P 3 -p1
%patch -P 4 -p1
%patch -P 5 -p1
%patch -P 6 -p1
%patch -P 7 -p1
%patch -P 8 -p1
%patch -P 9 -p1
%patch -P 10 -p1
%patch -P 11 -p1
%patch -P 12 -p1
%patch -P 13 -p1
%patch -P 14 -p1
%patch -P 15 -p1
%patch -P 16 -p1
%patch -P 17 -p1
%patch -P 18 -p1
%patch -P 19 -p1
%patch -P 20 -p1
%patch -P 21 -p1
%patch -P 22 -p1
%patch -P 27 -p1
%patch -P 28 -p1
%patch -P 29 -p1
%patch -P 30 -p1
%patch -P 31 -p1
%patch -P 32 -p1
%patch -P 33 -p1
%patch -P 34 -p1
%patch -P 35 -p1 -b .CVE-2025-9900
%patch -P 36 -p1 -b .CVE-2026-4775
%patch -P 37 -p1 -b .CVE-2026-12912
# Use build system's libtool.m4, not the one in the package.
rm -f libtool.m4
libtoolize --force --copy
aclocal -I . -I m4
automake --add-missing --copy
autoconf
autoheader
%build
export CFLAGS="%{optflags} -fno-strict-aliasing"
%configure
make %{?_smp_mflags}
LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH make check
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
# remove what we didn't want installed
rm $RPM_BUILD_ROOT%{_libdir}/*.la
rm $RPM_BUILD_ROOT%{_libdir}/*.a
rm $RPM_BUILD_ROOT%{_libdir}/{libtiff,libtiffxx}.so
rm -rf $RPM_BUILD_ROOT%{_datadir}/*
rm -rf $RPM_BUILD_ROOT%{_bindir}/*
rm -rf $RPM_BUILD_ROOT%{_includedir}/*
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,0755)
%{_libdir}/libtiff.so.*
%{_libdir}/libtiffxx.so.*
%changelog
* Sat Jun 27 2026 RHEL Packaging Agent <redhat-ymir-agent@redhat.com> - 3.9.4-16
- fix CVE-2026-12912: heap-buffer-overflow in PixarLog ABGR decoding
(RHEL-189375)
* Wed Apr 22 2026 Michal Hlavinka <mhlavink@redhat.com> - 3.9.4-15
- fix CVE-2026-4775: signed integer overflow in putcontig8bitYCbCr44tile (RHEL-159315)
* Thu Sep 25 2025 Michal Hlavinka <mhlavink@redhat.com> - 3.9.4-14
- fix CVE-2025-9900: Write-What-Where via TIFFReadRGBAImageOriented (RHEL-112528)
* Wed Jun 12 2019 Nikola Forró <nforro@redhat.com> - 3.9.4-13
- Fix important Covscan defects
related: #1687584
* Thu Jun 06 2019 Nikola Forró <nforro@redhat.com> - 3.9.4-12
- New package for RHEL 8.1.0
resolves: #1687584