Według doniesień RHEL i Canonical luka uzyskała w systemie CVSS ocenę 9,9, chociaż wynik ten jest przedmiotem gorącej dyskusji, a niektórzy twierdzą, że powinna uzyskać niższą ocenę, ponieważ chociaż kod można zdalnie pobrać do systemu, nie można go wykonać bez interwencja użytkownika. Na szczęście nie ma dowodów na wykorzystanie tej luki, chociaż plik ujawnienie wyciekło do Internetu przed planowanym prywatnym ujawnieniem w październiku, co skłoniło programistę, który odkrył lukę, do opublikowania pełnego wyjaśnienia w pliku a wpis na swoim blogu. W takim przypadku luka może łatwo zostać wykorzystana przez złośliwe podmioty.
Jak wynika z obszernego wpisu na blogu badaczki Simone Margaritelli, usługi związane z systemem drukującym CUPS są podatne na zdalne wykonanie kodu. Zasadniczo atakujący system przekonuje program planujący drukowanie, że jest drukarką i wysyła złośliwe oprogramowanie — które może być dowolnym kodem wykonywalnym — podszywające się pod plik konfiguracyjny drukarki. Proces ten nie wymaga interwencji użytkownika, ponieważ CUPS zaakceptuje każdy pakiet wysłany przez port *:631. Następnym razem, gdy użytkownik spróbuje coś wydrukować, kod ten może zostać wykonany, co może zagrozić systemowi.
Streszczenie
- CVE-2024-47176 | cups-browsed <= 2.0.1 wiąże się z UDP INADDR_ANY:631 ufając dowolnemu pakietowi z dowolnego źródła w celu wyzwolenia żądania IPP Get-Printer-Attributes do adresu URL kontrolowanego przez atakującego.
- CVE-2024-47076 | libcupsfilters <= 2.1b1 cfGetPrinterAttributes5 nie sprawdza ani nie oczyszcza atrybutów IPP zwróconych z serwera IPP, dostarczając dane kontrolowane przez atakującego do reszty systemu CUPS.
- CVE-2024-47175 | libppd <= 2.1b1 ppdCreatePPDFromIPP2 nie sprawdza ani nie oczyszcza atrybutów IPP podczas zapisywania ich w tymczasowym pliku PPD, umożliwiając wstrzyknięcie danych kontrolowanych przez osobę atakującą do wynikowego pliku PPD.
- CVE-2024-47177 | cups-filters <= 2.0.1 foomatic-rip umożliwia wykonanie dowolnego polecenia poprzez parametr PPD FoomaticRIPCommandLine.
Konkretny exploit opiera się na szeregu niezałatanych luk w zabezpieczeniach, niektóre sprzed ponad dziesięciu lat, co sprawia, że jest to szczególnie niepokojący problem dla osób korzystających z systemu Linux lub Unix. Aby ten wektor ataku zadziałał, w systemie musi być zainstalowany i uruchomiony CUPS (Common Unix Printing System) oraz funkcja Cups-Browser, co jest ustawieniem domyślnym w wielu systemach. Według Margaritelli do Internetu podłączonych jest obecnie 200 000–300 000 systemów z usługą drukowania, chociaż Shodan podaje (patrz zrzut ekranu powyżej), że około 76 000 systemów z otwartymi portami CUPS jest podłączonych do Internetu.
Choć badacz twierdzi, że problem dotyczy większości dystrybucji GNU/Linuksa – a także potencjalnie ChromeOS i macOS – należy zauważyć, że nie jest to domyślna konfiguracja w wielu dystrybucjach Linuksa, a zwłaszcza nie powinna mieć miejsca w przypadku dużych serwerów lub centrów danych o dużej skali, co oznacza, że największą grupą docelową będą prywatni użytkownicy komputerów PC z systemem Linux.