Out-of-bounds read In cups-filters
Description
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’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.
Mitigation
Update Impact
Minimal update. May introduce new vulnerabilities or breaking changes.
Ecosystem | Package | Affected version | Patched versions |
|---|---|---|---|
debian 12 | 1.28.17-3+deb12u2 | ||
debian 13 | 2.0.0-3+deb13u1 | ||
debian 11 | 1.28.7-1+deb11u4 | ||
debian 13 | 1.28.17-6+deb13u1 | ||
debian 14 | 1.28.17-7 | ||
debian 14 | 2.1.1-2 | ||
rpm rhel9 | - | - | |
rpm rhel10 | - | - | |
rpm rhel7 | - | - | |
rpm rhel8 | - | - |
Aliases