Հեռավոր խոցելիություն TIPC արձանագրության իրականացման գործում Linux միջուկում

Linux-ի միջուկում մատակարարված TIPC (Transparent Inter-process Communication) ցանցային արձանագրության ներդրման ժամանակ հայտնաբերվել է կրիտիկական խոցելիություն (CVE-2021-43267), որը թույլ է տալիս հեռակա կարգով կատարել ձեր կոդը միջուկի արտոնություններով՝ ուղարկելով հատուկ մշակված: ցանցային փաթեթ: Խնդրի վտանգը մեղմվում է նրանով, որ հարձակումը պահանջում է համակարգում TIPC-ի աջակցության բացահայտ միացում (tipc.ko միջուկի մոդուլի բեռնում և կազմաձևում), ինչը լռելյայն չի արվում Linux-ի ոչ մասնագիտացված բաշխումներում:

TIPC արձանագրությունն ապահովվել է Linux միջուկից 3.19-ից, սակայն խոցելիության տանող կոդը ներառվել է միջուկում 5.10-ում: Խոցելիությունը ֆիքսվել է 5.15.0, 5.10.77 և 5.14.16 միջուկներում: Խնդիրը հայտնվում է և դեռ չի շտկվել Debian 11-ում, Ubuntu 21.04/21.10-ում, SUSE-ում (դեռևս չհրապարակված SLE15-SP4 մասնաճյուղում), RHEL-ում (դեռևս մանրամասնված չէ, թե արդյոք խոցելի շտկումը հետպատվերացվել է) և Fedora-ում: Միջուկի թարմացումն արդեն թողարկվել է Arch Linux-ի համար: 5.10-ից ավելի հին միջուկ ունեցող բաշխումները, ինչպիսիք են Debian 10-ը և Ubuntu 20.04-ը, չեն ազդում խնդրի վրա:

TIPC արձանագրությունն ի սկզբանե մշակվել է Ericsson-ի կողմից, որը նախատեսված է կլաստերի մեջ միջգործընթացային հաղորդակցություն կազմակերպելու համար և ակտիվանում է հիմնականում կլաստերային հանգույցների վրա: TIPC-ն կարող է գործել կամ Ethernet-ի կամ UDP-ի միջոցով (ցանցային նավահանգիստ 6118): Ethernet-ով աշխատելիս հարձակումը կարող է իրականացվել լոկալ ցանցից, իսկ UDP-ն օգտագործելիս՝ գլոբալ ցանցից, եթե նավահանգիստը ծածկված չէ firewall-ով։ Հարձակումը կարող է իրականացվել նաև հոսթի ոչ արտոնյալ տեղական օգտագործողի կողմից: TIPC-ն ակտիվացնելու համար դուք պետք է ներբեռնեք tipc.ko միջուկի մոդուլը և կարգավորեք կապը ցանցի ինտերֆեյսի հետ՝ օգտագործելով netlink կամ tipc կոմունալ ծրագիրը:

Խոցելիությունը դրսևորվում է tipc_crypto_key_rc ֆունկցիայի մեջ և առաջանում է վերնագրում նշված տվյալների և տվյալների իրական չափի համապատասխանության պատշաճ ստուգման բացակայությամբ, երբ փաթեթները վերլուծում են MSG_CRYPTO տիպով, որն օգտագործվում է այլ հանգույցներից գաղտնագրման բանալիներ ստանալու համար: կլաստերում՝ այս հանգույցներից ուղարկված հաղորդագրությունների հետագա վերծանման նպատակով: Հիշողության մեջ պատճենված տվյալների չափը հաշվարկվում է որպես հաղորդագրության չափի և վերնագրի չափով դաշտերի արժեքների տարբերություն, բայց առանց հաշվի առնելու գաղտնագրման ալգորիթմի անվան իրական չափը և բովանդակությունը: հաղորդագրության մեջ փոխանցված բանալին: Ենթադրվում է, որ ալգորիթմի անվան չափը ֆիքսված է, և բանալու համար լրացուցիչ փոխանցվում է չափի առանձին հատկանիշ, և հարձակվողը կարող է նշել այս հատկանիշի արժեք, որը տարբերվում է իրականից, ինչը կհանգեցնի գրելու հաղորդագրության պոչը հատկացված բուֆերից դուրս: struct tipc_aead_key { char alg_name[TIPC_AEAD_ALG_NAME]; անստորագիր int keylen; /* բայթերով */ char բանալի[]; };

Հեռավոր խոցելիություն TIPC արձանագրության իրականացման գործում Linux միջուկում


Source: opennet.ru

Добавить комментарий