CVE-2026-107886
NiskieCVSS 2.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 1 - wyżej niż 1% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Podatność może prowadzić do odmowy usługi, przerywając działanie całego schedulera. Domyślna polityka wymaga uprawnień @SYSTEM, co ogranicza ryzyko.
Rekomendacja
Zaktualizuj CUPS do wersji 2.4.20 lub nowszej. Ogranicz uprawnienia do modyfikowania i usuwania klas tylko do zaufanych administratorów.
Inne podatności w OpenPrinting CUPS
Zobacz wszystkie- CVE-2026-39316Średnie
W systemie OpenPrinting CUPS, w wersjach 2.4.16 i wcześniejszych, występuje podatność typu use-after-free w harmonogramie CUPS (cupsd) podczas automatycznego usuwania tymczasowych drukarek.
- 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-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-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.
Oryginalny opis (angielski, źródło NVD)
OpenPrinting CUPS before 2.4.20 contains a double-free in printer-class management. When CUPS-Add-Modify-Class replaces an existing class member list, add_class() frees pclass->printers without clearing the pointer. If subsequent validation fails, the class retains the dangling pointer; CUPS-Delete-Class subsequently frees the same allocation in cupsdDeletePrinter(). A client authorized to modify and delete classes can cause scheduler-wide denial of service. The default policy requires @SYSTEM privileges.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

