Patched Exim - patch igjen. Ny fjernkommandoutførelse i Exim 4.92 på én forespørsel

Patched Exim - patch igjen. Ny fjernkommandoutførelse i Exim 4.92 på én forespørsel

Mer nylig, på forsommeren, var det omfattende oppfordringer om at Exim skulle oppdateres til versjon 4.92 på grunn av CVE-2019-10149-sårbarheten (Oppdater Exim snarest til 4.92 - det er en aktiv infeksjon / Sudo Null IT News). Og nylig viste det seg at Sustes malware bestemte seg for å dra nytte av denne sårbarheten.

Nå kan alle de som raskt har oppdatert "glede seg" igjen: 21. juli 2019 oppdaget forsker Zerons en kritisk sårbarhet i Exim Mail Transfer Agent (MTA) ved bruk av TLS for versjoner fra 4.80 4.92.1 opp inkluderende, tillater fjernkontroll utfør kode med privilegerte rettigheter (CVE-2019-15846).

Sårbarhet

Sårbarheten er tilstede når du bruker både GnuTLS- og OpenSSL-bibliotekene når du etablerer en sikker TLS-tilkobling.

Ifølge utvikler Heiko Schlittermann bruker ikke konfigurasjonsfilen i Exim TLS som standard, men mange distribusjoner lager de nødvendige sertifikatene under installasjonen og muliggjør en sikker tilkobling. Også nyere versjoner av Exim installerer alternativet tls_advertise_hosts=* og generere de nødvendige sertifikatene.

avhenger av konfigurasjonen. De fleste distroer aktiverer det som standard, men Exim trenger et sertifikat+nøkkel for å fungere som en TLS-server. Sannsynligvis lager Distros et sertifikat under oppsett. Nyere Exims har tls_advertise_hosts-alternativet som standard til "*" og oppretter et selvsignert sertifikat, hvis ingen er oppgitt.

Selve sårbarheten ligger i feil behandling av SNI (Server Name Indication, en teknologi introdusert i 2003 i RFC 3546 for at en klient skal be om riktig sertifikat for et domenenavn, Distribusjon av TLS SNI-standarden / WEBO Group Blog / Sudo Null IT News) under et TLS-håndtrykk. En angriper trenger bare å sende en SNI som slutter med en omvendt skråstrek ("") og et nulltegn (" ").

Forskere fra Qualys har oppdaget en feil i funksjonen string_printing(tls_in.sni), som involverer feil escape av "". Som et resultat skrives omvendt skråstrek uten escape til utskriftsspoloverskriftsfilen. Denne filen blir deretter lest med privilegerte rettigheter av spool_read_header()-funksjonen, noe som fører til heap-overflyt.

Det er verdt å merke seg at for øyeblikket har Exim-utviklere opprettet en PoC av sårbarheter med utførelse av kommandoer på en ekstern sårbar server, men den er ennå ikke offentlig tilgjengelig. På grunn av den enkle utnyttelsen av feilen, er det bare et spørsmål om tid, og ganske kort.

En mer detaljert studie av Qualys kan bli funnet her.

Patched Exim - patch igjen. Ny fjernkommandoutførelse i Exim 4.92 på én forespørsel

Bruker SNI i TLS

Antall potensielt sårbare offentlige servere

I følge statistikk fra en stor hostingleverandør E-Soft Inc fra 1. september, på leide servere, er versjon 4.92 brukt i mer enn 70 % av vertene.

Versjon
Antall servere
prosent

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%

Andre versjoner
25568
5.04%

E-Soft Inc bedriftsstatistikk

Hvis du bruker en søkemotor Shodan, deretter av 5,250,000 XNUMX XNUMX i serverdatabasen:

  • ca. 3,500,000 bruker Exim 4.92 (ca. 1,380,000 bruker SSL/TLS);
  • over 74,000 4.92.1 som bruker 25,000 (ca. XNUMX XNUMX bruker SSL/TLS).

Dermed er offentlig kjente og tilgjengelige Exim potensielt sårbare servere ca 1.5 millioner.

Patched Exim - patch igjen. Ny fjernkommandoutførelse i Exim 4.92 på én forespørsel

Søk etter Exim-servere i Shodan

beskyttelse

  • Det enkleste, men ikke anbefalte, alternativet er å ikke bruke TLS, noe som vil føre til at e-postmeldinger videresendes i det klare.
  • For å unngå utnyttelse av sårbarheten vil det være mer å foretrekke å oppdatere til versjonen Exim Internet Mailer 4.92.2.
  • Hvis det er umulig å oppdatere eller installere en lappet versjon, kan du angi en ACL i Exim-konfigurasjonen for alternativet acl_smtp_mail med følgende 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}}}}

Kilde: www.habr.com

Legg til en kommentar