Patcha Exim — patcha igen. Nyligen upptĂ€ckte Remote Command Execution i Exim 4.92 i ett enda anrop

Patcha Exim — patcha igen. Nyligen upptĂ€ckte Remote Command Execution i Exim 4.92 i ett enda anrop

Nyligen, i början av sommaren, fanns det en massiv uppmaning att uppgradera Exim till version 4.92 pĂ„ grund av sĂ„rbarheten CVE-2019-10149 (Uppdatera exim till 4.92 omgĂ„ende – aktiv infektion pĂ„gĂ„r / Habr). Och nyligen upptĂ€cktes det att den skadliga Sustes utnyttjade den hĂ€r sĂ„rbarheten.

Nu kan alla som hastigt uppgrupperat sig Äterigen "glÀdjas": Den 21 juli 2019 upptÀckte forskaren Zerons en kritisk sÄrbarhet i Exim Mail Transfer agent (MTA) vid anvÀndning av TLS för versioner frÄn 4.80 till 4.92.1 inklusive, vilket möjliggör fjÀrrkontroll att köra kod med privilegierade rÀttigheter (CVE-2019-15846).

SÄrbarhet

SÄrbarheten förekommer vid anvÀndning av bibliotek som GnuTLS och OpenSSL vid installation av en sÀker TLS-anslutning.

Enligt utvecklaren Heiko Schlittermann anvÀnder Exims konfigurationsfil som standard inte TLS, men mÄnga distributioner skapar nödvÀndiga certifikat och inkluderar en sÀker anslutning vid installation. Dessutom installerar nyare versioner av Exim alternativet tls_advertise_hosts=* och genererar nödvÀndiga certifikat.

beroende pÄ konfigurationen. De flesta distributionerna aktiverar det som standard, men Exim behöver ett certifikat + nyckel för att fungera som en TLS-server. Förmodligen skapar distributionerna ett certifikat under installationen. Nyare Exim-versioner har tls_advertise_hosts-alternativet som standard instÀllt pÄ "*" och skapar ett sjÀlvsignerat certifikat om inget anges.

SÄrbarheten i sig ligger i felaktig hantering av SNI (Server Name Indication, en teknik som introducerades 2003 i RFC 3546 för att lÄta klienten begÀra ett korrekt certifikat för domÀnnamnet, Spridning av standarden TLS SNI / Blogg av WEBO Group / Habr) under TLS-handshake. En angripare behöver bara skicka SNI som slutar med en bakÄtsnedstrÀck («») och en null-tecken (»«).

Forskare frÄn Qualys har upptÀckt en bugg i funktionen string_printing(tls_in.sni), som bestÄr av felaktig escaping av «». Som ett resultat skrivs bakÄtsnedstrÀcket utan escaping i filen för headern print spool. Denna fil lÀses sedan av funktionen spool_read_header() med privilegierade rÀttigheter, vilket leder till en heap overflow.

Det Àr vÀrt att notera att Exims utvecklare för nÀrvarande har skapat en PoC för sÄrbarheten för att köra kommandon pÄ en extern sÄrbar server, men den Àr för nÀrvarande inte offentligt tillgÀnglig. PÄ grund av enkelheten i att utnyttja buggen Àr det bara en tidsfrÄga, och ganska kort tid dessutom.

För mer detaljerad forskning frÄn Qualys kan du lÀsa hÀr.

Patcha Exim — patcha igen. Nyligen upptĂ€ckte Remote Command Execution i Exim 4.92 i ett enda anrop

AnvÀndning av SNI i TLS

Antal potentiellt sÄrbara offentliga servrar

Enligt statistik frÄn en stor hostingleverantör E-Soft Inc den 1 september anvÀnds version 4.92 pÄ mer Àn 70 % av de hyrestjÀnster som finns.

Version
Antal servrar
Procent

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%

Andra versioner
25568
5.04%

Statistik frÄn E-Soft Inc

Om man söker i sökmotorn Shodan, sÄ av 5 250 000 i databasen av servrar:

  • ungefĂ€r 3 500 000 anvĂ€nder Exim 4.92 (ungefĂ€r 1 380 000 med SSL/TLS);
  • över 74 000 anvĂ€nder 4.92.1 (ungefĂ€r 25 000 med SSL/TLS).

DÀrför finns det cirka 1.5 miljoner.

Patcha Exim — patcha igen. Nyligen upptĂ€ckte Remote Command Execution i Exim 4.92 i ett enda anrop

Sökning av Exim-servrar i Shodan

Skydd

  • Det enklaste, men inte rekommenderade alternativet Ă€r att inte anvĂ€nda TLS, vilket leder till att e-postmeddelanden skickas i klartext.
  • Mer att föredra för att undvika utnyttjande av sĂ„rbarheten Ă€r att uppgradera till version Exim Internet Mailer 4.92.2.
  • Om uppgradering eller installation av en patchad version inte Ă€r möjligt kan du stĂ€lla in ACL i Exim-konfigurationen för alternativet acl_smtp_mail med följande regler:
    # 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}}}}

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster