Apache Camel: Schwachstellen großgeschrieben

Zwei neue Sicherheitslücken in Apache Camel sollten von Anwendern sofort beachtet werden. Am 9. März 2025 veröffentlichte Apache die Schwachstelle CVE-2025-27636 (CVSS 5.6), eine CVE (Common Vulnerabilities and Exposures) für die Remote Code Execution (RCE). Zwei Tage später, am 11. März, meldete die Security Intelligence Group (SIG) von Akamai eine Technik zur Umgehung des ursprünglichen Patchs, woraufhin CVE-2025-29891 (CVSS 4.2) am 12. März veröffentlicht wurde.

Grüne Grafik mit stilisiertem Kamel in einer Wüstenlandschaft. Rechts daneben ein Button mit der Aufschrift ‚RCE in Apache Camel‘.

Obwohl die beiden Schwachstellen vom Authorized Data Publisher (ADP) der Cybersecurity and Infrastructure Security Agency (CISA) nur mit moderaten CVSS-Scores bewertet wurden, können sie je nach Konfiguration der betroffenen Camel-Instanz schwerwiegende Auswirkungen haben. Beide CVEs haben dieselbe Ursache: eine unsachgemäße Filterung von HTTP-Headern oder HTTP-Parametern bei der Kommunikation mit einer Apache-Camel-Instanz. Wie im Titel angedeutet, geht es um die Groß- und Kleinschreibung. Während diese beim Filtern der Parameter berücksichtigt wurde, wurden die Argumente selbst ohne Berücksichtigung der Groß- und Kleinschreibung angewendet. Darüber hinaus tragen der öffentlich verfügbare PoC-Code (Proof of Concept) und eine relativ vollständige technische Beschreibung zu dem Risiko bei.

Greenbone kann sowohl CVE-2025-27636 als auch CVE-2025-29891 mit Schwachstellentests erkennen, die aktiv nach ausnutzbaren HTTP-Endpunkten suchen. Schauen wir uns die Details an.

Was ist Apache Camel?

Apache Camel ist eine beliebte Open-Source-Java-Bibliothek zur Integration verschiedener Komponenten einer verteilten Unternehmenssystemarchitektur wie APIs oder Microservices. Sie stellt eine vielseitige Plattform für Routing und Datenvermittlung dar, die auf dem Konzept der Enterprise Integration Patterns (EIPs) für das Architekturdesign von Unternehmenssystemen basiert. Apache Camel baut auf EIPs auf und bietet Möglichkeiten zur Implementierung dieser Muster über die domänenspezifischen Sprachen (DSL), die Java, XML, Groovy, YAML und andere umfassen.

Im Jahr 2021 hatte Apache Camel einen Anteil von 3,03 % am Markt für Enterprise Application Integration. Die Software wird von über 5.600 Unternehmen eingesetzt, von denen etwa die Hälfte in den USA ansässig ist. Vertreten ist Camel vor allem bei IT-Technologie- und Dienstleistungen (33 %), in der Softwarebranche (12 %) und bei Finanzdienstleistungen (6 %).

Zwei CVEs in Apache Camel erlauben Header-Injection

Wenn eine der HTTP-basierten Komponenten von Camel Anfragen bearbeitet, soll ein Standardfilter die Offenlegung sensibler Daten oder die Ausführung interner Befehle verhindern. Aufgrund einer fehlerhaften Filterregel, die zwischen Groß- und Kleinschreibung unterscheidet, wurden jedoch nur exakt übereinstimmende Header gefiltert. In der Programmlogik wurden diese Header allerdings nachgelagert ohne Berücksichtigung der Groß- und Kleinschreibung angewendet, wodurch der Filter umgangen werden konnte. Durch die Änderung der Groß- und Kleinschreibung des ersten Zeichens des Headernamens konnte ein Angreifer den Filter umgehen und beliebige Header einschleusen.

Die gute Nachricht ist, dass entweder die camel-bean- oder die camel-exec-Komponente in Kombination mit einer http-basierten Komponente wie camel-http, camel-http4, camel-rest, camel-servlet oder anderen aktiviert werden muss. Außerdem ist die Ausnutzung auf interne Methoden innerhalb des im HTTP-Request-URI angegebenen Bereichs beschränkt. Ein letzter Trost ist, dass diese Schwachstelle nicht als unauthentifizierte Schwachstelle eingestuft wurde. Deshalb ist sie nicht ausnutzbar, wenn die Systementwickler keine Authentifizierung und Autorisierung für eine Camel-HTTP-API implementiert haben.

Am oberen Ende des Risikospektrums kann ein Angreifer, wenn die Camel Exec-Komponente aktiviert und gezielt eingesetzt wird, als Benutzer, der den Camel-Prozess steuert, einen beliebigen RCE ausführen. Dies geschieht, indem der CamelExecCommandExecutable-Header gesendet wird, um einen beliebigen Shell-Befehl anzugeben, der die im Back-End konfigurierten Befehle überschreibt. Wenn die ausnutzbaren Camel-HTTP-APIs über das Internet zugänglich sind, ist das Risiko besonders hoch. Diese Schwachstelle könnte jedoch auch von einem Insider genutzt werden, um sich innerhalb eines Netzwerks seitlich zu bewegen, oder von Angreifern, die sich einen ersten Zugang zum internen Netzwerk einer Organisation verschafft haben.

Eine technische Beschreibung der Exploit-Kette und des Proof of Concept wurde von Akamai zur Verfügung gestellt.

Was ist der geeignete CVSS-Score?

