HyperSQL Veritabanı kusuru, kütüphaneyi RCE’ye karşı savunmasız bırakıyor


Geliştiriciler tarafından çözülen güvenilmeyen girdi sorununun yanlış kullanımı

Güvenlik araştırmacıları, HyperSQL Veritabanında ciddi bir güvenlik açığı keşfetti

Güvenlik araştırmacıları, HyperSQL Veritabanında (HSQLDB) uzaktan kod yürütme (RCE) riski oluşturan ciddi bir güvenlik açığı keşfettiler.

HSQLDB, Java tabanlı bir SQL ilişkisel veritabanı sistemi sunar. Bugüne kadar 100 milyon indirme ile ikinci en popüler gömülü SQL veritabanı olan teknoloji, veritabanı uygulamalarının geliştirilmesi, test edilmesi ve devreye alınması için kullanılıyor.

HSQLDB, LibreOffice, JBoss, Log4j, Hibernate ve Spring-Boot dahil olmak üzere 3.120’den fazla Maven paketinin yanı sıra çeşitli kurumsal yazılım paketleri tarafından kullanılmaktadır.

Ayrıştırma sorunu

Code Intelligence’dan güvenlik araştırmacıları, bir dizi bulanıklık testi yaptıktan sonra RCE güvenlik açığını keşfetti (CVE-2022-41853 olarak izlendi ve yaklaşık maksimum CVSS önem puanı 9,8 olarak derecelendirildi).

Daha doğrusu, ikili ve metin biçimindeki veriler için ayrıştırma prosedürünün java.sql.Bildirimi ve java.sql.PreparedStatement Teknolojinin bileşenleri kusurluydu.

Yazılımın HSQLDB sürüm 2.7.0’a kadar olan tüm sürümleri savunmasızdır. Code Intelligence, önceki sürümlerin korunmasına yardımcı olan bir düzeltme ve bir geçici çözüm oluşturarak hemen yanıt veren HSQLDB’nin geliştiricileri olan HSQL Development Group ile iletişime geçti.

En son güvenli geliştirme haberlerini ve analizlerini yakalayın

HSQLDB henüz bir yorum isteğine yanıt vermedi. Günlük Swig ancak Code Intelligence’den güvenlik araştırmacıları, bir yamanın boru hattında olduğunu doğruladı.

Code Intelligence, “Sorun önceden düzeltildi ve bir sonraki sürümde kullanıma sunulacak.” Dedi. “2.7.1 sürümünden itibaren. özellikler hsqldb.method_class_names HSQLDB rutin hedefi olarak herhangi bir Java statik yöntemi kullanılıyorsa, sınıf adları veya joker karakterler listesiyle tanımlanmalıdır.

Önceki uygulamalar, aşağıdakiler dışında Java statik yöntemlerinin kullanılması nedeniyle bir soruna neden oldu. java.lang.Mathsistem özelliği tanımlanmadan izin verilmemelidir, aksi takdirde problemler ortaya çıkabilir.

Ana neden

Sorunun Code Intelligence tarafından yazılan teknik bir yazısı, sorunun temel nedenini daha derinlemesine açıklar.

“Varsayılan olarak, sınıf yolundaki herhangi bir Java sınıfından herhangi bir statik yöntemi çağırmak için SQL ifadeleri kullanılabilir. HSQLDB (HyperSQL DataBase), yöntemlerin doğrudan kullanılmasına izin verdi, ”diye açıklıyor Medium’da geçen hafta bir gönderi.

Güvenlik açığı, şu anlama gelir: java.sql.Bildirimi veya java.sql.PreparedStatement HSQLDB’nin yama öncesi sürümlerinde, güvenilmeyen girdilerle birlikte kullanılması, uygulamaları bir RCE saldırısına karşı savunmasız bırakabilir.

gelen sorgulara yanıt olarak Günlük SwigCode Intelligence’ın kurucu ortağı Khaled Yakdan, sorunun devreye girmesi için bir uygulamanın SQL enjeksiyonuna karşı savunmasız olması gerekmediğini açıkladı.

Yakdan, “Mevcut varsayılan yapılandırma, sınıf yolundaki herhangi bir sınıfın statik yöntemlerinin kullanılmasına izin veriyor” dedi. “Ayrıca, eski uyumluluk için yöntemlerin doğrudan kullanımına izin verilir.”

Yakden, hangi belirli uygulamaların savunmasız olabileceği konusunda spekülasyon yapmayı reddetti, ancak etkinleştirildiği durumlarda kusurun etkisini açıklayabildi.

Yakden, “Yalnızca hataları bulmaya odaklanıyoruz ve hangi kod tabanlarının savunmasız olduğunu araştırmıyoruz” dedi. Günlük Swig. “Bu CVE’nin etkisi, (güvenilmeyen) kullanıcı girişi içeren sorguları işlemek için HyperSQL kullanırsanız, saldırganların uygulamanızın rastgele kod yürütmesine neden olabilmesidir.”

İLİŞKİLİ Apache Commons Metin RCE: Log4Shell ile benzerlik var ancak maruz kalma riski ‘çok daha düşük’



Source link