SMTP-Injection in enaio® component AppConnector (CVE-2025-56425)

Home / Blog / SMTP-Injection in enaio® component AppConnector (CVE-2025-56425)

Übersicht

Betroffenes Produkt: enaio® component AppConnector – Version 10.10.0.183 und früher von enaio® 10.10, Version 11.0.0.183 und früher von enaio® 11.0, Version 11.10.0.183 und früher von enaio® 11.10

CVSS-Bewertung (v3.1): 7.7 (Hoch)

Zugewiesene CVE: CVE-2025-56425

Empfehlung: Update zu Version 10.10.0.184, 11.0.0.184 bzw. 11.10.0.184 oder höher

Credit: Simon Holl von der MindBytes GmbH

Der Webserver validiert die Benutzereingaben vor dem Versenden von E-Mails nicht richtig. Angreifer können das nutzen, um die Kommunikation zwischen Webserver und Mailserver zu manipulieren und zusätzliche SMTP-Befehle einzuschleusen.

Denkbare Angriffsszenarien sind beispielsweise das Manipulieren des E-Mail-Absenders und des E-Mail-Inhalts. Phishing-Angriffe sind glaubhafter.

Technische Details

ttDer API-Endpunkt /osrest/api/organization/sendmail erlaubt das Versenden einer E-Mail. Dabei kann der eingeloggte Benutzer verschiedene Parameter selbst bestimmen. Der Webserver filtert die Benutzereingaben vor der Kommunikation mit dem Mailserver nicht richtig. So lassen sich zusätzliche SMTP-Befehle einschleusen.

Nachfolgend ist die HTTP-Anfrage zu sehen, durch die eine gefälschte E-Mail über den API-Endpunkt gesendet wird. Dabei kann der Absender, Empfänger und Inhalt beliebige selbst bestimmt werden.

POST /osrest/api/organization/sendmail HTTP/1.1Host: enaio.int.example.comContent-Type: application/jsonContent-Length: XXX{    "receiver": "receiver@int.example.com;receiver@ext.example.com>\r\nDATA\r\nFrom: \"Admin\" <admin@int.example.com>\r\nTo:<receiver@ext.example.com>\r\nSubject:Pentest\r\nContent-Type: text/html\r\n<html><style>\r\n",    "subject": "Pentest",    "text": "</style></style></style><body>Hallo!<br><br>Dein Account wurde aus Sicherheitsgruenden automatisch gesperrt! Bitte nutze den folgenden Link, um deinen Account zu aktivieren und ein neues Passwort zu vergeben: <a href='https://enaio.mind-bytes.de'>enaio.mind-bytes.de</a>.<br><br><b>Viele Gruesse</b><br>enaio Team</body></html>"}

Der Webserver verarbeitet die HTTP-Anfrage wie folgt:

  1. Das Attribut receiver bestimmt sowohl den Absender als auch den Empfänger.
  2. Die erste E-Mail-Adresse receiver@int.example.com ist sowohl der Absender als auch der Empfänger.
  3. Die weitere, durch Semikolon getrennte E-Mail-Adresse receiver@ext.example.com und die nachfolgenden Zeichen sind der Empfänger. Die Zeichen werden ungefiltert in der SMTP-Kommunikation genutzt.
  4. Die eingefügten Zeichen und insbesondere die Zeilenumbrüche (\r\n) haben im SMTP-Protokoll eine besondere Bedeutung:
    • DATA signalisiert die Eingabe der eigentlichen Nachricht
    • From, To und Subject legen fest, welcher Absender, Empfänger und Betreff im E-Mail-Client angezeigt werden sollen. Das SMTP-Protokoll erzwingt an dieser Stelle nicht die gleichen E-Mail-Adressen wie die zuvor in Punkt 2 und 3 angegebenen Adressen.
    • Über Content-Type wird angegeben, dass die E-Mail HTML-Inhalt haben soll.
    • Mit <html><style> beginnt der HTML-Inhalt und insbesondere ein style-Tag, wodurch die nächsten vom Server gesendeten Zeichen in der E-Mail selbst als (ungültige) Style-Definition interpretiert und dadurch unsichtbar werden.
  5. Das Attibut text definiert den eigentlichen Inhalt der E-Mail. Da das receiver-Attribut in der SMTP-Kommunikation wiederholt genutzt wird, muss das style-Tag im E-Mail-Inhalt mehrfach geschlossen werden. Erst danach kann dann der sichtbare HTML-Inhalt definiert werden.

Die nachfolgende Abbildung zeigt die empfangene E-Mail nachdem wir die obige HTTP-Anfrage mit den Sitzungsinformationen eines eingeloggten Benutzers gesendet haben.

Empfangene manipulierte E-Mail

Projekt in Planung?

Egal, ob Pentest, Red Teaming oder individueller Wunsch –
wir freuen uns, mit dir zu sprechen!