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

Der 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.1
Host: enaio.int.example.com
Content-Type: application/json
Content-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 (Punkt 2 und 3) angegebenen Adressen.
    • Über Conten-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 eingeliggten 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!