
Nylig, i begynnelsen av sommeren, kom det massevis av oppfordringer om Ä oppdatere Exim til versjon 4.92 pÄ grunn av sÄrbarheten CVE-2019-10149 (). Og nylig ble det kjent at skadelig programvare Sustes har bestemt seg for Ä utnytte denne sÄrbarheten.
NÄ kan alle som har oppdatert, igjen «glede» seg: 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 til 4.92.1 inkludert, som muliggjÞr fjernkjÞring av kode med privilegerte rettigheter. ().
The vulnerability
SÄrbarheten er til stede ved bruk av bÄde GnuTLS- og OpenSSL-biblioteker nÄr en sikker TLS-tilkobling etableres.
IfÞlge utvikleren Heiko Schlittermann bruker konfigurasjonsfilen i Exim som standard ikke TLS, men mange distribusjoner lager nÞdvendige sertifikater under installasjonen og inkluderer en sikker tilkobling. OgsÄ nyere versjoner av Exim setter alternativet tls_advertise_hosts=* og genererer nÞdvendige sertifikater.
avhenger av konfigurasjonen. De fleste distribusjoner aktiverer det som standard, men Exim trenger et sertifikat + nÞkkel for Ä fungere som en TLS-server. Sannsynligvis lager distribusjoner et sertifikat under oppsettet. Nyere Exim-versjoner har alternativet tls_advertise_hosts som standard satt til «*» og oppretter et selvsignert sertifikat, hvis ingen er oppgitt.
Selve sÄrbarheten ligger i feil hÄndtering av SNI (Server Name Indication, en teknologi som ble innfÞrt i 2003 i RFC 3546 for Ä be om riktig sertifikat for domenenavnet fra klienten, ) under TLS-hÄndtrykket. Angriperen trenger bare Ä sende SNI som ender med en bakoverstrek («») og en null-tegn (» «).
Forskere fra Qualys oppdaget en feil i funksjonen string_printing(tls_in.sni), som ligger i feilaktig escaping av «». Som et resultat skrives bakoverstreken ut i uescaped form i overskriftsfilen print spool. Deretter leses denne filen med privilegerte rettigheter av funksjonen spool_read_header(), noe som fÞrer til et heap overflow.
Det er verdt Ä merke seg at utviklerne av Exim forelÞpig har laget en PoC for sÄrbarheten med utsendelse av kommandoer pÄ en fjern sÄrbar server, men den er fremdeles ikke offentlig tilgjengelig. PÄ grunn av enkelheten i utnyttelsen av feilen er det bare et spÞrsmÄl om tid, og det ganske kort.
En mer detaljert undersĂžkelse fra Qualys kan leses .

Bruk av SNI i TLS
Antall potensielt sÄrbare offentlige servere
IfÞlge statistikk fra en stor hostingleverandÞr E-Soft Inc per 1. september, pÄ leide servere brukes versjon 4.92 pÄ mer enn 70% av vertene.
Version
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%
Statistikk fra E-Soft Inc
Hvis du sĂžker i sĂžkemotoren , av de 5,250,000 serverne i databasen:
- omtrent 3,500,000 bruker Exim 4.92 (omtrent 1,380,000 med SSL/TLS);
- over 74,000 bruker 4.92.1 (omtrent 25,000 med SSL/TLS).
Dermed er det anslagsvis 1.5 millioner.

SĂžk etter Exim-servere i Shodan
Beskyttelse
- Den enkleste, men ikke anbefalte lĂžsningen â ikke bruk TLS, hvilket vil fĂžre til at e-postmeldinger sendes i klar tekst.
- Det mest foretrukne for Ä unngÄ utnyttelse av sÄrbarheten vil vÊre Ä oppdatere til versjon .
- Hvis oppdatering eller installasjon av en patch-versjon ikke er mulig, kan du angi 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: habr.com
