CVE-2026-40047
KritikTeknik Veri (Otomatik)
- CVSS Skoru
- 9.1
- EPSS
- —
- CWE
- CWE-88
- KEV Durumu
- Hayır
Yayım tarihi: 6 Temmuz 2026
Etkilenen: apache camel
Apache Camel Docling bileşeninde 'Argüman Enjeksiyonu' ('Argument Injection') olarak bilinen, Argüman Ayırıcılarının Yanlış Şekilde Nötralize Edilmesi ('Improper Neutralization of Argument Delimiters in a Command') güvenlik açığı mevcuttur. Camel-docling bileşeni, DoclingProducer'da bir argüman listesi oluşturarak ve bunu java.lang.ProcessBuilder aracılığıyla çalıştırarak dış `docling` komut satırı aracını çağırır. `CamelDoclingCustomArguments` değişim başlığı aracılığıyla sağlanan özel CLI argümanları (List<String>), yetersiz doğrulama ile bu argüman listesine eklenmiştir: Orijinal uygulama, reddedilen bayrakların bir listesine dayanıyordu ve yalnızca `../` dizisi içeren yol değerlerini reddediyordu. Sonuç olarak, dış etkilenen verileri `CamelDoclingCustomArguments` başlığına (veya çağırma oluşturmak için kullanılan yol taşıyan başlıklara) ileten bir Camel rotası, üreticinin alt işlemlere tanınmayan veya istenmeyen `docling` CLI bayraklarını geçirmesine neden olabilir ve literal `../` kontrolü tarafından yakalanmayan geçiş dizileri aracılığıyla amaçlanan dizinin dışında çözümlenen benzeri yol argüman değerleri sağlayabilir. Camel kendisi bu değerlerden `docling` çağırmasını oluşturduğundan, bileşen bunları sınırlamakla sorumludur ve zayıf doğrulama, CLI argüman enjeksiyonuna ve external araçlara geçirilen argümanlarda dizin geçişine izin vermiştir. Çağırma, ProcessBuilder'ın listeye dayalı formunu kullanır, bu nedenle bir kabuk argüman değerlerini yorumlamaz; kabuk meta karakterleri aracılığıyla işletim sistemi komut enjeksiyonu mümkün değildir ve düzeltme tarafından eklenen meta karakter reddi, derinlik savunmasıdır. Bu sorun, Apache Camel'i etkiler: 4.15.0'dan 4.18.3'e kadar. Kullanıcıların, CAMEL-23212 düzeltmesini içeren bir sürüme yükseltmeleri önerilir. Ana sürümde düzeltme, Apache Camel 4.19.0'dan (ve daha sonraki sürümler gibi 4.20.0) itibaren dahildir. 4.18.x LTS sürümleri akışındaki kullanıcılar için, 4.18.3'e yükseltme yapılmalıdır. Düzeltme, reddedilen bayrakların listesini tanınan `docling` CLI bayraklarının sıkı bir listesiyle değiştirir (tanınmayan herhangi bir bayrağı reddeder ve üretici tarafından yönetilen bayrakları gibi çıktı dizini bayraklarını reddeder), argüman değerlerinde savunmacı olarak kabuk meta karakterlerini reddeder ve bunları doğrulamadan önce Path.normalize() ile normalize eder, böylece literal `../` kontrolünü atlayan geçiş dizileri tespit edilir. Derinlik savunması olarak, rota yazarlarının, güvenilmeyen mesaj içeriğini `CamelDoclingCustomArguments` başlığına ve yol taşıyan başlıklara eşlemekten kaçınması ve güven
Orijinal açıklama (İngilizce)
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') vulnerability in Apache Camel Docling component. The camel-docling component invokes the external `docling` command-line tool by assembling an argument list in DoclingProducer and executing it through java.lang.ProcessBuilder. Custom CLI arguments supplied through the `CamelDoclingCustomArguments` exchange header (a List<String>) were appended to that argument list with insufficient validation: the original implementation relied on a denylist of disallowed flags and only rejected path values that contained a literal `../` sequence. As a result, a Camel route that forwards externally-influenced data into the `CamelDoclingCustomArguments` header (or into the path-bearing headers used to build the invocation) could cause the producer to pass unrecognized or unintended `docling` CLI flags to the subprocess, and could supply path-like argument values that resolved outside the intended directory through traversal sequences not caught by the literal `../` check. Because Camel itself builds the `docling` invocation from these values, the component is responsible for constraining them, and the weak validation allowed CLI-argument injection and directory traversal in the arguments passed to the external tool. The invocation uses the list-based form of ProcessBuilder, so a shell does not interpret the argument values; OS command injection through shell metacharacters was not possible, and the metacharacter rejection added by the fix is defense-in-depth. This issue affects Apache Camel: from 4.15.0 before 4.18.3. Users are recommended to upgrade to a release that contains the CAMEL-23212 fix. On the mainline the fix is included from Apache Camel 4.19.0 (and later releases such as 4.20.0). For users on the 4.18.x LTS releases stream, upgrade to 4.18.3. The fix replaces the denylist with a strict allowlist of recognized `docling` CLI flags (rejecting any unrecognized flag, and rejecting producer-managed flags such as the output-directory flags), defensively rejects shell metacharacters in argument values, and normalizes path-like values with Path.normalize() before validating them so that traversal sequences which bypass a literal `../` check are detected. As defence in depth, route authors should avoid mapping untrusted message content into the `CamelDoclingCustomArguments` header and the path-bearing headers, and should strip Camel-internal headers from messages that arrive from untrusted producers.
Referanslar
Bu CVE için henüz editoryal inceleme yapılmadı. Sadece otomatik teknik veri gösteriliyor.