Obwohl CVE-2025-27636 (CVSS 5.6) und CVE-2025-29891 (CVSS 4.2) als mäßig schwer eingestuft wurden, könnten sie kritische Auswirkungen haben, wenn entweder die camel-bean- oder camel-exec-Komponenten in Kombination mit http-basierten Komponenten aktiviert werden. Die Situation macht einige Einschränkungen des CVSS-Scorings (Common Vulnerability Scoring System) deutlich.

Akamai-Forscher berichten, dass die Schwachstelle trivial auszunutzen ist, und haben PoC-Code veröffentlicht, was das Risiko erhöht. Das bedeutet, dass die CVSS-Angriffskomplexität (AC) auf niedrig (L) gesetzt werden sollte. Jedoch hat der CISA-ADP die Angriffskomplexität angesichts dieser Tatsachen als hoch (AC:H) bewertet. Red Hat hat diesen Faktoren Rechnung getragen und den CVSS-Wert für CVE-2025-27636 auf 6,3 erhöht.

Außerdem hat der CISA-ADP für CVE-2025-29891 keine Auswirkungen auf die Vertraulichkeit festgestellt, obwohl die Möglichkeit einer willkürlichen RCE besteht. Wenn jedoch eine Apache Camel-Instanz eine anfällige Konfiguration aufweist, ist eine Bewertung mit hoher Auswirkung für Vertraulichkeit (C), Integrität (I) und Verfügbarkeit (A) gerechtfertigt, wodurch sich die Kritikalität auf CVSS 9.8 erhöht.

Andererseits hat der CISA-ADP den Wert „Keine“ (N) für die erforderlichen Berechtigungen (PR) zugewiesen. Obwohl der PoC von Akamai keine HTTPS-Verbindung oder Authentifizierung verwendet, wäre es äußerst fahrlässig, eine unverschlüsselte und nicht authentifizierte API zu betreiben. Apache Camel unterstützt die Java Secure Socket Extension (JSSE) API für Transport Layer Security (TLS) oder die Verwendung eines KeyCloak Single Sign-On (SSO) Autorisierungsservers. Camel-Instanzen, bei denen eine Form der Client-Authentifizierung aktiviert ist, sind vor einer Ausnutzung geschützt. In den meisten Fällen sollte der PR-Wert auf Niedrig (L) oder Hoch (H) eingestellt werden, was zu einem verminderten CVSS von 7,3 oder 8,8 führt.

Darüber hinaus wurden die CVEs mit dem Scope-Wert Unchanged (UC) versehen. Gemäß der CVSS v3.1 Spezifikation: „Die Scope-Metrik erfasst, ob eine Schwachstelle in einer verwundbaren Komponente Auswirkungen auf Ressourcen in Komponenten außerhalb ihres Sicherheitsbereichs hat.“ Die Ausführung beliebiger Shell-Befehle auf dem kompromittierten System wird normalerweise mit dem Wert Changed (C) bewertet. Wenn der Camel-Prozess dem Linux/Unix-Root oder einem Windows-Administrator-Benutzer gehört, hätte ein Angreifer praktisch unbegrenzte Kontrolle über ein kompromittiertes System. Angesichts der Vielzahl möglicher CVSS-Bewertungen sollten CVE-2025-27636 und CVE-2025-29891 als kritische Sicherheitslücken betrachtet werden, wenn eine Instanz die Konfigurationsanforderungen erfüllt und keine Authentifizierung anwendet.

Behandlung der CVEs in Apache Camel

CVE-2025-27636 und CVE-2025-29891 betreffen Apache Camel Version 4.10 vor 4.10.2, Version 4.8 vor 4.8.5 und Version 3 vor 3.22.4. Benutzer sollten ein Upgrade auf 4.10.2, 4.8.5 oder 3.22.4 durchführen oder eine benutzerdefinierte Header-Filterung mit removeHeader oder removeHeaders in Camel Routes implementieren. Es sollte beachtet werden, dass die Camel Versionen 4.10.0, 4.10.1, 4.8.0 bis 4.8.4 und 3.10.0 bis 3.22.3 immer noch verwundbar sind, obwohl sie als Sicherheitsupdates betrachtet wurden, die den Fehler behoben haben.

Es wird außerdem dringend empfohlen, dass alle HTTP-Endgeräte in einer verteilten Architektur eine starke Authentifizierung verwenden. Für Apache Camel gibt es folgende Optionen: Verwendung der Java Secure Socket Extension (JSSE) API für TLS mit Camel-Komponenten oder Verwendung eines KeyCloak OAuth 2.0 SSO Autorisierungsservers. Für Legacy-Systeme sollte mindestens die HTTP-Basisauthentifizierung konfiguriert werden.

Zusammenfassung

Benutzer von Apache Camel sollten sofort auf die Versionen 4.10.2, 4.8.5 oder 3.22.4 aktualisieren, um die neu veröffentlichten CVEs, die Apache Camel betreffen, zu entschärfen. Alternativ können Sie benutzerdefinierte Header-Filterung mit removeHeader oder removeHeaders in Camel-Routen implementieren. Eine starke Authentifizierung auf allen HTTP-Endpunkten wird ebenfalls dringend empfohlen, um die Sicherheit zu gewährleisten. Apache Camel unterstützt die JSSE API für TLS oder KeyCloak SSO Lösungen. Greenbone kann sowohl CVE-2025-27636 als auch CVE-2025-29891 mit Schwachstellentests erkennen, die aktiv auf ausnutzbare HTTP-Endpunkte prüfen.