CVE-2026-91012
Açıklama
"config" MBean ve config:* kabuk komutlarını destekleyen org.apache.karaf.config.core.impl.ConfigRepositoryImpl#update(pid, properties) metodu, bir yapılandırmanın yazılacağı dosyayı, sonucun ${karaf.etc} dizini içinde kaldığını kontrol etmeden çağırıcı tarafından sağlanan girdiden türetmektedir: * Gönderilen özellik haritası bir felix.fileinstall.filename girişi içeriyorsa, bu değer doğrudan bir File nesnesine dönüştürülür (getCfgFileFromProperty); böylece Karaf sürecinin yazabildiği herhangi bir mutlak yola işaret edebilir. * Aksi takdirde, yapılandırma PID'si hedef dosya adına olduğu gibi eklenir (generateConfigFilename(): new File(karaf.etc, pid + ".cfg")); dolayısıyla ".." bölümleri içeren bir PID, ${karaf.etc} dışına çözümlenir. createFactoryConfiguration() metodu da fabrika PID/takma adı üzerinden aynı soruna sahiptir. Her iki kod yolu da, Karaf ile birlikte gelen komut/JMX ACL (org.apache.karaf.command.acl.conf.cfg: "update = manager") kapsamında "manager" rolüne sahip olan her çağırıcı tarafından erişilebilirdir. Bu nedenle, böyle bir kullanıcı, söz konusu ACL'nin normalde "admin" rolüne ayırdığı dosyalar da dahil olmak üzere (etc/users.properties, etc/*.acl.*.cfg, etc/org.apache.karaf.management.cfg ve benzerleri), Karaf sürecinin yazabildiği herhangi bir dosyaya saldırgan tarafından kontrol edilen içeriği yazabilir; bu durum, manager rolündeki bir kullanıcının kendisine admin rolü vermesine veya konteyneri tamamen ele geçirmesine olanak tanır. ConfigMBeanImpl.install() ve config:install kabuk komutu, kendi kod yollarındaki eşdeğer riski halihazırda bir finalname.contains("..") dize kontrolü ile korumaktaydı; ancak bu kontrol mutlak yolları veya sembolik bağlantı tabanlı kaçışları engellememektedir ve ConfigRepositoryImpl.update() / createFactoryConfiguration() metodlarına hiçbir zaman uygulanmamıştır.
Nasıl düzeltilir
- apache karaf4.4.12 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| apache karaf | v < 4.4.12 | 4.4.12 |
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.