OpenBSD արտոնությունների ընդլայնումը և նույնականացումը շրջանցում են smtpd, ldapd և radiusd խոցելիությունները

Qualys ընկերությունը բացահայտվել է չորսը խոցելիություններ OpenBSD-ում, որոնցից մեկը թույլ է տալիս հեռակա կարգով միանալ առանց նույնականացման որոշ ցանցային ծառայությունների, իսկ մյուս երեքը մեծացնում են ձեր արտոնությունները համակարգում: Qualys-ի զեկույցում նշվել է OpenBSD ծրագրավորողների արագ արձագանքը. բոլոր խնդիրները եղել են վերացվել է в OpenBSD 6.5 и OpenBSD 6.6 մասնավոր ծանուցումից հետո 40 ժամվա ընթացքում:

Հեռակա շահագործվող խոցելիությունը առաջանում է libc գրադարանում նույնականացման մշակողին կանչելու սխալի պատճառով, որը կանչում է.
ծրագիրը /usr/libexec/auth/login_style արգումենտների փոխանցում հրամանի տողում: Ներառյալ «-s ծառայություն» կամընտիր պարամետրի միջոցով login_style զանգահարելիս, հնարավոր է փոխանցել արձանագրության անվանումը: Եթե ​​օգտագործողի անվան սկզբում օգտագործեք «-» նիշը, ապա այս անունը կդիտարկվի որպես տարբերակ, երբ գործարկվում է login_style: Համապատասխանաբար, եթե նույնականացման ժամանակ որպես օգտվողի անուն նշեք «-schallenge» կամ «-schallenge:passwd», ապա login_style-ը կընկալի հարցումը որպես մշակիչի օգտագործման հարցում: S/Key.

Խնդիրն այն է, որ S/Key արձանագրությունը login_style-ում աջակցվում է միայն պաշտոնապես, բայց իրականում անտեսվում է հաջող վավերացման նշանի ելքով: Այսպիսով, հարձակվողը կարող է, ներկայանալով որպես օգտագործողի «-մարտահրավեր», շրջանցել իսկությունը և մուտք ունենալ առանց գաղտնաբառի կամ բանալիների տրամադրման: Բոլոր ցանցային ծառայությունները, որոնք օգտագործում են նույնականացման համար ստանդարտ libc զանգեր, կարող են ազդել խնդրի վրա: Օրինակ, նույնականացումը շրջանցելու հնարավորությունը աջակցվում է smtpd (AUTH PLAIN), ldapd և radiusd-ում:

Խոցելիությունը չի հայտնվում sshd-ում, քանի որ այն ունի լրացուցիչ պաշտպանություն, որը ստուգում է օգտատիրոջ ներկայությունը համակարգում: Այնուամենայնիվ, sshd-ը կարող է օգտագործվել համակարգի խոցելիությունը ստուգելու համար. «-sresponse:passwd» օգտվողի անունը մուտք գործելիս կապը կախված է, քանի որ sshd-ը սպասում է, որ login_passwd վերադարձնի մարտահրավերի պարամետրերը, իսկ login_passwd-ը սպասում է բացակայող պարամետրերին: ուղարկվել (անունը «- sresponse» դիտվում է որպես տարբերակ): Տեղական հարձակվողը կարող է պոտենցիալ փորձել շրջանցել նույնականացումը su utility-ում, սակայն «-sresponse» անունը փոխանցելով գործընթացը խափանում է՝ վերադարձնելով զրոյական ցուցիչ՝ getpwnam_r("-schallenge", ...) ֆունկցիան կատարելիս:

Այլ խոցելիություններ.

  • CVE-2019-19520 Տեղական արտոնությունների ընդլայնում xlock օգտակար ծառայության մանիպուլյացիայի միջոցով, որը մատակարարվում է sgid դրոշակով, փոխելով խումբը «auth»-ի: Xlock կոդի մեջ դեպի գրադարաններ տանող ուղիների վերասահմանումն արգելվում է միայն այն դեպքում, երբ փոխվում է օգտագործողի նույնացուցիչը (setuid), ինչը հարձակվողին թույլ է տալիս փոխել «LIBGL_DRIVERS_PATH» միջավայրի փոփոխականը և կազմակերպել իր ընդհանուր գրադարանի բեռնումը, որի կոդը կկատարվի։ «auth» խմբին արտոնություններ բարձրացնելուց հետո։
  • CVE-2019-19522 - Թույլ է տալիս տեղական օգտագործողին, ով «auth» խմբի անդամ է, գործարկել կոդը որպես արմատ, երբ S/Key կամ YubiKey նույնականացումը միացված է համակարգում (կանխադրված ակտիվ չէ): «auth» խմբին միանալը, որը հասանելի է xlock-ում վերը նշված խոցելիությունը շահագործելու միջոցով, թույլ է տալիս ֆայլեր գրել /etc/skey և /var/db/yubikey դիրեկտորիաներում: Օրինակ, հարձակվողը կարող է ավելացնել նոր ֆայլ /etc/skey/root՝ S/Key-ի միջոցով նույնականացման համար մեկանգամյա ստեղներ ստեղծելու համար որպես արմատային օգտվող:
  • CVE-2019-19519 - ռեսուրսների սահմանաչափերի ավելացման հնարավորությունը կոմունալ ծառայության մանիպուլյացիայի միջոցով: Երբ նշված է «-L» տարբերակը, ինչը հանգեցնում է նույնականացման փորձերի ցիկլային կրկնմանը, եթե դրանք անհաջող են, օգտվողի դասը սահմանվում է միայն մեկ անգամ և չի վերականգնվում հետագա փորձերի ժամանակ: Հարձակվողը կարող է կատարել «su-l-L»՝ մեկ այլ հաշվի դասակարգով ուրիշի մուտք գործելու առաջին փորձի ժամանակ, բայց երկրորդ փորձի ժամանակ նա կարող է հաջողությամբ հաստատել որպես ինքն իրեն: Այս իրավիճակում օգտատերը ենթակա է սահմանափակումների՝ հիմնված օգտագործողի դասի վրա, որը նշված է առաջին փորձից (օրինակ՝ գործընթացների առավելագույն քանակը կամ հիշողության չափը գործընթացի համար): Մեթոդն աշխատում է միայն արտոնյալ օգտվողներից փոխառությունների սահմանաչափերի համար, քանի որ արմատային օգտվողը պետք է լինի անիվի խմբում):

Բացի այդ, կարող եք նշել իրականացում OpenBSD-ում՝ համակարգային զանգերի վավերականության ստուգման նոր մեթոդ, որն էլ ավելի է բարդացնում խոցելիության օգտագործումը։ Մեթոդը թույլ է տալիս համակարգային զանգեր կատարել միայն այն դեպքում, եթե դրանք հասանելի են նախկինում գրանցված հիշողության տարածքներից: Հիշողության տարածքները նշելու համար առաջարկել է նոր համակարգային զանգ msyscall ().

Source: opennet.ru