Bir araştırmacı, çok sayıda proje tarafından HTML girdisinden PDF dosyaları oluşturmak için kullanılan popüler bir Python kitaplığı olan ReportLab Toolkit’i etkileyen bir uzaktan kod yürütme (RCE) kusuru için çalışan bir istismar yayınladı.
CVE-2023-33733 olarak izlenen kusur için kavram kanıtı (PoC) istismarı, güvenlik açığı hakkında teknik ayrıntılar sağlayan bir yazıyla birlikte dün GitHub’da yayınlandı ve bu sayede saldırı olasılığını artırdı. vahşi sömürü
ReportLab Toolkit, birden çok proje tarafından bir PDF kitaplığı olarak kullanılır ve PyPI’de (Python Paket Dizini) aylık yaklaşık 3,5 milyon indirmeye sahiptir.
Eski düzeltmeyi atlamak
Sorun, rolü kötü amaçlı kod yürütülmesini önlemek olan ve saldırganın potansiyel olarak tehlikeli Python yerleşik işlevlerine erişmesine yol açan ‘rl_safe_eval’ üzerindeki sanal alan kısıtlamalarını atlama yeteneğinden kaynaklanmaktadır.
‘rl_safe_eval’ işlevi, 2019’da keşfedilen benzer bir uzaktan kod yürütme sorununu önlemek için bir önlem olarak tanıtıldı; bu nedenle araştırmacı onu atlamaya odaklandı.
Sunulan PoC, güvenlik kontrollerini atlayabilen ve ‘kod’ gibi hassas özniteliklere erişim sağlayabilen ‘str’ sınıfından miras alan ‘Word’ adlı yeni bir sınıf oluşturmaya yardımcı olan yerleşik ‘tür’ işlevini alır.
Ardından, bağımsız değişken sayısı kısıtlamalarıyla ilgili güvenli değerlendirme kontrollerini aşmak için kendi kendine ‘tip’ çağrılır ve saldırganın yeni sınıflar ve nesneler oluşturmak için orijinal, yerleşik ‘tür’ işlevini kötüye kullanmasına izin verir.
Bu, derlenmiş bir bayt kodundan çalıştırıldığında keyfi bir eylem gerçekleştirebilen kötü amaçlı bir işlev oluşturmaya yol açar. Araştırmacının örneğinde, “/tmp/” dizininde “istismar edilmiş” adlı bir dosya oluşturmak için bir işletim sistemi komutu çağırır.
Araştırmacı, istismar kodunun tamamının tek bir ifadede eval ile çalıştırılması gerektiğini, bu nedenle onu bu şekilde yapılandırmak için ‘liste kavrama’ hilesini kullandığını belirtiyor.
Cure53 araştırmacısı Elyas Damej, yazısında, CVE-2023-33733’ün kötüye kullanılmasının, ReportLab kitaplığını kullanan yazılımda PDF’ye dönüştürülecek bir HTML dosyasına kötü amaçlı kod eklemek kadar basit olduğu konusunda uyarıyor.
Kütüphanenin yaygın kullanımı ve kamuya açık bir istismar, birçok kullanıcıyı riske atmaktadır. Kitaplığı kullanan yazılım satıcıları, mevcut güvenlik güncelleştirmesini uygulayarak ortaya çıkan tedarik zinciri riskini giderebilir.
Damej, BleepingComputer’a, sorunun keşfedilmesi üzerine ReportLab geliştiricilerine bildirildiğini ve 27 Nisan 2023’te yayınlanan 3.6.13 sürümüyle bir düzeltmenin geldiğini söyledi.
Araştırmacı, güvenlik açığının kitaplığın önceki tüm sürümlerini etkilediğini açıkladı.