Dëshmimi i fuqive të shfrytëzuesve të largët në serverin e printimit CUPS

Simone Margaritelli, autori i firewall-it OpenSnitch dhe analizuesit të rrjetit bettercap, zbuloi më herët informacione në lidhje me vulnerabilitetet kritike që mundësojnë sulme të largëta mbi shpërndarjet GNU/Linux, Solaris, FreeBSD dhe disa sisteme të tjera BSD. Fillimisht, publikimi ishte planifikuar për më 6 tetor, por për shkak të një rrjedhje informacioni, ato u publikuan më herët, para se shumica e shpërndarjeve të arrijnë të përgatisin azhurnimin e paketave. Vulgaritetet ndikojnë në serverin e printimit CUPS dhe lejojnë ekzekutimin e kodit në sistem pa autentifikim.

Hulumtuesi që identifikoi problemin ka përgatitur një prototip funksional të eksploitit, duke përdorur një kombinim të disa vulnerabiliteteve që lejon ekzekutimin e kodit në mënyrë të largët me të drejtat e procesit që merret me dërgimin e printimit në CUPS (zakonisht përdoruesi "lp"). Eksploitimi lejon që në mënyrë të padukshme të zëvendësohen parametrat e printerit të përdoruesit ose të shtohet një printer i ri, i lidhur me serverin IPP të sulmuesit, i cili ofron një përshkrim të PPD të dizajnuar në mënyrë të veçantë, duke bërë që përpunimi i këtij PPD gjatë nisjes së printimit të çojë në ekzekutimin e kodit të sulmuesit (është e nevojshme që viktima të nisim printimin në printerin e manipuluar ose të zëvendësuar nga sulmuesi).

Sistemet që janë të ndjeshme ndaj sulmit janë serverin CUPS dhe procesi cups-browsed, i cili ndihmon në pranimet e lidhjeve rrjetësore në portin 631 (UDP). Sulmi gjithashtu mund të realizohet nga një rrjet lokal, në të cilin për aksesin ndaj server printimit përdoren protokollet zeroconf, mDNS ose DNS-SD. Vetëm konfigurimet e cups-browsed, në të cilat në skedarin /etc/cups/cups-browsed.conf në parametrin BrowseRemoteProtocols është caktuar vlera "cups" janë të ndjeshme. Në shpërndarjet me systemd, mund të kontrolloni përdorimin e shërbimit cups-browsed duke përdorur komandën "sudo systemctl status cups-browsed."

Vulnerabiliteti shfaqet në të gjitha sistemet e printimit të bazuara në CUPS, të cilat përdorin versionet e ndjeshme të pakove cups-filters, libcupsfilters, libppd dhe cups-browsed. Rregullimet aktualisht janë të disponueshme vetëm si patch-e (1, 2, 3) - versionet aktuale cups-filters 2.0.1, libcupsfilters 2.1b1, libppd 2.1b1 dhe cups-browsed 2.0.1 janë të ndjeshme ndaj vulnerabiliteteve. Në shpërndarjet, problemi mbetet i pazgjidhur, dhe mund të ndiqni shfaqjen e azhurnimeve në këto faqe: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Si një mënyrë e përkohshme për mbrojtje para instalimit të azhurnimeve, mund të bllokoni aksesin për rrjetet e jashtme në portin UDP 631, të çaktivizoni shërbimin cups-browsed ose të vendosni parametrin BrowseRemoteProtocols në vlerën "none."

