Linux-ի միջուկում խոցելիություն, որը կարող է վթարի պատճառ դառնալ՝ ուղարկելով UDP փաթեթ

Linux միջուկում բացահայտված խոցելիություն (CVE-2019-11683- ը), որը թույլ է տալիս հեռակա կարգով առաջացնել ծառայության մերժում` ուղարկելով հատուկ մշակված UDP փաթեթներ (մահվան փաթեթ): Խնդիրն առաջացել է udp_gro_receive_segment մշակիչում (net/ipv4/udp_offload.c) GRO (Generic Receive Offload) տեխնոլոգիայի ներդրման հետ կապված սխալի պատճառով և կարող է վնասել միջուկի հիշողության տարածքների բովանդակությունը UDP փաթեթները զրոյական լիցքավորմամբ մշակելիս: (դատարկ ծանրաբեռնվածություն):

Խնդիրն ազդում է միայն միջուկի վրա 5.0քանի որ GRO աջակցությունը UDP վարդակների համար էր իրականացվել է անցած տարվա նոյեմբերին և միայն հաջողվեց մտնել վերջին կայուն միջուկի թողարկումը: GRO տեխնոլոգիան թույլ է տալիս արագացնել մեծ թվով մուտքային փաթեթների մշակումը` մի քանի փաթեթներ ավելի մեծ բլոկների մեջ միավորելով, որոնք չեն պահանջում յուրաքանչյուր փաթեթի առանձին մշակում:
TCP-ի համար խնդիրը չի առաջանում, քանի որ այս արձանագրությունը չի աջակցում առանց ծանրաբեռնվածության փաթեթների համախմբմանը:

Խոցելիությունը մինչ այժմ շտկվել է միայն ձևով կարկատել, ուղղիչ թարմացումը դեռ չի հրապարակվել (երեկվա թարմացումը 5.0.11 ֆիքս ներառված չէ). Բաշխման փաթեթներից միջուկը 5.0-ին հաջողվեց ներառել Fedora 30- ը, Ubuntu 19.04, Arch Linux- ը, Gentoo և շարունակաբար թարմացվող այլ բաշխումներ: Debian, Ubuntu 18.10 և ավելի վաղ, RHEL / CentOS и SUSE/openSUSE խնդիրը չի ազդում.

Խնդիրը արդյունքում հայտնաբերվել է օգտագործում Google-ի կողմից ստեղծված ավտոմատ fuzzing թեստավորման համակարգ syzbot և անալիզատոր ԿԱՍԱՆ (KernelAddressSanitizer), որի նպատակն է հայտնաբերել հիշողության հետ աշխատելիս սխալները և սխալ հիշողության հասանելիության փաստերը, ինչպես օրինակ՝ ազատված հիշողության տարածքներ մուտք գործելը և կոդ տեղադրելը հիշողության տարածքներում, որոնք նախատեսված չեն նման մանիպուլյացիաների համար:

Source: opennet.ru

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