CVE-2023-0802
Description
LibTIFF 4.4.0 has an out-of-bounds write in tiffcrop in tools/tiffcrop.c:3724, allowing attackers to cause a denial-of-service via a crafted tiff file. For users that compile libtiff from sources, the fix is available with commit 33aee127.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
20- osv-coords18 versionspkg:rpm/almalinux/libtiffpkg:rpm/almalinux/libtiff-develpkg:rpm/almalinux/libtiff-toolspkg:rpm/opensuse/tiff&distro=openSUSE%20Leap%2015.4pkg:rpm/opensuse/tiff&distro=openSUSE%20Leap%2015.5pkg:rpm/opensuse/tiff&distro=openSUSE%20Leap%20Micro%205.3pkg:rpm/opensuse/tiff&distro=openSUSE%20Tumbleweedpkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Micro%205.2pkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Micro%205.3pkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Micro%205.4pkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Basesystem%2015%20SP4pkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Basesystem%2015%20SP5pkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Package%20Hub%2015%20SP4pkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Package%20Hub%2015%20SP5pkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Real%20Time%2015%20SP3pkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Server%2012%20SP5pkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2012%20SP5pkg:rpm/suse/tiff&distro=SUSE%20Linux%20Enterprise%20Software%20Development%20Kit%2012%20SP5
< 4.4.0-8.el9_2+ 17 more
- (no CPE)range: < 4.4.0-8.el9_2
- (no CPE)range: < 4.4.0-8.el9_2
- (no CPE)range: < 4.4.0-8.el9_2
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.5.0-3.1
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.0.9-150000.45.28.1
- (no CPE)range: < 4.0.9-44.68.1
- (no CPE)range: < 4.0.9-44.68.1
- (no CPE)range: < 4.0.9-44.68.1
Patches
Vulnerability mechanics
Root cause
"Missing validation that composite crop regions have equal widths or lengths allows an out-of-bounds write in extractContigSamplesShifted32bits."
Attack vector
An attacker supplies a crafted TIFF file with multiple crop regions of unequal dimensions when using the `-E` (edge reference) option of `tiffcrop`. The tool's composite-image mode (`COMPOSITE_IMAGES`) assumes all regions have the same width (for top/bottom edge references) or same length (for left/right edge references). When this assumption is violated, `extractContigSamplesShifted32bits` writes past the allocated buffer, causing a heap-buffer-overflow [ref_id=2]. The attack is triggered remotely by convincing a user to run `tiffcrop` with the malicious file and specific crop parameters such as `-E left -z 1,1,2048,2048:1,2049,2048,4097` [ref_id=2].
Affected code
The out-of-bounds write occurs in `extractContigSamplesShifted32bits` at `tools/tiffcrop.c:3724` [ref_id=2]. The root cause is in `extractCompositeRegions` (called from `processCropSelections`), which lacked validation that all regions being composited have equal width or length depending on the edge reference direction [ref_id=1]. The patch adds consistency checks in both `computeInputPixelOffsets` and `extractCompositeRegions` to reject mismatched region dimensions before any buffer operations occur [ref_id=1].
What the fix does
The fix adds two validation layers. In `computeInputPixelOffsets`, after computing region dimensions, the code checks that for `EDGE_LEFT`/`EDGE_RIGHT` all regions have equal length, and for `EDGE_TOP`/`EDGE_BOTTOM` all regions have equal width, returning an error if mismatched [ref_id=1]. In `extractCompositeRegions`, a new upfront loop validates that all region widths or lengths are consistent before any processing begins, and the existing per-iteration checks are corrected to compare against the next region (`i+1`) instead of the previous region (`i-1`) [ref_id=1]. These changes prevent the buffer overrun by rejecting malformed composite region definitions early.
Preconditions
- inputVictim must run tiffcrop with the -E (edge reference) option and composite crop regions (-z with multiple region definitions)
- inputAttacker must supply a crafted TIFF file where crop regions have mismatched widths or lengths
Reproduction
1. Build libtiff with AddressSanitizer: `CFLAGS="-g -fsanitize=address -fno-omit-frame-pointer" CXXFLAGS="-g -fsanitize=address -fno-omit-frame-pointer" ./configure --prefix=$PWD/build_asan --disable-shared && make -j && make install` [ref_id=2]. 2. Run: `./build_asan/bin/tiffcrop -E left -z 1,1,2048,2048:1,2049,2048,4097 -i poc /tmp/foo` using the provided poc.zip file [ref_id=2]. 3. Observe the ASAN heap-buffer-overflow report at `extractContigSamplesShifted32bits` in `tiffcrop.c:3724` [ref_id=2].
Generated on May 26, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
7- security.gentoo.org/glsa/202305-31mitrevendor-advisory
- www.debian.org/security/2023/dsa-5361mitrevendor-advisory
- lists.debian.org/debian-lts-announce/2023/02/msg00026.htmlmitremailing-list
- gitlab.com/gitlab-org/cves/-/blob/master/2023/CVE-2023-0802.jsonmitre
- gitlab.com/libtiff/libtiff/-/commit/33aee1275d9d1384791d2206776eb8152d397f00mitre
- gitlab.com/libtiff/libtiff/-/issues/500mitre
- security.netapp.com/advisory/ntap-20230316-0002/mitre
News mentions
0No linked articles in our index yet.