From 7e420c5834bcde13ed28f84f2cec8c77b9d6b684 Mon Sep 17 00:00:00 2001 From: Yogita Urade Date: Tue, 26 Aug 2025 16:18:34 +0530 Subject: tiff: fix CVE-2025-8851 A vulnerability was determined in LibTIFF up to 4.5.1. Affected by this issue is the function readSeparateStripsetoBuffer of the file tools/tiffcrop.c of the component tiffcrop. The manipulation leads to stack-based buffer overflow. Local access is required to approach this attack. The patch is identified as 8a7a48d7a645992ca83062b3a1873c951661e2b3. It is recommended to apply a patch to fix this issue. Reference: https://nvd.nist.gov/vuln/detail/CVE-2025-8851 Upstream patch: https://gitlab.com/libtiff/libtiff/-/commit/8a7a48d7a645992ca83062b3a1873c951661e2b3 (From OE-Core rev: 1ced84bbd4ab15f0f16176e367744b496a0ea97c) Signed-off-by: Yogita Urade Signed-off-by: Steve Sakoman --- .../libtiff/tiff/CVE-2025-8851.patch | 71 ++++++++++++++++++++++ meta/recipes-multimedia/libtiff/tiff_4.3.0.bb | 1 + 2 files changed, 72 insertions(+) create mode 100644 meta/recipes-multimedia/libtiff/tiff/CVE-2025-8851.patch diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2025-8851.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2025-8851.patch new file mode 100644 index 0000000000..29089ab833 --- /dev/null +++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2025-8851.patch @@ -0,0 +1,71 @@ +From 8a7a48d7a645992ca83062b3a1873c951661e2b3 Mon Sep 17 00:00:00 2001 +From: Lee Howard +Date: Sun, 11 Aug 2024 16:01:07 +0000 +Subject: [PATCH] Attempt to address tiffcrop Coverity scan issues 1605444, + 1605445, and 1605449. + +CVE: CVE-2025-8851 +Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/8a7a48d7a645992ca83062b3a1873c951661e2b3] + +Signed-off-by: Yogita Urade +--- + tools/tiffcrop.c | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +diff --git a/tools/tiffcrop.c b/tools/tiffcrop.c +index 1b072d4..e16bc2d 100644 +--- a/tools/tiffcrop.c ++++ b/tools/tiffcrop.c +@@ -5024,7 +5024,14 @@ static int readSeparateStripsIntoBuffer (TIFF *in, uint8_t *obuf, uint32_t lengt + buff = srcbuffs[s]; + strip = (s * strips_per_sample) + j; + bytes_read = TIFFReadEncodedStrip (in, strip, buff, stripsize); +- rows_this_strip = (uint32_t)(bytes_read / src_rowsize); ++ if (bytes_read < 0) ++ { ++ rows_this_strip = 0; ++ } ++ else ++ { ++ rows_this_strip = (uint32_t)(bytes_read / src_rowsize); ++ } + if (bytes_read < 0 && !ignore) + { + TIFFError(TIFFFileName(in), +@@ -5434,14 +5441,14 @@ computeInputPixelOffsets(struct crop_mask *crop, struct image_data *image, + rmargin = _TIFFClampDoubleToUInt32(crop->margins[3] * scale * xres); + } + +- if ((lmargin + rmargin) > image->width) ++ if (lmargin == 0xFFFFFFFFU || rmargin == 0xFFFFFFFFU || (lmargin + rmargin) > image->width) + { + TIFFError("computeInputPixelOffsets", "Combined left and right margins exceed image width"); + lmargin = (uint32_t) 0; + rmargin = (uint32_t) 0; + return (-1); + } +- if ((tmargin + bmargin) > image->length) ++ if (tmargin == 0xFFFFFFFFU || bmargin == 0xFFFFFFFFU || (tmargin + bmargin) > image->length) + { + TIFFError("computeInputPixelOffsets", "Combined top and bottom margins exceed image length"); + tmargin = (uint32_t) 0; +@@ -5977,14 +5984,14 @@ computeOutputPixelOffsets (struct crop_mask *crop, struct image_data *image, + vmargin = _TIFFClampDoubleToUInt32(page->vmargin * scale * ((image->bps + 7) / 8)); + } + +- if ((hmargin * 2.0) > (pwidth * page->hres)) ++ if (hmargin == 0xFFFFFFFFU || (hmargin * 2.0) > (pwidth * page->hres)) + { + TIFFError("computeOutputPixelOffsets", + "Combined left and right margins exceed page width"); + hmargin = (uint32_t) 0; + return (-1); + } +- if ((vmargin * 2.0) > (plength * page->vres)) ++ if (vmargin == 0xFFFFFFFFU || (vmargin * 2.0) > (plength * page->vres)) + { + TIFFError("computeOutputPixelOffsets", + "Combined top and bottom margins exceed page length"); +-- +2.40.0 + diff --git a/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb b/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb index 137dc7f478..6db4d80cdf 100644 --- a/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb +++ b/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb @@ -61,6 +61,7 @@ SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \ file://CVE-2025-8177.patch \ file://CVE-2024-13978.patch \ file://CVE-2025-8534.patch \ + file://CVE-2025-8851.patch \ " SRC_URI[sha256sum] = "0e46e5acb087ce7d1ac53cf4f56a09b221537fc86dfc5daaad1c2e89e1b37ac8" -- cgit v1.2.3-54-g00ecf