Qualys ընկերությունը մեկ այլ հեռավոր ապակենտրոն կրիտիկական խոցելիություն (CVE-2020-8794) էլեկտրոնային փոստի սերվերում , որը զարգացվում է OpenBSD նախագծի կողմից։ Ինչպես և երկարաձիգ հայտնաբերված , նոր խնդիրն թույլ է տալիս հեռավար կատարելու առանցքային shell հրամաններ սերվերում՝ արմատ օգտագործողի իրավունքներով։ Խոցելիությունը թողարկման մեջ .
Խնդիրը առաջանում է կոդի սխալի պատճառով, որն իրականացվում է հեռավոր էլեկտրոնային փոստի սերվերին մաքսի առաքման գործում (ոչ այն կոդի, որն զբաղվում է մուտքային կապերով)։ Հարձակումը հնարավոր է ինչպես հաճախորդի, այնպես էլ սերվերի կողմից։ Հաճախորդի կողմում հարձակումը հնարավոր է OpenSMTPD-ի ստանդարտ կոնֆիգուրացիայի միջոցով, որտեղ OpenSMTPD ընդունում է հարցումները միայն ներքին ցանցային ինտերֆեյսի վրա (localhost) և մաքսավորում է էլեկտրոնային նամակները արտաքին սերվերներին։ Խոցելիության շահագործման համար բավական է, որ նամակի առաքման ընթացքում OpenSMTPD-ի կողմից ստեղծվի միակցում հարձակվողի վերահսկվող էլեկտրոնային փոստի սերվերով, կամ որ հարձակվողը կարողանա միջամտել հաճախորդի կապին (MITM կամ միացումների կրկնողություններ DNS կամ BGP հարձակումների միջոցով)։
Սերվերի կողմում հարձակման համար անհրաժեշտ է, որ OpenSMTPD-ը կարգաբերված լինի ընդունելու արտաքին ցանցային հարցումներ այլ էլեկտրոնային փոստի սերվերներից կամ սպասարկելու արտաքին ծառայություններ, որոնք թույլ են տալիս ուղարկել հարցումներ ցանկացած էլ. հասցեին (օրինակ՝ հասցեի հաստատման ձևեր կայքերում)։ Օրինակ, հարձակում իրականացնողը կարող է միանալ OpenSMTPD սերվերին և ուղարկել սխալ նամակ (չներգրավված օգտվողին), որը կհանգեցնի պատասխան մաքսավորված նամակի (bounce) վերադարձի հարձակվողի սերվերին։ Հարձակվողը կարող է շահագործել խոցելիությունը այն ժամանակ, երբ OpenSMTPD միանում է՝ տեղեկացման մաքսավորման համար հարձակվողի սերվերին։ Հարձակման ընթացքում տեղադրվող shell կոմանները պահվում են ֆայլում, որը կատարվելու է արմատ իրավունքներով OpenSMTPD-ի ռեսուրսների վերագործարկման ժամանակ, այդպիսով, հարձակվողը պետք է սպասի OpenSMTPD-ի վերագործարկմանը կամ նախաձեռնի OpenSMTPD-ի անկում։
Խնդիրը առկա է mta_io() ֆունկցիայում՝ հեռավոր սերվերից հետո միակցման ընթացքում վերադարձվող բազմապատիկ արձագանքների վերբեռնման կոդում (օրինակ՝ «250-ENHANCEDSTATUSCODES» և «250 HELP»)։ OpenSMTPD-ում նախատեսվում է, որ առաջին շարքը ներառում է երեքանիշ թիվ և տեքստ, որոնք բաժանված են «-» նշանով, իսկ երկրորդ շարքում՝ երեքանիշ թիվ և տեքստ, որոնք բաժանված են օդորակարաչափով։ Եթե երկրորդ շարքում, երեքանիշ թվից հետո, չկան օդորակարաչափի նշան և տեքստ, ապա տեքստի որոշման համար օգտագործվող ցուցիչը սահմանվում է հաջորդ байտի վրա, որն առաջացնում է '0' նշանի հետևում և փորձ է կատարվում հասցեների բուֆերից անջատված տվյալների պատճենում, որոնք գտնվում են տարվա վերջից հետո։
OpenBSD նախագծի խնդրանքով, խոցելիության շահագործման մանրամասների հրապարակումը վետրված է մինչև փետրվարի 26, որպեսզի օգտագործողները հնարավորություն ունենան թարմացնել իրենց համակարգերը: Հետախուզումը կոդի հիմքում կա 2015 թվականի դեկտեմբերից, սակայն 2018 թվականի մայիսին հնարավոր է շահագործել կոդը root իրավունքներով: Հետազոտողները պատրաստել են աշխատող էքսպլոյտի մոդել, որը հաջողությամբ փորձարկվել է OpenSMTPD-ի հավաքածուներում՝ OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (testing) և Fedora 31-ի համար։
OpenSMTPD-ում նույնպես մեկ այլ խոցելիություն (CVE-2020-8793) կա, որը թույլ է տալիս տեղական օգտագործողին կարդալ համակարգի ցանկացած ֆայլի առաջին տողը: Օրինակ, կարելի է կարդալ առաջին տողը /etc/master.passwd ֆայլում, որտեղ տեղադրված է root օգտվողի գաղտնաբառի hash-ը։ Խոցելիությունը նույնպես թույլ է տալիս կարդալ մեկ այլ օգտվողի ֆայլի ամբողջ բովանդակությունը, եթե այդ ֆայլը գտնվում է /var/spool/smtpd/ կատեգորիայի ամբողջական ֆայլային համակարգում: Проблема не эксплуатируема во многих дистрибутивах Linux, в которых значение /proc/sys/fs/protected_hardlinks выставлено в 1.
Խնդիրը հետևանք է , ժողովուրդից ներկայացրած գործընթացում որևէ մասնավոր անհանգստություն, որին մասնակցում էր Qualys 2015 թվականին: Ոչնչացման խմբի «_smtpq» իրավունքով, ագլոհողը կարող է իրականացնի իր կոդը «PATH=.» փոփոխելով և ներկայիս կատեգորում makemap անվամբ սցենարը տեղադրելով (smtpctl գործիքը запускает makemap առանց ուղի նշելու): Նույն ընթացքում, երբ ստանում է «_smtpq» խմբի իրավունքները, ագլոհողը կարող է ստեղծել մրցակցության վիճակ (մեծ ֆայլ ստեղծել օֆլայն կատեգորիայում և ուղարկել SIGSTOP ազդանշանը) և, ավարտի նախքան, փոխարինել ֆայլը օֆլայն կատեգորիայում կոշտ խորհրդանշական հղումով, որը կցվում է կարդալու բովանդակության նպատակը:
Գումարամասն է, որ Fedora 31-ում խոցելիությունը անմիջապես տալիս է root խմբի իրավունքները, որովհետեւ smtpctl գործընթացը պարգև տրված է setgid root դրոշով, փոխարեն setgid smtpq-ից։ Root խմբի իրավունքներ ստանալով կարելի է վերագրավել /var/lib/sss/mc/passwd-ի բովանդակությունը և ստանալ համակարգում ամբողջական root-հաղորդավարություն։
Ընտանիք: opennet.ru
