Podatności OpenPrinting CUPS
12 znanych podatności CVE w OpenPrinting CUPS, przetłumaczonych i ocenionych.
- CVE-2026-61702Średnie
OpenPrinting CUPS przed wersją 2.4.20 ma błąd w funkcji copy_banner(), która używa wartości attributes-natural-language kontrolowanej przez atakującego jako komponentu ścieżki katalogu. Pozwala to na wyjście poza katalog bannerów i skopiowanie dowolnego pliku do obiektu spool, który może zostać dostarczony do atakującego.
- CVE-2026-55480Średnie
W systemie drukowania OpenPrinting CUPS funkcja copy_model() w pliku scheduler/ipp.c tworzy przewidywalną ścieżkę TempDir/<connection-number>.ppd w katalogu zapisywalnym dla grupy lp i otwiera ją jako root bez flag O_EXCL ani O_NOFOLLOW. Wykorzystanie wymaga procesu z grupy lp mogącego pisać do tego katalogu, przewidzenia nazwy pliku i podłożenia dowiązania symbolicznego przed otwarciem przez roota, przy jednoczesnym uprzywilejowanym działaniu add-printer lub modify-printer z modelem PPD. Podatność naprawiono w wersji 2.4.20.
- CVE-2026-55467Niskie
W systemie drukowania OpenPrinting CUPS w wersjach przed 2.4.20 funkcja budująca opcje zadania (cupsdCreateJob w scheduler/job.c) mapuje wartości destination-uri i pre-dial-string z kolejki faksu na opcje phone i faxPrefix. Wartości te omijają sanitizer znaków kontrolnych i są kopiowane bezpośrednio do argumentu opcji filtra, co pozwala użytkownikowi uprawnionemu do zlecania zadań wstrzyknąć znaki kontrolne do strumienia opcji.
- CVE-2026-55453Niskie
W systemie OpenPrinting CUPS w wersjach przed 2.4.20 funkcja quote_string() w backend/ipp.c zachowuje znaki powrotu karetki i nowej linii w komunikacie markera kontrolowanym przez zdalną drukarkę, zanim report_attr() zapisze wartość do strumienia statusu schedulera. Scheduler może zinterpretować wstrzykniętą nową linię jako osobną linię kontrolną PPD i zapisać wybrane przez atakującego słowo kluczowe PPD.
- CVE-2026-107890Niskie
Podatność w OpenPrinting CUPS przed wersją 2.4.20 powoduje dereferencję wskaźnika NULL spowodowaną powtarzającymi się tagami grup IPP w żądaniach tworzenia zadań. Parsowanie IPP tworzy nienazwane atrybuty separatora z IPP_TAG_ZERO, ale add_job() konwertuje te separatory na IPP_TAG_JOB. Podczas uruchamiania zadania get_options()/ipp_length() wywołuje strlen() na NULL-owej nazwie atrybutu, kończąc proces cupsd i zakłócając wszystkie kolejki.
- CVE-2026-107888Średnie
Podatność w OpenPrinting CUPS przed wersją 2.4.20 powoduje dereferencję wskaźnika NULL w funkcji cupsdCheckJobs(), gdy zadanie oznaczone jako job-held-on-create odnosi się do tymczasowej drukarki, która została automatycznie usunięta. Czyszczenie tymczasowych drukarek może usunąć miejsce docelowe bez anulowania wstrzymanych zadań, a scheduler dereferencjonuje wynik NULL funkcji cupsdFindDest() podczas sprawdzania holding_new_jobs. Powoduje to zakończenie procesu cupsd i przerwanie wszystkich kolejek.
- CVE-2026-107886Niskie
Podwójne zwolnienie w zarządzaniu klasami drukarek w OpenPrinting CUPS przed wersją 2.4.20. Gdy CUPS-Add-Modify-Class zastępuje istniejącą listę członków klasy, add_class() zwalnia pclass->printers bez wyczyszczenia wskaźnika. Jeśli późniejsza walidacja nie powiedzie się, klasa zachowuje wiszący wskaźnik; CUPS-Delete-Class następnie zwalnia tę samą alokację w cupsdDeletePrinter(). Klient upoważniony do modyfikowania i usuwania klas może spowodować odmowę usługi na poziomie schedulera.
- CVE-2026-107885Niskie
Podatność wyczerpania zasobów w OpenPrinting CUPS do wersji 2.4.20 w obsłudze limitu czasu przesyłania w cupsdCheckJobs(). Scheduler pomija przetwarzanie limitu czasu dla wszystkich oczekujących zadań, gdy jakiekolwiek połączenie klienta ma w toku operację Send-Document, bez dopasowania tego połączenia do badanego zadania. Klient, który może dotrzeć do usługi IPP, może utrzymywać niekompletne żądanie HTTP z nagłówkami Send-Document przed autoryzacją, uniemożliwiając wygaśnięcie niezwiązanych niekompletnych zadań.
- CVE-2026-39316Średnie
W systemie drukowania OpenPrinting CUPS w wersjach 2.4.16 i wcześniejszych występuje podatność use-after-free w harmonogramie cupsd podczas automatycznego usuwania tymczasowych drukarek. Funkcja cupsdDeleteTemporaryPrinters() wywołuje cupsdDeletePrinter() bez uprzedniego wygaśnięcia subskrypcji odwołujących się do drukarki, pozostawiając wiszący wskaźnik, który jest później dereferencjonowany.
- CVE-2026-39314Średnie
OpenPrinting CUPS w wersjach 2.4.16 i wcześniejszych zawiera podatność niedomiaru liczby całkowitej w funkcji _ppdCreateFromIPP() (cups/ppd-cache.c). Każdy nieuprzywilejowany użytkownik lokalny może doprowadzić do awarii procesu cupsd działającego jako root, dostarczając ujemny atrybut IPP job-password-supported. Wartość przechodzi walidację, jest rzutowana na size_t (zawijając do ~2^64) i używana jako długość w memset() na 33-bajtowym buforze stosu, powodując natychmiastowy SIGSEGV. W połączeniu z Restart=on-failure w systemd atakujący może powtarzać awarię, powodując trwałą odmowę usługi.
- CVE-2025-61915Średnie
W OpenPrinting CUPS przed wersją 2.4.15 użytkownik z grupy lpadmin może przez web UI zmienić konfigurację i wstawić złośliwą linię. Proces cupsd działający jako root parsuje nową konfigurację, co prowadzi do zapisu poza zakresem pamięci.
- CVE-2025-58436Średnie
System drukowania OpenPrinting CUPS w wersjach przed 2.4.15 jest podatny na atak typu slowloris. Klient wysyłający bardzo wolne komunikaty (np. jeden bajt na sekundę) blokuje cupsd, uniemożliwiając obsługę innych klientów.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

