Apache Camel-Hazelcast: Unsafe Java deserialization in default-configured managed Hazelcast instances enables remote code execution
Beschreibung
Deserialisierung der Sicherheitslücke für nicht vertrauenswürdige Daten in der Apache Camel Hazelcast-Komponente. Die Kamel-Hazelcast-Komponente erstellt und verwaltet Hazelcast-Instanzen mit einer Standardkonfiguration, die keinen Java-Deserialisierungsfilter anwendet. Wenn Camel die Hazelcast Config selbst erstellt - das heißt, wenn keine vom Benutzer bereitgestellte HazelcastInstance, hazelcastConfigUri oder referenzierte Config-Bohne bereitgestellt wird - ist weder die JavaSerializationFilterConfig von Hazelcast noch ein Camel-seitiger ObjectInputFilter konfiguriert, so dass über das Hazelcast-Clusterprotokoll empfangene Objekte innerhalb der Hazelcast-eigenen Serialisierungsschicht (ObjectInputStream.readObject) deserialisiert werden, bevor Camel sie jemals verarbeitet. Ein angreifer, der dem hazelcast-cluster beitreten oder anderweitig erreichen kann, kann ein erstelltes serialisiertes java-objekt veröffentlichen, das dann auf jedem camel-knoten deserialisiert wird, was zu einer remote-codeausführung führt. Die Exposition ist standardmäßig vorhanden und erfordert keine Opt-in-Endpunktkonfiguration: Jede Route mit einem Hazelcast-Konsumenten (Hazelcast-topic, Hazelcast-queue, Hazelcast-seda, Hazelcast-map, Hazelcast-multimap, Hazelcast-replizierte Karte, Hazelcast-list, Hazelcast-set) sowie das HazelcastAggregationRepository und HazelcastIdempotentRepository sind betroffen, wenn die verwaltete Instanz aus der Standardkonfiguration von Camel erstellt wird. Dieses Problem betrifft Apache Camel: von 4.0.0 vor 4.14.8, von 4.15.0 vor 4.18.3, von 4.19.0 vor 4.21.0. Benutzern wird empfohlen, auf Version 4.21.0 zu aktualisieren, wodurch das Problem behoben wird. Wenn Benutzer auf dem 4.14.x LTS-Releases-Stream sind, wird empfohlen, auf 4.14.8 zu aktualisieren. Wenn Benutzer auf dem 4.18.x-Releases-Stream sind, wird empfohlen, auf 4.18.3 zu aktualisieren. Die Korrektur macht Camel eine Standard Hazelcast JavaSerializationFilterConfig anwenden (Whitelisting der java., javax). und org.apache.camel. Klassennamen-Präfixe und Blacklisting java.net.) für Instanzen, die es aus seiner eigenen Standardkonfiguration erstellt, während alle vom Benutzer bereitgestellten Config oder HazelcastInstance unberührt bleiben. Für Bereitstellungen, die nicht sofort aktualisiert werden können, konfigurieren Sie einen Deserialisierungsfilter auf der Hazelcast-Instanz (Hazelcast JavaSerializationFilterConfig oder die JVM-weite Systemeigenschaft -Djdk.serialFilter=!java.net.**;java.**;javax.**;org.apache.camel.**;!*) und aktivieren Sie die Hazelcast-Cluster-Authentifizierung und TLS, um einzuschränken, wer den Cluster erreichen kann.
Quellen & weiterführende Informationen
Hier werden ausschließlich tatsächlich zu dieser Schwachstelle gespeicherte Quellenbelege angezeigt.
Was ist zur Behebung zu tun?
Auf eine behobene Version aktualisieren: 4.14.8, 4.18.3, 4.21.0.
Empfohlene Schritte
- Betroffene Systeme identifizieren: Apache Software Foundation org.apache.camel:camel-hazelcast.
- Exposition prüfen: Internet-Erreichbarkeit, Admin-Oberflächen, VPN, Mail- oder Webdienste.
- Update/Rollout auf behobene Version vorbereiten und priorisiert einspielen.
- Nacharbeiten dokumentieren: betroffene Assets, Maßnahme, Zeitpunkt, Restrestrisiko.
Übergangsmaßnahmen
- Zugriff auf betroffene Dienste auf vertrauenswürdige Netze einschränken.
- WAF/IDS/EDR-Regeln und Hersteller-IOCs aktivieren, sofern verfügbar.
- Nicht benötigte Funktionen, Plugins oder Dienste temporär deaktivieren.
- Administrative Zugänge besonders absichern: MFA, Passwortrotation, Session-Invalidierung.