Π‘ΠΎΠ²ΡΠ΅ΠΌ Π½Π΅Π΄Π°Π²Π½ΠΎ, Π² Π½Π°ΡΠ°Π»Π΅ Π»Π΅ΡΠ°, ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΌΠ°ΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ·ΡΠ²Ρ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Exim Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 4.92 ΠΈΠ·-Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ CVE-2019-10149 (
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΡΠΊΡΡΡΠ΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ²ΡΠΈΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠΏΡΡΡ Β«ΠΏΠΎΡΠ°Π΄ΠΎΠ²Π°ΡΡΡΡΒ»: 21 ΠΈΡΠ»Ρ 2019 Π³. ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ Zerons ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π² Exim Mail Transfer agent (MTA) ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ TLS Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΉ ΠΎΡ 4.80 Π΄ΠΎ 4.92.1 Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄ Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠ°Π²Π°ΠΌΠΈ (
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΊΠ°ΠΊ 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 Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ,
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Qualys ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ Π±Π°Π³ Π² ΡΡΠ½ΠΊΡΠΈΠΈ string_printing(tls_in.sni), ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΌ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ «». Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΡΠ° Π² Π½Π΅ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² ΡΠ°ΠΉΠ» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² print spool. ΠΠ°Π»Π΅Π΅ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠ°Π²Π°ΠΌΠΈ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ spool_read_header(), ΡΡΠΎ Π²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΠΈ (heap overflow).
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Exim ΡΠΎΠ·Π΄Π°Π»ΠΈ PoC ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΡΠ·Π²ΠΈΠΌΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½ΠΎ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΎΠ½ ΠΏΠΎΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. Π ΡΠΈΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ Π±Π°Π³Π° ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ.
Π‘ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Qualys ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ 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
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅
- ΠΎΠΊΠΎΠ»ΠΎ 3,500,000 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Exim 4.92 (ΠΎΠΊΠΎΠ»ΠΎ 1,380,000 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SSL/TLS);
- Π±ΠΎΠ»Π΅Π΅ 74,000 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ 4.92.1 (ΠΎΠΊΠΎΠ»ΠΎ 25,000 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SSL/TLS).
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Exim ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΠ·Π²ΠΈΠΌΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π½Π°ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° 1.5 ΠΌΠ»Π½.
ΠΠΎΠΈΡΠΊ 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