CVE-2026-55480
ŚrednieCVSS 5.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Udane wykorzystanie pozwala schedulerowi działającemu jako root podążyć za dowiązaniem i nadpisać lub obciąć plik zapisywalny dla roota, naruszając jego integralność lub dostępność. Wymaga to jednak wcześniejszego dostępu w grupie lp oraz uprzywilejowanej operacji, co ogranicza realne ryzyko.
Rekomendacja
Zaktualizuj OpenPrinting CUPS do wersji 2.4.20 lub nowszej. Ogranicz członkostwo w grupie lp oraz uprawnienia do administracji drukarkami do zaufanych kont.
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-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-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 is an open source printing system for Linux and other Unix-like operating systems. Prior to 2.4.20, copy_model() in scheduler/ipp.c creates a predictable TempDir/<connection-number>.ppd path in an lp-group-writable directory and opens it as root without O_EXCL or O_NOFOLLOW. Exploitation requires an lp-group process able to write that directory to predict the connection-derived name and plant a symlink before the root open, while a privileged add-printer or modify-printer operation using a model PPD triggers copy_model(). The reporter treats an existing lp foothold and the privileged operation as distinct prerequisites, while the maintainer assesses high privileges because installing the relevant filter or administering the printer requires root or print-administrator access. If the race succeeds, the root scheduler follows the symlink and truncates or overwrites a root-writable target with generated PPD data, compromising file integrity or availability. This issue is fixed in version 2.4.20.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

