Patched Exim - patch wer. Fresh Remote Command Execution yn Exim 4.92 yn ien fersyk

Patched Exim - patch wer. Fresh Remote Command Execution yn Exim 4.92 yn ien fersyk

Mear resint, yn 'e iere simmer, wiene d'r wiidferspraat oproppen foar Exim om te wurde bywurke nei ferzje 4.92 fanwegen de CVE-2019-10149 kwetsberens (Update Exim driuwend nei 4.92 - d'r is in aktive ynfeksje / Sudo Null IT Nijs). En koartlyn die bliken dat de Sustes malware besletten om te profitearjen fan dizze kwetsberens.

No kinne al dyjingen dy't driuwend bywurke hawwe wer "bliid wêze": op 21 july 2019 ûntduts ûndersiker Zerons in krityske kwetsberens yn Exim Mail Transfer Agent (MTA) by it brûken fan TLS foar ferzjes fan 4.80 nei 4.92.1 ynklusyf, wêrtroch remote koade útfiere mei befoarrjochte rjochten (CVE-2019-15846).

Kwetsberens

De kwetsberens is oanwêzich by it brûken fan sawol de GnuTLS- as OpenSSL-biblioteken by it oprjochtsjen fan in feilige TLS-ferbining.

Neffens ûntwikkelder Heiko Schlittermann brûkt it konfiguraasjetriem yn Exim gjin TLS standert, mar in protte distribúsjes meitsje de nedige sertifikaten by ynstallaasje en meitsje in feilige ferbining mooglik. Ek nijere ferzjes fan Exim ynstallearje de opsje tls_advertise_hosts=* en generearje de nedige sertifikaten.

hinget ôf fan de konfiguraasje. De measte distros skeakelje it standert yn, mar Exim hat in sertifikaat+kaai nedich om as TLS-tsjinner te wurkjen. Wierskynlik meitsje Distros in sertifikaat by opset. Nijere Exims hawwe de tls_advertise_hosts-opsje standert op "*" en meitsje in sels ûndertekene sertifikaat, as gjinien wurdt levere.

De kwetsberens sels leit yn ferkearde ferwurking fan SNI (Server Name Indication, in technology yntrodusearre yn 2003 yn RFC 3546 foar in kliïnt om it juste sertifikaat foar in domeinnamme oan te freegjen, Ferdieling fan de TLS SNI standert / WEBO Group Blog / Sudo Null IT Nijs) tidens in TLS-handshake. In oanfaller moat gewoan in SNI stjoere dy't einiget mei in backslash ("") en in nul karakter (" ").

Undersikers fan Qualys hawwe in brek ûntdutsen yn 'e string_printing(tls_in.sni) funksje, wêrby't it ferkeard ûntsnappen fan "". As gefolch, de backslash wurdt skreaun unescaped nei de print spool header triem. Dizze triem wurdt dan lêzen mei befoarrjochte rjochten troch de funksje spool_read_header (), dy't liedt ta heap oerstreaming.

It is de muoite wurdich op te merken dat op it stuit Exim-ûntwikkelders in PoC hawwe makke fan kwetsberens mei de útfiering fan kommando's op in kwetsbere tsjinner op ôfstân, mar it is noch net iepenbier beskikber. Fanwegen it gemak fan eksploitaasje fan 'e brek is it gewoan in kwestje fan tiid, en frij koart.

In mear detaillearre stúdzje fan Qualys is te finen hjir.

Patched Exim - patch wer. Fresh Remote Command Execution yn Exim 4.92 yn ien fersyk

SNI brûke yn TLS

Oantal mooglik kwetsbere iepenbiere servers

Neffens statistiken fan in grutte hostingprovider E-Soft Inc fan 1. spetimber, op hierde tsjinners, ferzje 4.92 wurdt brûkt yn mear as 70% fan de hosts.

Ferzje
Oantal tsjinners
prosint

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%

Oare ferzjes
25568
5.04%

Statistiken foar E-Soft Inc

As jo ​​​​in sykmasine brûke shōdan, dan út 5,250,000 yn 'e serverdatabase:

  • oer 3,500,000 brûke Exim 4.92 (sawat 1,380,000 mei SSL / TLS);
  • oer 74,000 brûke 4.92.1 (sawat 25,000 mei SSL / TLS).

Sa, iepenbier bekende en tagonklike Exim potinsjeel kwetsbere servers oantal oer 1.5M.

Patched Exim - patch wer. Fresh Remote Command Execution yn Exim 4.92 yn ien fersyk

Sykje nei Exim-tsjinners yn Shodan

beskerming

  • De ienfâldichste, mar net oan te rieden, opsje is om TLS net te brûken, wat sil resultearje yn e-postberjochten yn it dúdlik trochstjoerd.
  • Om eksploitaasje fan 'e kwetsberens te foarkommen, soe it better wêze om te aktualisearjen nei de ferzje Exim Internet Mailer 4.92.2.
  • As it ûnmooglik is om in patched ferzje te aktualisearjen of te ynstallearjen, kinne jo in ACL ynstelle yn 'e Exim-konfiguraasje foar de opsje acl_smtp_mail mei de folgjende regels:
    # 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}}}}

Boarne: www.habr.com

Add a comment