Popüler Java çerçevesi pac4j’de kritik bir güvenlik açığı keşfedildi. Güvenlik açığı özellikle pac4j-core modülünün 4.0’dan önceki sürümlerini etkiliyor.
CVE-2023-25581 olarak tanımlanan bu güvenlik açığı, seri durumdan çıkarma işlemindeki bir kusur nedeniyle sistemleri olası uzaktan kod yürütme (RCE) saldırılarına maruz bırakıyor.
Güvenlik Açığı Ayrıntıları – CVE-2023-25581
Sorun, pac4j-core’un InternalAttributeHandler sınıfındaki Java seri durumdan çıkarma güvenlik açığından kaynaklanıyor.
Bu sınıftaki yöntem geri yüklemeleri; dizeler, boolean’lar, tamsayılar ve daha fazlası dahil olmak üzere çeşitli veri türlerini işler.
ANY.RUN’un Yeni Güvenli Tarama Aracını Kullanarak Şüpheli Bağlantıları Analiz Edin: Ücretsiz Deneyin
Ancak aynı zamanda {#sb64} ön ekine sahip ve Base64’te kodlanmış serileştirilmiş Java nesnelerini de işler.
public Object restore(final Object value) {
if (value != null && value instanceof String) {
final String sValue = (String) value;
if (sValue.startsWith(PREFIX)) {
// Handling different prefixes
// …
else if (sValue.startsWith(PREFIX_SB64)) {
return serializationHelper.unserializeFromBase64(sValue.substring(PREFIX_SB64.length()));
}
}
}
return value;
}
Güvenlik açığı, geri yükleme yönteminin bir dize özniteliğinin zaten {#sb64} önekini içerip içermediğini yeterince doğrulamaması nedeniyle ortaya çıkıyor.
Bu gözetim, bir saldırganın rastgele bir Java sınıfının seri durumdan çıkarılmasını tetikleyen ve potansiyel olarak RCE’ye yol açan kötü amaçlı bir özellik oluşturmasına olanak tanır.
Koordineli Açıklama Zaman Çizelgesi
- 2023-02-02: Güvenlik açığı pac4j güvenlik ekibine bildirildi.
- 2023-02-14: Geliştirme ekibi raporu kabul etti ve 4.0 sürümünün yayınlanmasıyla birlikte bir düzeltme yayınladı.
Etki ve Etki Azaltma
GitHub raporuna göre, bu güvenlik açığından yararlanılması durumunda saldırganların etkilenen sistemlerde rastgele kod yürütmesine olanak tanınabilir.
Seri durumdan çıkarma işlemini belirli sınıflarla sınırlamak için RestrictedObjectInputStream mevcut olsa da, yine de geniş bir Java paketi yelpazesine izin verir ve bu da onu çeşitli gadget zincirleriyle potansiyel olarak kullanılabilir hale getirir.
Bu riski azaltmak için kullanıcıların, bu güvenlik açığının giderildiği pac4j-core sürüm 4.0 veya sonraki bir sürüme yükseltmeleri önemle tavsiye edilir.
Güvenli olmayan seri durumdan çıkarma ve olası yararlanma teknikleri hakkında daha fazla bilgi için Ysoserial projesi gibi kaynaklara bakın.
Kullanıcıların sistemlerini olası risklere karşı incelemeleri ve gerekli güncellemeleri derhal uygulamaları teşvik edilir.
Bu keşif, güvenli kodlama uygulamalarının ve yazılım geliştirmede kullanıcı kontrollü verilerin kapsamlı bir şekilde doğrulanmasının önemini vurgulamaktadır.
How to Choose an ultimate Managed SIEM solution for Your Security Team -> Download Free Guide(PDF)