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-июлунда изилдөөчү Зеронс TLS колдонууда Exim Mail Transfer агенти (MTA). версиялары үчүн 4.80 үчүн 4.92.1 камтыган, алыстан уруксат берүү артыкчылыктуу укуктар менен кодду аткаруу (CVE-2019-15846).

Аялуулук

Коопсуз TLS туташуусун орнотууда аялуу GnuTLS жана OpenSSL китепканаларын колдонууда болот.

Иштеп чыгуучу Heiko Schlittermann айтымында, Eximдеги конфигурация файлы демейки боюнча TLSти колдонбойт, бирок көптөгөн дистрибьюторлор орнотуу учурунда керектүү сертификаттарды түзүп, коопсуз туташууну иштетет. Ошондой эле Eximдин жаңы версиялары опцияны орнотот tls_advertise_hosts=* жана керектүү сертификаттарды түзүү.

конфигурацияга жараша болот. Көпчүлүк дистрибуциялар аны демейки боюнча иштетет, бирок Eximге TLS сервери катары иштөө үчүн сертификат+ачкыч керек. Мүмкүн, Дистролор орнотуу учурунда Cert түзүшөт. Жаңыраак Эксимдерде 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 бир суроодо жаңы Алыстан буйрукту аткаруу

TLSде SNI колдонуу

Потенциалдуу аялуу коомдук серверлердин саны

Чоң хостинг провайдеринин статистикасына ылайык 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 XNUMX XNUMXден:

  • болжол менен 3,500,000 4.92 1,380,000 Exim XNUMX (SSL/TLS колдонуп XNUMX XNUMX XNUMXге жакын) колдонот;
  • 74,000 аркылуу 4.92.1 25,000ден ашык (SSL/TLS менен XNUMX XNUMXге жакын).

Ошентип, жалпыга белгилүү жана жеткиликтүү Exim потенциалдуу аялуу серверлеринин саны жөнүндө 1.5 миллион.

Patched Exim - кайрадан жамоо. Exim 4.92 бир суроодо жаңы Алыстан буйрукту аткаруу

Шоданда Exim серверлерин изде

коргоо

  • Эң жөнөкөй, бирок сунуш кылынбаган вариант - TLSти колдонбоо, анын натыйжасында электрондук почта билдирүүлөрү ачык түрдө жөнөтүлөт.
  • Алсыздыктын пайдаланылышын болтурбоо үчүн версияга жаңыртуу жакшыраак болот Exim Internet Mailer 4.92.2.
  • Эгер жамаачыланган версияны жаңыртуу же орнотуу мүмкүн болбосо, опция үчүн Exim конфигурациясында ACL орното аласыз. 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