Patched Exim - patch igen. Färsk körning av fjärrkommando i Exim 4.92 i en begäran

Patched Exim - patch igen. Färsk körning av fjärrkommando i Exim 4.92 i en begäran

På senare tid, på försommaren, fanns det utbredda krav på att Exim skulle uppdateras till version 4.92 på grund av CVE-2019-10149 sårbarheten (Uppdatera snabbt Exim till 4.92 - det finns en aktiv infektion / Sudo Null IT News). Och nyligen visade det sig att Sustes malware bestämde sig för att dra fördel av denna sårbarhet.

Nu kan alla som snabbt uppdaterade "glädjas" igen: den 21 juli 2019 upptäckte forskaren Zerons en kritisk sårbarhet i Exim Mail Transfer Agent (MTA) när du använder TLS för versioner från 4.80 4.92.1 upp inklusive, tillåter fjärrkontroll exekvera kod med privilegierade rättigheter (CVE-2019-15846).

Sårbarhet

Sårbarheten finns när du använder både GnuTLS- och OpenSSL-biblioteken när du upprättar en säker TLS-anslutning.

Enligt utvecklaren Heiko Schlittermann använder inte konfigurationsfilen i Exim TLS som standard, men många distributioner skapar de nödvändiga certifikaten under installationen och möjliggör en säker anslutning. Även nyare versioner av Exim installerar alternativet tls_advertise_hosts=* och generera de nödvändiga certifikaten.

beror på konfigurationen. De flesta distros aktiverar det som standard, men Exim behöver ett certifikat+nyckel för att fungera som en TLS-server. Förmodligen skapar Distros ett certifikat under installationen. Nyare Exims har alternativet tls_advertise_hosts som standard till "*" och skapar ett självsignerat certifikat, om inget tillhandahålls.

Själva sårbarheten ligger i felaktig behandling av SNI (Server Name Indication, en teknik som introducerades 2003 i RFC 3546 för att en klient ska begära rätt certifikat för ett domännamn, Distribution av TLS SNI-standarden / WEBO Group Blog / Sudo Null IT News) under ett TLS-handslag. En angripare behöver bara skicka ett SNI som slutar med ett snedstreck ("") och ett nolltecken (" ").

Forskare från Qualys har upptäckt en bugg i funktionen string_printing(tls_in.sni), som involverar felaktig escape av "". Som ett resultat av detta skrivs det omvända snedstrecket utan escape till utskriftsspoolhuvudfilen. Denna fil läses sedan med privilegierade rättigheter av spool_read_header()-funktionen, vilket leder till heap-spill.

Det är värt att notera att Exim-utvecklare för närvarande har skapat en PoC av sårbarheter med exekvering av kommandon på en sårbar fjärrserver, men den är ännu inte tillgänglig för allmänheten. På grund av hur lätt det är att utnyttja buggen är det bara en tidsfråga och ganska kort.

En mer detaljerad studie av Qualys kan hittas här.

Patched Exim - patch igen. Färsk körning av fjärrkommando i Exim 4.92 i en begäran

Använder SNI i TLS

Antal potentiellt sårbara offentliga servrar

Enligt statistik från en stor värdleverantör E-Soft Inc från och med den 1 september, på hyrda servrar, används version 4.92 i mer än 70 % av värdarna.

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%

E-Soft Inc företagsstatistik

Om du använder en sökmotor shodan, sedan av 5,250,000 XNUMX XNUMX i serverdatabasen:

  • cirka 3,500,000 4.92 1,380,000 använder Exim XNUMX (cirka XNUMX XNUMX XNUMX använder SSL/TLS);
  • över 74,000 4.92.1 med 25,000 (cirka XNUMX XNUMX använder SSL/TLS).

Således finns det ungefär offentligt kända och tillgängliga Exim potentiellt sårbara servrar 1.5 miljoner.

Patched Exim - patch igen. Färsk körning av fjärrkommando i Exim 4.92 i en begäran

Sök efter Exim-servrar i Shodan

skydd

  • Det enklaste, men inte rekommenderade, alternativet är att inte använda TLS, vilket kommer att resultera i att e-postmeddelanden vidarebefordras i klartext.
  • För att undvika exploatering av sårbarheten skulle det vara bättre att uppdatera till versionen Exim Internet Mailer 4.92.2.
  • Om det är omöjligt att uppdatera eller installera en korrigerad version kan du ställa in en 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: will.com

Lägg en kommentar