Apache Camel-Docling: Insufficient validation of custom CLI arguments enables argument injection and path traversal in DoclingProducer
Beschreibung
Unsachgemäße Neutralisierung von Argument Delimitern in einer Befehlsverwundbarkeit ("Argument Injection") in der Apache Camel Docling-Komponente. Die Kamel-Doppel-Komponente ruft das externe Kommandozeilen-Tool "Doppeln" auf, indem sie eine Argumentliste in DoclingProducer zusammenstellt und über java.lang ausführt. ProcessBuilder. Benutzerdefinierte CLI-Argumente, die über den Exchange-Header "CamelDoclingCustomArguments" (eine Liste) geliefert wurden, wurden mit unzureichender Validierung an diese Argumentliste angehängt: Die ursprüngliche Implementierung stützte sich auf einen Denylisten von unzulässigen Flags und verwarf nur Pfadwerte, die eine wörtliche "../"-Sequenz enthielten. Infolgedessen könnte eine Camel-Route, die extern beeinflusste Daten in den "CamelDoclingCustomArguments"-Header (oder in die pfadtragenden Header, die zum Aufbau der Invocation verwendet werden) weiterleitet, dazu führen, dass der Produzent unerkannte oder unbeabsichtigte "Docling"-CLI-Flags an den Subprozess weiterleitet und pfadähnliche Argumentwerte liefern könnte, die außerhalb des beabsichtigten Verzeichnisses durch Traversalsequenzen aufgelöst wurden, die nicht von der wörtlichen "../" -Prüfung erfasst wurden. Da Camel selbst die "Docking" -Aufrufe aus diesen Werten erstellt, ist die Komponente dafür verantwortlich, sie einzuschränken, und die schwache Validierung ermöglichte die CLI-Argument-Injektion und Verzeichnis-Traversal in den Argumenten, die an das externe Tool übergeben wurden. Der Aufruf verwendet die listenbasierte Form von ProcessBuilder, so dass eine Shell die Argumentwerte nicht interpretiert; die Eingabe des OS-Befehls durch Shell-Metazeichen war nicht möglich, und die durch den Fix hinzugefügte Ablehnung des Metazeichens ist eine tiefgründige Verteidigung. Dieses Problem betrifft Apache Camel: von 4.15.0 vor 4.18.3. Benutzern wird empfohlen, ein Upgrade auf ein Release durchzuführen, das den CAMEL-23212-Fix enthält. Auf der Hauptlinie ist der Fix von Apache Camel 4.19.0 (und späteren Releases wie 4.20.0) enthalten. Für Benutzer auf dem 4.18.x LTS Releases Stream, aktualisieren Sie auf 4.18.3. Der Fix ersetzt den Denylisten durch eine strenge Erlaubnisliste von erkannten 'Docking'-CLI-Flags (Ablehnen eines nicht erkannten Flags und Ablehnen von vom Produzenten verwalteten Flags wie den Output-Verzeichnis-Flags), lehnt defensiv Shell-Metazeichen in Argumentwerten ab und normalisiert pfadähnliche Werte mit Path.normalize (), bevor sie validiert werden, so dass Traversalsequenzen, die eine wörtliche '../'-Prüfung umgehen, erkannt werden. Als Verteidigung in der Tiefe sollten Routenautoren vermeiden, nicht vertrauenswürdige Nachrichteninhalte in den Header von "CamelDoclingCustomArguments" und die pfadtragenden Header einzuordnen, und sollten Camel-interne Header von Nachrichten entfernen, die von nicht vertrauenswürdigen Produzenten stammen.
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.18.3.
Empfohlene Schritte
- Betroffene Systeme identifizieren: Apache Software Foundation org.apache.camel:camel-docling.
- 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.