ΠŸΡ€ΠΎΠΏΠ°Ρ‚Ρ‡ΠΈΠ» Exim β€” ΠΏΡ€ΠΎΠΏΠ°Ρ‚Ρ‡ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π·. Π‘Π²Π΅ΠΆΠ΅Π΅ Remote Command Execution Π² Exim 4.92 Π² ΠΎΠ΄ΠΈΠ½ запрос

ΠŸΡ€ΠΎΠΏΠ°Ρ‚Ρ‡ΠΈΠ» Exim — ΠΏΡ€ΠΎΠΏΠ°Ρ‚Ρ‡ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π·. Π‘Π²Π΅ΠΆΠ΅Π΅ Remote Command Execution Π² Exim 4.92 Π² ΠΎΠ΄ΠΈΠ½ запрос

БовсСм Π½Π΅Π΄Π°Π²Π½ΠΎ, Π² Π½Π°Ρ‡Π°Π»Π΅ Π»Π΅Ρ‚Π°, появились массовыС ΠΏΡ€ΠΈΠ·Ρ‹Π²Ρ‹ ΠΊ обновлСнию Exim Π΄ΠΎ вСрсии 4.92 ΠΈΠ·-Π·Π° уязвимости CVE-2019-10149 (Π‘Ρ€ΠΎΡ‡Π½ΠΎ обновляйтС exim Π΄ΠΎ 4.92 β€” ΠΈΠ΄Ρ‘Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π·Π°Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ / Π₯Π°Π±Ρ€). А Π½Π° днях Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ врСдонос Sustes Ρ€Π΅ΡˆΠΈΠ» Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этой ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС экстрСнно обновившиСся ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡΡ‚ΡŒ Β«ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡΒ»: 21 июля 2019 Π³. ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Zerons ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Exim Mail Transfer agent (MTA) ΠΏΡ€ΠΈ использовании TLS для вСрсий ΠΎΡ‚ 4.80 Π΄ΠΎ 4.92.1 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ с ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ (CVE-2019-15846).

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ присутствуСт ΠΏΡ€ΠΈ использовании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΊΠ°ΠΊ GnuTLS, Ρ‚Π°ΠΊ ΠΈ OpenSSL ΠΏΡ€ΠΈ установкС Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ TLS-соСдинСния.

По словам Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Heiko Schlittermann, Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² Exim ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ TLS, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ дистрибутивы Π²ΠΎ врСмя установки ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ сСртификаты ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ соСдинСниС. Π’Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ вСрсии Exim ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ ΠΎΠΏΡ†ΠΈΡŽ tls_advertise_hosts=* ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ сСртификаты.

depends on the configuration. Most distros enable it by default, but Exim needs a certificate+key to work as a TLS server. Probably Distros create a Cert during setup. Newer Exims have the tls_advertise_hosts option defaulting to «*» and create a self signed certificate, if none is provided.

Π‘Π°ΠΌΠ° ΠΆΠ΅ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ SNI (Server Name Indication, тСхнология, ввСдСнная Π² 2003 Π² RFC 3546 для запроса ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ сСртификата для Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, РаспространСниС стандарта TLS SNI / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ WEBO Group / Π₯Π°Π±Ρ€) Π² Ρ…ΠΎΠ΄Π΅ TLS-рукопоТатия. Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ достаточно ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ SNI, ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ бэкслСшСм («») ΠΈ Π½ΡƒΠ»Π»-символом (» «).

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Qualys ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ Π±Π°Π³ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ string_printing(tls_in.sni), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌ экранировании «». Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ происходит запись ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ слСша Π² нСэкранированном Π²ΠΈΠ΄Π΅ Π² Ρ„Π°ΠΉΠ» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² print spool. Π”Π°Π»Π΅Π΅ этот Ρ„Π°ΠΉΠ» с ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ считываСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ spool_read_header(), Ρ‡Ρ‚ΠΎ Π²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΡƒΡ‡ΠΈ (heap overflow).

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Exim создали PoC уязвимости с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ уязвимом сСрвСрС, Π½ΠΎ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ доступС ΠΎΠ½ ΠΏΠΎΠΊΠ° отсутствуСт. Π’ силу простоты эксплуатации Π±Π°Π³Π° это всСго лишь вопрос Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ довольно ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ.

Π‘ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ исслСдованиСм ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Qualys ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ здСсь.

ΠŸΡ€ΠΎΠΏΠ°Ρ‚Ρ‡ΠΈΠ» Exim — ΠΏΡ€ΠΎΠΏΠ°Ρ‚Ρ‡ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π·. Π‘Π²Π΅ΠΆΠ΅Π΅ Remote Command Execution Π² Exim 4.92 Π² ΠΎΠ΄ΠΈΠ½ запрос

ИспользованиС SNI в TLS

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ уязвимых ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… сСрвСров

По статистикС ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ³ΠΎ хостинг-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° E-Soft Inc Π½Π° 1 сСнтября, Π½Π° Π°Ρ€Π΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сСрвСрах вСрсия 4.92 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 70% хостов.

Version
Number of Servers
Percent

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%

Other versions
25568
5.04%

Бтатистика ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ E-Soft Inc

Если ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ поисковой систСмС Shodan, Ρ‚ΠΎ ΠΈΠ· 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.5 ΠΌΠ»Π½.

ΠŸΡ€ΠΎΠΏΠ°Ρ‚Ρ‡ΠΈΠ» Exim — ΠΏΡ€ΠΎΠΏΠ°Ρ‚Ρ‡ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π·. Π‘Π²Π΅ΠΆΠ΅Π΅ Remote Command Execution Π² Exim 4.92 Π² ΠΎΠ΄ΠΈΠ½ запрос

Поиск Exim-сСрвСров Π² Shodan

Π—Π°Ρ‰ΠΈΡ‚Π°

  • Π‘Π°ΠΌΡ‹ΠΉ простой, Π½ΠΎ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 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}}}}

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com