<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="sa-render.xsl"?>
  <update from="huaweicloud.com" type="security" status="stable" version="1">
    <id>HCE2-SA-2025-0329</id>
    <title>An update for cups-filters is now available for HCE 2.0</title>
    <severity>Moderate</severity>
    <release>HCE 2.0</release>
    <issued date="2025-12-24 15:58:56"/>
    <updated date="2025-12-24 15:58:56"/>
    <references>
      <reference href="https://nvd.nist.gov/vuln/detail/CVE-2025-57812" id="CVE-2025-57812" title="CVE-2025-57812 Base Score: 3.7 Vector: CVSS:3.1/AV:A/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" type="cve"/>
      <reference href="https://nvd.nist.gov/vuln/detail/CVE-2025-64503" id="CVE-2025-64503" title="CVE-2025-64503 Base Score: 4.0 Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" type="cve"/>
    </references>
    <description>Security Fix(es):

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_x27;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. (CVE-2025-57812)

cups-filters contains backends, filters, and other software required to get the cups printing service working on operating systems other than macos. In cups-filters prior to 1.28.18, by crafting a PDF file with a large `MediaBox` value, an attacker can cause CUPS-Filter 1.x_x27;s `pdftoraster` tool to write beyond the bounds of an array. First, a PDF with a large `MediaBox` width value causes `header.cupsWidth` to become large. Next, the calculation of `bytesPerLine = (header.cupsBitsPerPixel * header.cupsWidth + 7) / 8` overflows, resulting in a small value. Then, `lineBuf` is allocated with the small `bytesPerLine` size. Finally, `convertLineChunked` calls `writePixel8`, which attempts to write to `lineBuf` outside of its buffer size (out of bounds write). In libcupsfilters, the maintainers found the same `bytesPerLine` multiplication without overflow check, but the provided test case does not cause an overflow there, because the values are different. Commit 50d94ca0f2fa6177613c97c59791bde568631865 contains a patch, which is incorporated into cups-filters version 1.28.18. (CVE-2025-64503)
</description>
    <pkglist>
      <collection short="HCE 2.0" package="cups-filters">
        <name>HCE 2.0</name>
        <package arch="aarch64" name="cups-filters" version="1.28.9" release="3.r3.hce2">
          <filename>cups-filters-1.28.9-3.r3.hce2.aarch64.rpm</filename>
        </package>
        <package arch="aarch64" name="cups-filters-devel" version="1.28.9" release="3.r3.hce2">
          <filename>cups-filters-devel-1.28.9-3.r3.hce2.aarch64.rpm</filename>
        </package>
        <package arch="noarch" name="cups-filters-help" version="1.28.9" release="3.r3.hce2">
          <filename>cups-filters-help-1.28.9-3.r3.hce2.noarch.rpm</filename>
        </package>
        <package arch="x86_64" name="cups-filters" version="1.28.9" release="3.r3.hce2">
          <filename>cups-filters-1.28.9-3.r3.hce2.x86_64.rpm</filename>
        </package>
        <package arch="x86_64" name="cups-filters-devel" version="1.28.9" release="3.r3.hce2">
          <filename>cups-filters-devel-1.28.9-3.r3.hce2.x86_64.rpm</filename>
        </package>
      </collection>
    </pkglist>
  </update>
