Patched Exim - նորից կարկատել: Թարմ հեռակառավարման հրամանի կատարում Exim 4.92-ում մեկ հարցումով

Patched Exim - նորից կարկատել: Թարմ հեռակառավարման հրամանի կատարում Exim 4.92-ում մեկ հարցումով

Բոլորովին վերջերս՝ ամռան սկզբին, CVE-4.92-2019 խոցելիության պատճառով Exim-ը թարմացնելու լայնածավալ կոչեր եղան 10149 տարբերակին (Շտապ թարմացրեք Exim-ը 4.92-ի - կա ակտիվ վարակ / Sudo Null IT News) Եվ վերջերս պարզվեց, որ Sustes չարամիտ ծրագիրը որոշել է օգտվել այս խոցելիությունից։

Այժմ բոլոր նրանք, ովքեր շտապ թարմացրել են, կարող են կրկին «ուրախանալ». 21 թվականի հուլիսի 2019-ին հետազոտող Զերոնսը հայտնաբերել է կրիտիկական խոցելիություն Exim Mail Transfer գործակալ (MTA) TLS-ի օգտագործման ժամանակ տարբերակների համար To 4.80 4.92.1 ներառական՝ թույլ տալով հեռ գործարկել կոդը արտոնյալ իրավունքներով (CVE-2019-15846- ը).

Խոցելիություն

Խոցելիությունը առկա է GnuTLS և OpenSSL գրադարաններն օգտագործելիս՝ անվտանգ TLS կապ հաստատելիս:

Ըստ մշակող Heiko Schlittermann-ի, Exim-ի կազմաձևման ֆայլը լռելյայնորեն չի օգտագործում TLS, բայց շատ բաշխումներ տեղադրման ընթացքում ստեղծում են անհրաժեշտ վկայականներ և ապահովում անվտանգ կապ: Նաև Exim-ի նոր տարբերակները տեղադրում են տարբերակը tls_advertise_hosts=* և ստեղծել անհրաժեշտ վկայականներ:

կախված է կոնֆիգուրացիայից: Բաշխումներից շատերը դա միացնում են լռելյայն, սակայն Exim-ին անհրաժեշտ է վկայագիր+բանալի՝ որպես TLS սերվեր աշխատելու համար: Հավանաբար, Distros-ը տեղադրման ընթացքում ստեղծում է Cert: Ավելի նոր Exims-ն ունի tls_advertise_hosts տարբերակը, որը լռելյայն սահմանում է «*» և ստեղծում է ինքնաստորագրված վկայագիր, եթե ոչ մեկը տրամադրված չէ:

Խոցելիությունը ինքնին կայանում է SNI-ի սխալ մշակման մեջ (Server Name Indication, տեխնոլոգիա, որը ներդրվել է 2003 թվականին RFC 3546-ում, որպեսզի հաճախորդը պահանջի ճիշտ վկայական դոմենի անվան համար, TLS SNI ստանդարտի բաշխում / WEBO Group Blog / Sudo Null IT News) TLS ձեռքսեղմման ժամանակ: Հարձակվողը պարզապես պետք է ուղարկի SNI, որն ավարտվում է հետշեղով ("") և զրոյական նիշով (" "):

Qualys-ի հետազոտողները string_printing(tls_in.sni) ֆունկցիայի վրիպակ են հայտնաբերել, որը ներառում է «»-ի սխալ դուրսբերում: Արդյունքում, հետադարձ կտրվածքը գրվում է առանց գաղտնազերծման տպագրության պարույրի վերնագրի ֆայլում: Այնուհետև այս ֆայլը կարդացվում է արտոնյալ իրավունքներով spool_read_header() ֆունկցիայի կողմից, ինչը հանգեցնում է կույտի արտահոսքի:

Հարկ է նշել, որ այս պահին Exim-ի մշակողները ստեղծել են խոցելիության PoC՝ հրամանի կատարմամբ հեռավոր խոցելի սերվերի վրա, սակայն այն դեռևս հասանելի չէ հանրությանը: Վրիպակի շահագործման հեշտության պատճառով դա պարզապես ժամանակի հարց է և բավականին կարճ:

Ավելի մանրամասն ուսումնասիրություն Qualys-ի կողմից կարելի է գտնել այստեղ.

Patched Exim - նորից կարկատել: Թարմ հեռակառավարման հրամանի կատարում Exim 4.92-ում մեկ հարցումով

SNI-ի օգտագործումը TLS-ում

Հնարավոր խոցելի հանրային սերվերների թիվը

Համաձայն խոշոր հոսթինգ մատակարարի վիճակագրության E-Soft Inc սեպտեմբերի 1-ի դրությամբ վարձակալած սերվերների վրա 4.92 տարբերակն օգտագործվում է հոսթինգների ավելի քան 70%-ում։

տարբերակ
Սերվերների քանակը
Տոկոս

4.92.1
6471
1.28%

4.92
376436
74.22%

4.91
58179
11.47%

4.9
5732
1.13%

4.89
10700
2.11%

4.87
14177
2.80%

4.84
9937
1.96%

Այլ վարկածներ
25568
5.04%

E-Soft Inc ընկերության վիճակագրություն

Եթե ​​դուք օգտագործում եք որոնման համակարգ Շոպան, ապա սերվերի տվյալների բազայում 5,250,000-ից.

  • մոտ 3,500,000 օգտագործում են Exim 4.92 (մոտ 1,380,000 օգտագործելով SSL/TLS);
  • ավելի քան 74,000՝ օգտագործելով 4.92.1 (մոտ 25,000՝ օգտագործելով SSL/TLS):

Այսպիսով, հանրությանը հայտնի և հասանելի Exim պոտենցիալ խոցելի սերվերները մոտ են 1.5M.

Patched Exim - նորից կարկատել: Թարմ հեռակառավարման հրամանի կատարում Exim 4.92-ում մեկ հարցումով

Որոնեք Exim սերվերներ Շոդանում

պաշտպանություն

  • Ամենապարզ, բայց ոչ խորհուրդ տրվող տարբերակն է չօգտագործել TLS-ը, ինչը կհանգեցնի էլ. հաղորդագրությունների փոխանցմանը:
  • Խոցելիության շահագործումից խուսափելու համար ավելի նախընտրելի կլինի թարմացնել տարբերակը Exim Internet Mailer 4.92.2.
  • Եթե ​​հնարավոր չէ թարմացնել կամ տեղադրել կարկատված տարբերակը, դուք կարող եք ACL սահմանել Exim-ի կազմաձևում այս տարբերակի համար: acl_smtp_mail հետևյալ կանոններով.
    # to be prepended to your mail acl (the ACL referenced
    # by the acl_smtp_mail main config option)
    deny    condition = ${if eq{}{${substr{-1}{1}{$tls_in_sni}}}}
    deny    condition = ${if eq{}{${substr{-1}{1}{$tls_in_peerdn}}}}

Source: www.habr.com