
Pavisam nesen, vasaras sākumā, parādījās masveida aicinājumi atjaunot Exim uz versiju 4.92, ņemot vērā CVE-2019-10149 ievainojamību (). Un nesen noskaidrojās, ka ļaunprogrammatūra Sustes nolēma izmantot šo ievainojamību.
Tagad visi steidzamajā atjaunināšanā var atkal "priecāties": 2019. gada 21. jūlijā pētnieks Zerons atklāja kritisku ievainojamību Exim Mail Transfer agent (MTA) lietojot TLS versijām no 4.80 līdz 4.92.1 ieskaitot, ļaujot attālināti izpildīt kodu ar privileģētām tiesībām. ().
Ievainojamība
Ievainojamība pastāv, ja izmanto GnuTLS vai OpenSSL bibliotēkas, veidojot drošu TLS savienojumu.
Saskaņā ar izstrādātāja Heiko Schlittermann teikto, Exim konfigurācijas fails pēc noklusējuma neizmanto TLS, tomēr daudzi izplatījumi instalācijas laikā izveido nepieciešamās sertifikātus un iekļauj drošu savienojumu. Arī jaunākās Exim versijas iestata opciju tls_advertise_hosts=* un ģenerē nepieciešamos sertifikātus.
atkarīgs no konfigurācijas. Vairums izplatījumu pēc noklusējuma to iespējo, taču Exim nepieciešams sertifikāts+atslēga, lai darbotos kā TLS serveris. Iespējams, izplatījumi izveido sertifikātu instalācijas laikā. Jaunākie Exim satur tls_advertise_hosts opciju, kas noklusēti ir uz "*", un izveido pašparakstītu sertifikātu, ja tāds nav norādīts.
Ievainojamība slēpjas nepareizā SNI (Server Name Indication, tehnoloģija, kas ieviesta 2003. gadā RFC 3546, lai klients varētu pieprasīt atbilstošu sertifikātu domēna nosaukumam, ) laikā TLS roku spiedienā. Uzbrucējam pietiek nosūtīt SNI, kas beidzas ar atpakaļslīdošu simbolu ("\") un nulles simbolu (" ").
Pētnieki no Qualys konstatēja kļūdu funkcijā string_printing(tls_in.sni), kas saistīta ar nepareizu "" ekrāna sagatavošanu. Rezultātā atpakaļslīdošs simbols tiek ierakstīts neekrānotā veidā failā ar galvas drukāšanu. Pēc tam šo failu ar privileģētām tiesībām lasa funkcija spool_read_header(), kas noved pie kaudzes pārplūdes (heap overflow).
Jāatzīmē, ka šobrīd Exim izstrādātāji ir izveidojuši PoC ievainojamību ar komandu izpildi attālinātā ievainojamajā serverī, taču publiskajā pieejamībā tas vēl nav pieejams. Ņemot vērā kļūdas exploitation vienkāršību, tā ir vienīgi laika jautājums, turklāt diezgan īss.
Ar detalizētu uzņēmuma Qualys pētījumu var iepazīties .

SNI izmantošana TLS
Potenciāli neaizsargātu publisko serveru skaits
Saskaņā ar lielā hostinga pakalpojumu sniedzēja statistiku E-Soft Inc uz 1. septembri, īrētajos serveros versija 4.92 tiek izmantota vairāk nekā 70% hostu.
Versija
Serveru skaits
Procenti
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%
Citas versijas
25568
5.04%
E-Soft Inc statistika
Ja vēršamies pie meklētājprogrammas , tad no 5,250,000 serveru datu bāzē:
- apmēram 3,500,000 izmanto Exim 4.92 (apmēram 1,380,000 ar SSL/TLS);
- vairāk nekā 74,000 izmanto 4.92.1 (apmēram 25,000 ar SSL/TLS).
Tādējādi publiski zināmu un pieejamu Exim potenciāli neaizsargātu serveru skaits ir aptuveni 1.5 miljons.

Exim serveru meklēšana Shodan
Aizsardzība
- Visvienkāršākais, bet neieteicamais variants — neizmantot TLS, kas novedīs pie e-pasta ziņojumu pārsūtīšanas atklātā veidā.
- Vēlams, lai izvairītos no ievainojamības izmantošanas, atjaunināt uz versiju .
- Ja atjaunināšana vai labota versija nav iespējama, kodā Exim varat iestatīt ACL opcijai acl_smtp_mail ar šādiem noteikumiem:
# 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}}}}
Avots: habr.com
