
Heel recent, begin deze zomer, zijn er massale oproepen verschenen om Exim bij te werken naar versie 4.92 vanwege de kwetsbaarheid CVE-2019-10149 (). En onlangs werd duidelijk dat de malware Sustes deze kwetsbaarheid besloot te exploiteren.
Nu kunnen alle dringend bijgewerkte gebruikers weer 'blij' zijn: op 21 juli 2019 ontdekte onderzoeker Zerons een kritieke kwetsbaarheid in Exim Mail Transfer Agent (MTA) bij gebruik van TLS voor versies van 4.80 tot 4.92.1 inclusief, die op afstand code met geprivilegieerde rechten kan uitvoeren. ().
Kwetsbaarheid
De kwetsbaarheid is aanwezig bij het gebruik van zowel de GnuTLS- als de OpenSSL-bibliotheken bij het opzetten van een beveiligde TLS-verbinding.
Volgens ontwikkelaar Heiko Schlittermann gebruikt het configuratiebestand in Exim standaard geen TLS, maar veel distributies creƫren tijdens de installatie de vereiste certificaten en activeren een beveiligde verbinding. Ook nieuwere versies van Exim installeren de optie tls_advertise_hosts=* en genereren de vereiste certificaten.
hangt af van de configuratie. De meeste distributies hebben het standaard ingeschakeld, maar Exim heeft een certificaat+sleutel nodig om als een TLS-server te functioneren. Waarschijnlijk creƫren distributies een certificaat tijdens de installatie. Nieuwere Exims hebben de tls_advertise_hosts optie standaard ingesteld op "*" en creƫren een zelfondertekend certificaat als er geen wordt opgegeven.
De kwetsbaarheid zelf ligt in de onjuiste verwerking van SNI (Server Name Indication, een technologie geïntroduceerd in 2003 in RFC 3546 voor het opvragen door de cliënt van een correct certificaat voor de domeinnaam, ) tijdens de TLS-handshake. De aanvaller hoeft alleen maar een SNI te versturen die eindigt op een backslash ('') en een null-teken (' '),
Onderzoekers van Qualys ontdekten een bug in de functie string_printing(tls_in.sni), die te maken heeft met onjuiste escapering van ''. Als gevolg hiervan wordt de omgekeerde schuine streep onterecht in niet-geƫscaleerde vorm in het koptekstbestand print spool geschreven. Dit bestand met geprivilegieerde rechten wordt vervolgens gelezen door de functie spool_read_header(), wat leidt tot een stapeloverloop (heap overflow).
Het is vermeldenswaard dat de ontwikkelaars van Exim momenteel een PoC van de kwetsbaarheid hebben gecreƫerd waarmee commando's op een kwetsbare server op afstand kunnen worden uitgevoerd, maar deze is nog niet publiek beschikbaar. Gezien de eenvoud van het exploiteren van de bug is het slechts een kwestie van tijd, en dat is vrij kort.
Voor een meer gedetailleerd onderzoek van Qualys kan men zich melden .

Gebruik van SNI in TLS
Aantal potentieel kwetsbare publieke servers
Volgens een grote hostingprovider E-Soft Inc op 1 september wordt versie 4.92 gebruikt op meer dan 70% van de gehuurde servers.
Versie
Aantal servers
Percentage
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%
Andere versies
25568
5.04%
Statistieken van E-Soft Inc
Als we de zoekmachine , bekijken van de 5.250.000 servers in de database:
- ongeveer 3.500.000 gebruiken Exim 4.92 (ongeveer 1.380.000 met SSL/TLS);
- meer dan 74.000 gebruiken 4.92.1 (ongeveer 25.000 met SSL/TLS).
Dus het aantal publiek bekende en toegankelijke potentieel kwetsbare Exim-servers bedraagt ongeveer 1,5 miljoen.

Zoeken naar Exim-servers in Shodan
Beveiliging
- De eenvoudigste, maar niet aanbevolen optie - gebruik geen TLS, wat leidt tot het verzenden van e-mails in platte tekst.
- Een meer voorkeur heeft om de kwetsbaarheid te vermijden is te upgraden naar de versie .
- Als het niet mogelijk is om te upgraden of een gepatchte versie te installeren, kan een ACL in de Exim-configuratie worden ingesteld voor de optie acl_smtp_mail met de volgende regels:
# 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}}}}
Bron: habr.com
