CVE-2026-48528
Açıklama
Metacat, araştırmacıların verileri korumasına, paylaşmasına ve keşfetmesine yardımcı olan bir veri deposu yazılımıdır. Metacat 2.0.0 ile 3.4.0 sürümleri, arka uç SQL veritabanına aktarılabilen temizlenmemiş kullanıcı girdisi nedeniyle `/cn/v1/object` ve `/cn/v2/object` REST API uç noktalarında kimlik doğrulama gerektirmeyen bir SQL enjeksiyonu güvenlik açığı içerir. `nodeId` parametresi, SQL komutları enjekte etmek için değiştirilebilir ve sonuçlar hata mesajlarında döndürülür. Metacat, kullanıcı tarafından sağlanan verileri temizleme veya parametreleştirme olmaksızın SQL sorgusuna ekler. Bu, temel PostgresQL veritabanından rastgele veri çıkarılmasına olanak tanıyarak korunan bilgileri saldırgana tamamen açık hale getirir. Bu, Metacat'taki hata raporlama mekanizmalarından yararlanılarak gerçekleştirilir; burada SQL hata yanıtları, Metacat tarafından döndürülen XML hata mesajında çağırana geri yansıtılır. Örneğin bir yaklaşım, rastgele bir alt sorgunun sonuçlarıyla bir hata oluşturmak için PostgreSQL `CAST` işlevini kullanmak ve bunun ardından Metacat tarafından döndürülen XML hata mesajına enjekte edilmesidir. Saldırganların saldırıyı gerçekleştirmek için kimlik doğrulaması yapması gerekmez. Ayrıca, Metacat veritabanında veri ekleyen, güncelleyen ve silen rastgele SQL ifadeleri çalıştırılabilir ve bu da veritabanındaki tüm verilerin tamamen ele geçirilmesiyle sonuçlanır. Bu güvenlik açıkları için tam kavram kanıtı saldırıları geliştirilmiş ve doğrulanmıştır. Bu güvenlik açığının etkisi, veritabanındaki bilgilerin sızdırılabildiği, eklenebildiği, değiştirilebildiği veya silinebildiği DataONE ağındaki Metacat kurulumları için kritiktir. Bu, veri kataloğu hakkındaki yönetim bilgilerini, verilere kimin eriştiğine dair erişim günlüğü bilgilerini, ORCID tanımlayıcısı ve istemci IP adresi dahil olmak üzere bireyleri tanımlayan bilgileri, verilere kimin erişebilmesi ve verileri değiştirebilmesi gerektiğine dair erişim kontrolü bilgilerini ve veri sisteminin diğer kritik iç bileşenlerini içerir. Bu SQL enjeksiyonu güvenlik açığı Metacat 3.4.1 sürümünde tamamen giderilmiştir. Metacat 3.4.1'e yükseltme hemen mümkün değilse, çoğu kurulum webapp dağıtımında `/cn` REST uç noktalarını devre dışı bırakarak sorunu hafifletebilir. Bu API, yalnızca DataONE Coordinating Node kurulumları tarafından kullanıldığından DataONE ağındaki üye depolar tarafından gerekli değildir veya kullanılmaz. Sonuç olarak, bu API çoğu kurulum için işlevsellik azaltılmadan devre dışı bırakılabilir. Savunmasız uç noktaları devre dışı bırakmak için, `edu.ucsb.nceas.metacat.restservice.v1.CNRestServlet` ve `edu.ucsb.nceas.metacat.restservice.v2.CNRestServlet` adlı iki servlet ile ilişkili servlet motorunda `/cn` uç noktalarına ait servlet ve servlet-mapping tanımlarını kaldırmanız yeterlidir. Örneğin, Tomcat'te Metacat içindeki uygulama web.xml dosyasından ilgili `servlet-mapping` öğelerini kaldırın.
Nasıl düzeltilir
Kaynaklarda bu zafiyet için düzeltilmiş sürüm ya da yama bağlantısı yok.
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| NCEAS metacat | >= 2.0.0, < 3.4.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.