Katalog CVE

CVE-2025-64503

ŚrednieCVSS 4.0
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.23%

Percentyl 13 - wyżej niż 13% wszystkich znanych CVE

Streszczenie

cups-filters zawiera backendy, filtry i inne oprogramowanie wymagane do działania usługi drukowania CUPS w systemach innych niż macOS. W wersjach przed 1.28.18, poprzez spreparowanie pliku PDF z dużą wartością MediaBox, atakujący może spowodować, że narzędzie pdftoraster zapisze dane poza granicami tablicy. Najpierw duża szerokość MediaBox powoduje dużą wartość header.cupsWidth, następnie obliczenie bytesPerLine = (header.cupsBitsPerPixel * header.cupsWidth + 7) / 8 ulega przepełnieniu, dając małą wartość, co prowadzi do alokacji lineBuf o małym rozmiarze i zapisu poza buforem w writePixel8. W libcupsfilters stwierdzono to samo mnożenie bytesPerLine bez sprawdzania przepełnienia, ale dostarczony przypadek testowy nie powoduje tam przepełnienia. Commit 50d94ca0f2fa6177613c97c59791bde568631865 zawiera poprawkę włączoną do cups-filters w wersji 1.28.18.

Ocena ryzyka

Możliwe uszkodzenie pamięci (out-of-bounds write) w procesie przetwarzania wydruku, co może prowadzić do awarii usługi lub potencjalnie do wykonania kodu w kontekście procesu drukującego.

Rekomendacja

Zaktualizuj cups-filters do wersji 1.28.18 lub nowszej. Rozważ ograniczenie możliwości przesyłania plików PDF do druku od niezaufanych źródeł.

Inne podatności w cups-filters

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS