CVE-2026-79986
Açıklama
Apache Camel Azure Files bileşeninde kısıtlanmış bir dizine yönelik yol adının uygun şekilde sınırlandırılmaması ('Path Traversal') zafiyeti bulunmaktadır. Bu sorun şu Apache Camel sürümlerini etkilemektedir: 4.0.0 ile 4.18.5 arası ve 4.19.0 ile 4.22.1 arası. Camel remote-file tüketicileri, uzak bir sunucudaki dizini sorgular ve yapılandırılan dizin ile sunucunun dizin listesinde bildirilen dosya adını birleştirerek her dosyanın mutlak uzak yolunu oluşturur. Bu birleştirme işlemi (FtpUtils.absoluteFilePath ve GenericFileConsumer), sözlüksel normalleştirme uygulamamış ve sonucun sorgulanan dizinin içinde kaldığını kontrol etmemiştir; sonuç olarak ortaya çıkan yol, dosya üzerindeki tüm sonraki uzak işlemler için işlenen değer haline gelmiştir: geri alma (GenericFileConsumer üzerinden erişilen FtpOperations.retrieveFile / SftpOperations, burada geri alma adı doğrudan GenericFile.getAbsoluteFilePath üzerinden alınır), delete=true olduğunda silme (GenericFileDeleteProcessStrategy) ve move, preMove, moveFailed veya readLock=rename yapılandırıldığında yeniden adlandırma (GenericFileProcessStrategySupport ve GenericFileRenameExclusiveReadLockStrategy). Ne isValidFile ne de isMatched herhangi bir kapsama kontrolü gerçekleştirmemiştir. Bu nedenle, tek bir yol segmentinden oluşmayan bir liste girişi, yapılandırılan sorgulama dizininin dışındaki bir yola çözümlenmiş ve Camel'ın uç noktanın kendi kimlik bilgilerini kullanarak bu dizinin dışındaki dosyaları okumasına, silmesine veya yeniden adlandırmasına neden olmuştur. Bir liste adı rota kontrollü veri değildir. Uzak sunucu tarafından sağlanır ve FTP kontrol kanalı hiçbir bütünlük koruması taşımaz, dolayısıyla yol üzerindeki bir saldırgan herhangi bir kimlik bilgisine sahip olmadan bir LIST yanıtını yeniden yazabilir; ele geçirilmiş, kötü niyetli veya çok kiracılı bir sunucu ya da sanal bir dosya sistemi destekli bir sunucu böyle bir adı doğrudan yayınlayabilir. Geri alma işlemi varsayılan tüketici yapılandırmasında erişilebilirdir çünkü uzak tüketiciler listelenen her dosyayı indirir; silme ve yeniden adlandırma işlemleri ise ek olarak yukarıdaki yerleşim seçeneklerinden birini gerektirir ki bunların tamamı yaygındır. Camel'ın sorgulamak üzere yapılandırıldığı dizinden kaçış koşulsuzdur, sunucunun kendi hesap sınırından kaçış ise ek olarak o sunucunun hesabı kısıtlayıp kısıtlamadığına bağlıdır. Varsayılan olarak etkin olan ve Camel'ı başlangıç diziniyle kısıtladığı belgelenen jailStartingDirectory seçeneği, üretici yazmalarını ve localWorkDirectory kapsama çalışmasından beri yerel çalışma dizinine yapılan tüketici indirmelerini yönetiyordu ancak bu uzak işleyeni kısıtlamıyordu, bu nedenle ismi ve açıklaması burada uygulanmayan bir sınırı iddia ediyordu. Aynı giriş noktası yerel tarafta zaten tanımlanmıştı: localWorkDirectory indirme yolu, üst dizin segmentleri içeren bir uzak dosya adının yerel çalışma dizininin dışında çözümlenemeyeceği şekilde kısıtlanmıştı. Uzak işleyen, bu yüzeyin kalan yarısını oluşturuyordu. Bu artefakt azure-files şemasını sağlar. Tüketicisi aynı RemoteFileConsumer temel sınıfından türetilmiştir ve uzak yolu düz bir birleştirme yardımcısı aracılığıyla oluşturmuştur, bu nedenle aynı kısıtlanmamış çözümlemeyi miras almıştır. Buna ulaşmak için Azure Files REST servisinin normalde döndürmediği, tek bir yol segmenti olmayan bir liste adı gerekir; açık, bu şemaya karşı kanıtlanmış bir kavram kanıtından ziyade diğer remote-file tüketicileriyle aynı temelde düzeltilmiştir. Sorunu gideren Apache Camel 4.23.0 sürümüne yükseltin. 4.22.x sürümleri akışındaki kullanıcılar 4.22.1 sürümüne yükseltmelidir. 4.18.x LTS sürümleri akışındaki kullanıcılar 4.18.5 sürümüne yükseltmelidir. 4.14.x akışı ömrünü tamamlamıştır ve bu düzeltmeyi almamaktadır; bu sürümü kullananlar desteklenen bir sürüm akışına geçmelidir.
Nasıl düzeltilir
- apache camel4.18.5, 4.22.1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| apache camel | 4.0.0 ≤ v < 4.18.5, 4.19.0 ≤ v < 4.22.1 | 4.18.5, 4.22.1 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.