Բացահայտվել են Exim-ի կարևոր խոցելիության մանրամասները

հրապարակված ուղղիչ թողարկում Exim 4.92.2 կրիտիկականի վերացման հետ խոցելիություններ (CVE-2019-15846- ը), որը լռելյայն կազմաձևում կարող է հանգեցնել արմատային արտոնություններ ունեցող հարձակվողի կողմից կոդի հեռավոր կատարմանը: Խնդիրն ի հայտ է գալիս միայն այն ժամանակ, երբ TLS-ի աջակցությունը միացված է և շահագործվում է՝ փոխանցելով հատուկ մշակված հաճախորդի վկայական կամ փոփոխված արժեք SNI-ին: Խոցելիություն բացահայտված Qualys-ի կողմից։

խնդիր ներկա տողի հատուկ նիշերից խուսափելու համար մշակիչում (string_interpret_escape() տողից.c) և առաջանում է տողի վերջում գտնվող '\' նիշի մեկնաբանմամբ՝ զրոյական նիշից առաջ ('\0') և դուրս գալով դրանից: Փախուստի ժամանակ «\» հաջորդականությունը և տողի վերջի զրոյական ծածկագիրը դիտարկվում են որպես մեկ նիշ, և ցուցիչը տեղափոխվում է տողից դուրս գտնվող տվյալներ, որոնք դիտվում են որպես տողի շարունակություն:

String_interpret_escape() կանչող կոդը բուֆեր է հատկացնում արտահոսքի համար՝ հիմնվելով իրական չափի վրա, և բացված ցուցիչը հայտնվում է բուֆերի սահմաններից դուրս գտնվող տարածքում: Համապատասխանաբար, մուտքային տող մշակելիս իրավիճակ է առաջանում, երբ տվյալներ կարդում են հատկացված բուֆերի սահմաններից դուրս գտնվող տարածքից, և չփախված տող գրելու փորձը կարող է հանգեցնել բուֆերի սահմաններից դուրս գրելու:

Լռելյայն կազմաձևում խոցելիությունը կարող է օգտագործվել՝ հատուկ մշակված տվյալներ ուղարկելով SNI-ին՝ սերվերի հետ անվտանգ կապ հաստատելիս: Խնդիրը կարող է օգտագործվել նաև՝ փոփոխելով peerdn արժեքները հաճախորդի վկայականի նույնականացման համար կազմաձևված կոնֆիգուրացիաներում կամ վկայագրեր ներմուծելիս: Հարձակումը SNI-ի և peerdn-ի միջոցով հնարավոր է՝ սկսած թողարկումից Exim 4.80, որում string_unprinting() ֆունկցիան օգտագործվել է peerdn և SNI բովանդակությունը հանելու համար։

SNI-ի միջոցով հարձակման համար պատրաստվել է շահագործման նախատիպ, որն աշխատում է i386 և amd64 ճարտարապետություններով Linux համակարգերի վրա Glibc-ով: Exploit-ը օգտագործում է տվյալների ծածկույթը կույտի տարածքում, որի արդյունքում վերագրվում է հիշողությունը, որտեղ պահվում է log ֆայլի անունը: Ֆայլի անունը փոխարինվում է «/../../../../../../../../etc/passwd»-ով: Հաջորդը, ուղարկողի հասցեով փոփոխականը վերագրվում է, որը սկզբում պահվում է գրանցամատյանում, որը թույլ է տալիս համակարգում նոր օգտվող ավելացնել:

Փաթեթի թարմացումները՝ բաշխումների կողմից թողարկված խոցելիության շտկմամբ Debian, Ubuntu, Fedora, SUSE/openSUSE и FreeBSD- ը. RHEL և CentOS խնդիր ենթակա չէ, քանի որ Exim-ը ներառված չէ իրենց սովորական փաթեթների պահոցում (in ՋԵՐՄ обновление արդեն ձեւավորվել է, բայց առայժմ տեղադրված չէ հանրային շտեմարան): Exim կոդում խնդիրը շտկվում է մեկ տողով կարկատել, որն անջատում է հետին կտրվածքի փախչող էֆեկտը, եթե այն գտնվում է տողի վերջում:

Որպես խոցելիությունը արգելափակելու միջոց՝ կարող եք անջատել TLS աջակցությունը կամ ավելացնել
ACL բաժին «acl_smtp_mail»:

մերժման պայման = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
մերժման պայման = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Source: opennet.ru

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