CVE Catalog

CVE-2025-57812

LowCVSS 3.7
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.48%

40th percentile - higher than 40% of all known CVEs

Summary

An out-of-bounds read/write vulnerability exists in the imagetoraster filter of CUPS-Filters (1.x) and in the _cfImageReadTIFF() function of libcupsfilters (2.x) when processing TIFF image files. The pixel buffer is allocated based on the number of pixels times a pre-calculated bytes-per-pixel value, but the function processing these pixels is called with a size of the number of pixels times 3. With suitable inputs, the bytes-per-pixel value can be set to 1, causing memory access outside the buffer bounds.

Risk Assessment

An attacker can exploit this vulnerability by submitting a crafted print job with a malicious TIFF file, potentially leading to out-of-bounds read or write, which could enable code execution or data disclosure. However, it requires a specific printer configuration and print job options.

Recommendation

Update CUPS-Filters to a version containing the fix (commit b69dfacec7f176281782e2f7ac44f04bf9633cfa) or to the latest libcupsfilters version. If immediate update is not possible, restrict the ability to submit untrusted TIFF files for printing.

Related vulnerabilities

Original NVD description (English source)

CUPS is a standards-based, open-source printing system, and `libcupsfilters` contains the code of the filters of the former `cups-filters` package as library functions to be used for the data format conversion tasks needed in Printer Applications. In CUPS-Filters versions up to and including 1.28.17 and libscupsfilters versions 2.0.0 through 2.1.1, CUPS-Filters's `imagetoraster` filter has an out of bounds read/write vulnerability in the processing of TIFF image files. While the pixel buffer is allocated with the number of pixels times a pre-calculated bytes-per-pixel value, the function which processes these pixels is called with a size of the number of pixels times 3. When suitable inputs are passed, the bytes-per-pixel value can be set to 1 and bytes outside of the buffer bounds get processed. In order to trigger the bug, an attacker must issue a print job with a crafted TIFF file, and pass appropriate print job options to control the bytes-per-pixel value of the output format. They must choose a printer configuration under which the `imagetoraster` filter or its C-function equivalent `cfFilterImageToRaster()` gets invoked. The vulnerability exists in both CUPS-Filters 1.x and the successor library libcupsfilters (CUPS-Filters 2.x). In CUPS-Filters 2.x, the vulnerable function is `_cfImageReadTIFF() in libcupsfilters`. When this function is invoked as part of `cfFilterImageToRaster()`, the caller passes a look-up-table during whose processing the out of bounds memory access happens. In CUPS-Filters 1.x, the equivalent functions are all found in the cups-filters repository, which is not split into subprojects yet, and the vulnerable code is in `_cupsImageReadTIFF()`, which is called through `cupsImageOpen()` from the `imagetoraster` tool. A patch is available in commit b69dfacec7f176281782e2f7ac44f04bf9633cfa.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS