Далечински експлоатирачки пропусти во серверот за печатење CUPS

Симоне Маргарители, авторка на заштитниот ѕид на OpenSnitch и мрежниот анализатор на подобро капа, пред предвиденото откри информации за претходно најавените критични пропусти кои дозволуваат далечински напади на GNU/Linux, Solaris, FreeBSD и некои други дистрибуции на BSD. Објавувањето првично беше закажано за 6 октомври, но поради протекување информации, информациите мораа да бидат објавени пред предвиденото, пред повеќето дистрибуции да имаат време да го подготват ажурирањето на пакетот. Ранливостите влијаат на серверот за печатење CUPS и овозможуваат далечинско извршување на кодот на системот без автентикација.

Истражувачот кој го идентификуваше проблемот подготви работен прототип на експлоат кој користи комбинација од неколку пропусти и овозможува далечинско извршување на кодот со правата на процесот на обработка на задачите за печатење CUPS (обично корисникот „lp“). Експлоатацијата ви овозможува тивко да ги замените параметрите на печатачот на корисникот или да додадете нов печатач поврзан со активиран напаѓачки сервер IPP, кој издава специјално дизајниран PPD опис на печатачот кодот на напаѓачот (неопходно е жртвата да иницира печатење на печатач што е заменет или заменет од напаѓачот).

Системите се подложни на напади сервер Печатење на CUPS и извршен процес со прелистување на cups, кој прифаќа мрежни врски на портата 631 (UDP). Нападот може да се изврши и од локална мрежа, каде што пристапот до сервер За печатење се користат протоколите zeroconf, mDNS или DNS-SD. Само конфигурациите со cups-browsed со параметарот BrowseRemoteProtocols поставен на „cups“ во датотеката /etc/cups/cups-browsed.conf се ранливи. Во дистрибуциите базирани на systemd, можете да проверите дали услугата cups-browsed се користи со командата „sudo systemctl status cups-browsed“.

Ранливоста влијае на сите системи за печатење базирани на CUPS кои користат ранливи верзии на пакетите за филтри за чаши, libcupsfilters, libppd и чаши. Поправките моментално се достапни само во форма на закрпи (1, 2, 3) - тековните верзии на cups-filters 2.0.1, libcupsfilters 2.1b1, libppd 2.1b1 и cups-прегледуваните 2.0.1 се подложни на пропусти. Во дистрибуциите, проблемот останува неисправен, можете да ја следите достапноста на ажурирањата на следните страници: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Како безбедносно решение, пред да го инсталирате ажурирањето, можете да го блокирате пристапот до портата UDP 631 за надворешни мрежи, да ја оневозможите услугата прелистувана со чаши или да ја поставите поставката BrowseRemoteProtocols на „нема“.

Идентификувани пропусти:

  • CVE-2024-47176 е ранливост во процесот на прелистување чаши, кој создава мрежен приклучок што прифаќа врски на портата 631, се прикачува на сите мрежни интерфејси на системот и прифаќа барања за IPP „Get-Printer-Attributes“ од кој било надворешен системи. Со манипулирање со оваа услуга, можно е да се додаде печатач контролиран од напаѓач во системот и да се искористат пропустите во другите компоненти на CUPS со пренесување на конфигурацијата PPD.
  • CVE-2024-47177 е ранливост во управувачот со foomatic-rip од комплетот cups-filters, што овозможува извршување на кодот да се постигне со пренесување на параметарот FoomaticRIPCommandLine во датотека PPD, што напаѓачот може да го пренесе поради горе опишаната ранливост во чаши-прелистани. Наредбите на школка наведени во параметарот FoomaticRIPCommandLine се извршуваат како што се, без да се земе предвид фактот дека параметарот може да биде поставен од аутсајдер. На пример, за да напишете во датотеката /tmp/VULNERABLE, можете да наведете „FoomaticRIPCommandLine: „echo 1 > /tmp/VULNERABLE“.
  • CVE-2024-47175 е ранливост во libppd предизвикана од недостаток на валидација на вредноста ppdCreatePPDFromIPP2 при пишување на IPP атрибути на привремена PPD-датотека. Проблемот ви овозможува да постигнете замена на произволни податоци во добиената PPD-датотека со прикачување на атрибути користејќи го знакот за довод на линија. На пример, можете да ја заобиколите проверката и, заедно со дозволените атрибути, да го замените атрибутот FoomaticRIPCommandLine за да ја искористите горенаведената ранливост во филтрите за чаши.
  • CVE-2024-47076 е ранливост во библиотеката libcupsfilters од пакетот cups-filters поради недостаток на верификација на вредностите cfGetPrinterAttributes5 вратени од надворешен IPP сервер, што му овозможува на напаѓачот да организира обработка на произволни IPP атрибути во други CUPS потсистеми, на пример, кога се генерираат датотеки PPD.

Сценариото за напад за CUPS се сведува на следниве чекори:

  • Распоредување на сопствениот IPP сервер на напаѓачот.
  • Испраќање UDP пакет до жртвата со врска до печатач поврзан со серверот IPP што работи од напаѓачите.
  • По добивањето на овој пакет, системот на жртвата се поврзува со серверот IPP на напаѓачот и бара атрибути на печатачот.
  • Како одговор на барањето на жртвата, серверот IPP на напаѓачот враќа PPD-датотека со атрибути, вклучувајќи го и атрибутот FoomaticRIPCommandLine. Овој атрибут е прикачен на еден од важечките атрибути користејќи го знакот „\n“ на една линија (на пример, „cupsPrivacyURI: „https://www.google.com/\n*FoomaticRIPCommandLine:“), кој го заобиколува проверка и води до снимање на FoomaticRIPCommandLine како посебен атрибут при зачувување на примените податоци во привремена датотека.
  • Како резултат на обработката на пренесените атрибути, во системот на жртвата се креира PPD-датотека: ... *cupsSNMPSupplies: False *cupsLanguages: “en” *cupsPrivacyURI: “https://www.google.com/” *FoomaticRIPCommandLine: „echo 1 > /tmp/I_AM_VULNERABLE " *cupsFilter2 : "application/pdf application/vnd.cups-postscript 0 foomatic-rip" *cupsSingleFile: True *cupsFilter2: "application/vnd.cups-pdf application/pdf 0 -" . ..
  • Кога печатите на печатач поставен од напаѓачот, наредбата „echo 1 > /tmp/I_AM_VULNERABLE“ ќе се изврши на системот на жртвата.

Истражувачот кој ги идентификуваше ранливостите забележува дека му требале неколку дена да ја открие ранливоста, но потоа следел 22-дневна кореспонденција со развивачите на проектот OpenPrinting, обидувајќи се да ги убеди во важноста на проблемот и потребата да се подгответе закрпи. Дискусијата стана заглавена во дебата за тоа дали воопшто вреди да се поправат овие проблеми, а ситуацијата беше свртена само со подигнување на јавна возбуда за идентификација на критичен проблем. Интересна е и појавата на протекување информации, при што доверлив извештај и искористување доставени до CERT се појавија на форумот breachforums.st во јавниот домен, и покрај ембаргото за откривање информации.

Извор: opennet.ru

Додадете коментар