Սիմոնի Մարգարիտելլին (Simone Margaritelli), OpenSnitch firewalls-ի և bettercap ցանցային վերլուծողի հեղինակ, վաղաժամ անալիզ է հրապարակել նախկինում հայտարարված հիմնական խոցելիությունների մասին, որոնք թույլ են տալիս հեռակա հարձակում կատարել GNU/Linux, Solaris, FreeBSD և որոշ այլ BSD-համակարգերի վրա: Դոկումենտի հրապարակումը սկզբի պլանավորված էր հոկտեմբերի 6-ին, սակայն տեղեկությունների արտահոսքի պատճառով, այն ստիպված էր հրապարակել վաղաժամ մոտավորապես այնպես, որ մեծ մասի դիստրիբուտիվները չհասցնեն պատրաստել փաթեթների թարմացում: Խոցելիությունները ազդում են CUPS մոշտարանի сервера և թույլ են տալիս հեռակա մուտքի առանց վավերացման՝ իրականացնել կոդի կատարման համակարգում:
Խնդիրը հայտնաբերած հետազոտողը պատրաստել է շահագործման աշխատանքային պրոտոտիպ, որը օգտագործում է մի քանի խոցելիությունների համադրություն և թույլ է տալիս հեռակա կերպով իրականացնել կոդի վերլուծական աշխատանք CUPS մոշտարանի պարամետրերի իրավունքներով (ըստ շփման սովորաբար «lp» օգտատեր): Շահագործումը թույլ է տալիս չնկատելի կերպով փոխել օգտվողի մոշտարանի պարամետրերը կամ ավելացնել նոր մոշտարան, որը կապված է գործող հարձակվող IPP-սերվերի հետ, որը տրամադրում է հատուկ ձևավորված PPD-նկարագրությունը: Այս PPD-ի մշակումը տպման աշխատանքի ընթացքում հանգեցնում է հարձակվողի կոդի կատարատեսությանը (պետք է, որ զոհը նախաձեռնեն հաճախակիության կետում տպելը ստացված կամ փոխված հարձակողի մոշտարանում):
Հարձակումները ենթարկվում են համակարգերին, որոնք ունեն սերվեր CUPS մոշտարան և աշխատող cups-browsed գործընթաց, որը ընդունում է ցանցային կապեր 631 պորտում (UDP): Հարձակումն այդպես էլ կարող է իրականացվել տեղի ցանցից, որտեղ մոշտարանի հասանելիությունն իրականացվում է zeroconf, mDNS կամ DNS-SD պրոտոկոլների միջոցով: Խոցելի են միայն cups-browsed կոնֆիգուրացիաները, որտեղ /etc/cups/cups-browsed.conf ֆայլում BrowseRemoteProtocols պարամետրում «cups» արժեքն է նշված: systemd ունեցող դիստրիբուտիվներում կարելի է cups-browsed ծառայության օգտագործումը ստուգել «sudo systemctl status cups-browsed» հրահանգով: սերվերին Խոցելիությունը ի հայտ է գալիս բոլոր CUPS-հիման վրա հիմնված մոշտարաններում, որտեղ օգտագործվում են cups-filters, libcupsfilters, libppd և cups-browsed փաթեթների խոցելի տարբերակները: Առկա են ուղղումները միայն բտրերում (1, 2, 3) — գործող cups-filters 2.0.1, libcupsfilters 2.1b1, libppd 2.1b1 և cups-browsed 2.0.1 տարբերակները ենթարկվում են խոցելիությունների: Դիստրիբուտիվներում հարցը մնում է անընդգրկված, բարելավումների մասին տեղեկություններ կարելի է գտնել հետևյալ էջերում՝ Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD: Ուղեցույցի նրանց պաշտպանելու նպատակով, մինչ թարմացման կիրառումը, կարելի է փակել արտաքին ցանցերի մուտքը UDP-պորտ 631, անջատել cups-browsed ծառայությունը կամ սահմանել BrowseRemoteProtocols-ը «none» արժեքի:
Խոցելիությունը ի հայտ է գալիս բոլոր CUPS-հիման վրա հիմնված տպիչ համակարգերում, որտեղ օգտագործվում են cups-filters, libcupsfilters, libppd և cups-browsed փաթեթների խոցելի տարբերակներ: Պահպանման եղանակներ առկա են միայն патчերում (1, 2, 3) — գործող cups-filters 2.0.1, libcupsfilters 2.1b1, libppd 2.1b1 և cups-browsed 2.0.1 տարբերակները ենթարկվում են խոցելիություններին: Դիստրիբուտիվներում հարցը մնում է անլուծված, բարելավումների մասին տեղեկություններ կարելի է գտնել հետևյալ էջերում՝ Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD: Որպես հսկողություն պաշտպանելու նպատակով, մինչև թարմացման գործարկումը, կարելի է փակել արտաքին ցանցերի մուտքը UDP-պորտ 631, անջատել cups-browsed ծառայությունը կամ սահմանել BrowseRemoteProtocols-ը «none» արժեքի:
Հայտնաբերված漏洞ներ՝
- CVE-2024-47176 — խոցելիություն cups-browsed գործընթացում, որը ստեղծում է ցանցային սոկետ, որը ընդունում է միացումներ 631 պորտում, կցված բոլոր արտաքին ցանցային ինտերֆեյսներին և ստանում է IPP հարցումներ «Get-Printer-Attributes» որևէ արտաքին համակարգից: Այս ծառայության մանիպուլյացիայի միջոցով կարող եք համակարգին ավելացնել նprinter, որը վերահսկվում է հարձակվողի կողմից, և շահագործել դրա PPD կարգավորումը այլ բաղադրիչների CUPS-ում:
- CVE-2024-47177 — խոցելիություն foomatic-rip մամուլում cups-filters հավաքածուից, որը թույլ է տալիս կատարման կոդի միջոցով փոխանցել FoomaticRIPCommandLine պարամետր PPD ֆայլում, որը կարող է փոխանցվել հարձակվողի կողմից վերևում նկարագրված cups-browsed խոցելիության միջոցով: FoomaticRIPCommandLine պարամետրով նշված shell հրամանները կատարվում են ինչպես կանոնավոր, անտեսելով, որ արտաքին մարդիկ կարող են դրա արժեքը փոխել: Օրինակ, /tmp/VULNERABLE ֆայլի գրանցման համար կարող եք նշել «FoomaticRIPCommandLine: «echo 1 > /tmp/VULNERABLE».
- CVE-2024-47175 — խոցելիություն libppd-ում, որը առաջանում է IPP ատրիբուտների սուտ ստուգման բացակայությունից ժամանակ ժամանակավոր PPD ֆայլում գրելու համար. Սթրաքը թույլ է տալիս սխալ տվյալների ներդրում նախագծել արդյունքային PPD ֆայլի մեջ, ավելացնելով ատրիբուտներ, օգտագործելով նոր տողի սիմվոլները: Օրինակ, կարող եք շրջանցել ստուգումը և junto բացասական ատրիբուտների հետ մեկտեղ տրամադրել FoomaticRIPCommandLine ատրիբուտը, որը շահագործում է վերոնշյալ cups-filters խոցելիությունը.
- 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 -» …
- Ամբողջականschirmէյի մեջ ներմուծված հրաման «echo 1 > /tmp/I_AM_VULNERABLE» կկատարի բռնին բոլոր սպառողների համակարգում ներմուծված ա՛յն մուտքագրված է հեռակա տպիչի կողմից։
Ուզողության կայունության հետազոտողը նշում է, որ խոցելիությունը հայտնաբերելու համար որոշ օրեր է պահանջվել, սակայն հետո երկսլաբ չհարթված հաղորդակցություն է սկսվել OpenPrinting նախագծի մշակողների հետ՝ նրանց համոզելու հարցում, թե պետք է արդյոք դրանց վրա աշխատել և պաթչեր պատրաստել: Քննարկումը դարձել է վեճերով հատված, թե արդյոք հարցադրված խնդիրները պետք է ուղղվեն, իրավիճակը միայն հասարակական բախման յոթ ոլորտներում հետաքրքություն առաջացնելուց հետո հերքվել է: Վառ է դիմումներ տեղեկատվությունների գեղարվեստական ռոսնախագծի մեջ, երբ CERT-ին հանձնված գաղտնի отчետը և էքսպլոիտը հայտնվել են breachforums.st ֆորումում՝ բաց հասանելիությամբ, չնայած տեղեկատվության հայտարարության արգելքին:
Ընտանիք: opennet.ru