Vulnerabilitetet e identifikuara:

  • CVE-2024-47176 - njĂ« vulnerabilitet nĂ« procesin cups-browsed, i cili krijon njĂ« soket rrjeti qĂ« pranon lidhjet nĂ« portin 631, i cili lidhet me tĂ« gjitha ndĂ«rfaqet rrjetĂ«sore tĂ« disponueshme nĂ« sistem dhe pranon kĂ«rkesat IPP "Get-Printer-Attributes" nga çdo sistem tĂ« jashtĂ«m. NĂ«pĂ«rmjet manipulimit tĂ« kĂ«tij shĂ«rbimi, mund tĂ« bĂ«het shtimi i njĂ« printeri nĂ« sistem, i kontrolluar nga sulmuesi, dhe tĂ« shfrytĂ«zohet pĂ«rmes transmetimit tĂ« konfigurimit PPD tĂ« vulnerabiliteteve nĂ« komponentĂ«t e tjerĂ« tĂ« CUPS.
  • CVE-2024-47177 - njĂ« vulnerabilitet nĂ« trajtuesin foomatic-rip nga grupi cups-filters, i cili lejon ekzekutimin e kodit pĂ«rmes transmetimit tĂ« parametrit FoomaticRIPCommandLine nĂ« skedarin PPD, tĂ« cilin sulmuesi mund ta transmetojĂ« falĂ« vulnerabilitetit tĂ« pĂ«rmendur mĂ« parĂ« nĂ« cups-browsed. Komandat shell tĂ« pĂ«rcaktuara nĂ« parametrin FoomaticRIPCommandLine ekzekutohen ashtu si janĂ«, pa marrĂ« parasysh se parametri mund tĂ« pĂ«rcaktohet nga ndonjĂ« palĂ« tĂ« tretĂ«. PĂ«rshembull, pĂ«r tĂ« shkruar nĂ« skedarin /tmp/VULNERABLE, mund tĂ« pĂ«rcaktohet "FoomaticRIPCommandLine: "echo 1 > /tmp/VULNERABLE."
  • CVE-2024-47175 - njĂ« vulnerabilitet nĂ« libppd, e shkaktuar nga mungesa e kontrollit tĂ« vlefshmĂ«risĂ« sĂ« vlerĂ«s ppdCreatePPDFromIPP2 gjatĂ« shkrimit tĂ« atributeve IPP nĂ« skedarin pĂ«rkohĂ«s PPD. Problemi lejon futjen e tĂ« dhĂ«nave tĂ« rastĂ«sishme nĂ« skedarin rezultues PPD duke anashkaluar kontrollin dhe duke bashkangjitur atribute, duke pĂ«rdorur simbolin e kalimit tĂ« rreshtit. PĂ«rshembull, Ă«shtĂ« e mundur tĂ« kaloni kontrollin dhe, sĂ« bashku me atributet e lejueshme, tĂ« pĂ«rfshini atributin FoomaticRIPCommandLine pĂ«r tĂ« shfrytĂ«zuar vulnerabilitetin e pĂ«rmendur mĂ« parĂ« nĂ« cups-filters.
  • CVE-2024-47076 - njĂ« vulnerabilitet nĂ« bibliotekĂ«n libcupsfilters nga paketa cups-filters, i lidhur me mungesĂ«n e kontrollit tĂ« vlerave cfGetPrinterAttributes5, tĂ« cilat kthehen nga njĂ« server IPP tĂ« jashtĂ«m, gjĂ« qĂ« i jep sulmuesit mundĂ«sinĂ« pĂ«r tĂ« organizuar pĂ«rpunimin e atributeve tĂ« rastĂ«sishme IPP nĂ« sistemet e tjera CUPS, pĂ«r shembull, gjatĂ« gjenerimit tĂ« skedarĂ«ve PPD.

Skema e sulmit ndaj CUPS përfshin hapat e mëposhtëm:

  • Zhvillimi nga sulmuesi i serverit tĂ« tij IPP.
  • DĂ«rgimi i viktimĂ«s njĂ« pakete UDP qĂ« lidhet me printerin, i lidhur me serverin IPP qĂ« Ă«shtĂ« iniciuar nga sulmuesi.
  • Pas marrjes sĂ« kĂ«saj pakete, sistemi i viktimĂ«s lidhet me serverin IPP tĂ« sulmuesit dhe kĂ«rkon atributet e printerit.
  • NĂ« pĂ«rgjigje tĂ« kĂ«rkesĂ«s sĂ« viktimĂ«s, serveri IPP i sulmuesit kthen njĂ« skedar PPD me atribute, midis tĂ« cilave pĂ«rfshihet atributi FoomaticRIPCommandLine. Ky atribut lidhet me njĂ« nga atributet e pranueshme, duke pĂ«rdorur simbolin "\n" nĂ« njĂ« rresht (pĂ«r shembull, "cupsPrivacyURI: "https://www.google.com/\n*FoomaticRIPCommandLine: " ), duke lejuar kalimin e verifikimit dhe duke çuar nĂ« regjistrimin e FoomaticRIPCommandLine si njĂ« atribut tĂ« veçuar kur ruhet informacioni nĂ« njĂ« skedar tĂ« pĂ«rkohshĂ«m.
  • Si rezultat i pĂ«rpunimit tĂ« atributeve tĂ« dĂ«rguara nĂ« sistemin e viktimĂ«s krijohet njĂ« skedar 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 -" 

  • Kur printohet nĂ« printerin e shtruar nga sulmuesi nĂ« sistemin e viktimĂ«s do tĂ« ekzekutohet komanda "echo 1 > /tmp/I_AM_VULNERABLE"

Hulumtuesi që zbuloi vulnerabilitetet shënon se kërkimi për vulnerabilitetin i ka marrë disa ditë, por më pas pasoi një korrespondencë që zgjati 22 ditë me zhvilluesit e projektit OpenPrinting me përpjekjen për t'i bindur ata për rëndësinë e problemit dhe nevojën për të përgatitur patches. Diskutimi u ngatërrua në polemika mbi nëse duhet të korrigjoheshin problemet e caktuara, dhe situata u ndryshua vetëm duke krijuar një bujë publike mbi identifikimin e problemit kritik. është interesante gjithashtu dalja e informacionit, gjatë së cilës raporti konfidencial dhe eksploitimi të dërguara në CERT u shfaqën në forumine breachforums.st në qasje të hapur, pavarësisht nga embargoja e vendosur për zbulimin e informacionit.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster