Apache Tomcat'te JSP kodunun değiştirilmesine ve web uygulama dosyalarının alınmasına izin veren güvenlik açığı

Çinli Chaitin Tech şirketinden araştırmacılar keşfetti Güvenlik açığı (CVE-2020-1938) içinde Apache TomcatJava Servlet, JavaServer Pages, Java Expression Language ve Java WebSocket teknolojilerinin açık bir uygulamasıdır. Güvenlik açığına Ghostcat kod adı ve kritik önem düzeyi (9.8 CVSS) atandı. Sorun, varsayılan yapılandırmada, ağ bağlantı noktası 8009'a bir istek gönderilerek, ayarların ve uygulama kaynak kodlarının bulunduğu dosyalar da dahil olmak üzere web uygulaması dizinindeki herhangi bir dosyanın içeriğinin okunmasına olanak tanır.

Güvenlik açığı aynı zamanda uygulama koduna başka dosyaların aktarılmasını da mümkün kılar; bu da, uygulamanın dosyaların sunucuya yüklenmesine izin vermesi durumunda sunucuda kod yürütülmesine olanak tanır (örneğin, bir saldırgan, bir görüntü olarak gizlenmiş bir JSP komut dosyasını resim yükleme formu). Saldırı, bir AJP işleyicisi ile bir ağ bağlantı noktasına istek göndermek mümkün olduğunda gerçekleştirilebilir. İlk verilere göre çevrimiçi kurmak AJP protokolü aracılığıyla istekleri kabul eden 1.2 milyondan fazla ana bilgisayar.

Güvenlik açığı AJP protokolünde mevcuttur ve çağrılmadı uygulamada hata. Apache Tomcat, HTTP (bağlantı noktası 8080) aracılığıyla bağlantıları kabul etmenin yanı sıra, varsayılan olarak AJP protokolü aracılığıyla bir web uygulamasına erişime izin verir (Apache Jserv ProtokolüDaha yüksek performans için optimize edilmiş HTTP'nin ikili bir analoğu olan bağlantı noktası 8009), genellikle bir Tomcat sunucu kümesi oluştururken veya ters proxy veya yük dengeleyicide Tomcat ile etkileşimi hızlandırmak için kullanılır.

AJP, ifşa edilmeyen dosyaların elde edilmesi de dahil olmak üzere, sunucudaki kullanılabilecek dosyalara erişim için standart bir işlev sağlar. AJP'nin yalnızca güvenilir sunucular tarafından erişilebilir olması gerekiyordu, ancak aslında Tomcat'in varsayılan yapılandırması işleyiciyi tüm ağ arayüzlerinde çalıştırdı ve istekleri kimlik doğrulaması olmadan kabul etti. WEB-INF, META-INF içerikleri ve ServletContext.getResourceAsStream() çağrısı yoluyla sağlanan diğer dizinler de dahil olmak üzere herhangi bir web uygulaması dosyasına erişim mümkündür. AJP ayrıca web uygulamasının erişebildiği dizinlerdeki herhangi bir dosyayı JSP betiği olarak kullanmanıza da olanak tanır.

Sorun, Tomcat 13.x şubesinin 6 yıl önce piyasaya sürülmesinden bu yana ortaya çıkıyor. Tomcat'in kendisi dışında bir sorun etkiler Red Hat JBoss Web Sunucusu (JWS), JBoss Kurumsal Uygulama Platformu (EAP) ve bunu kullanan bağımsız web uygulamaları gibi onu kullanan ürünler ve ürünler Bahar botu. Benzer güvenlik açığı (CVE-2020-1745) mevcut web sunucusunda ters yönlü dip akıntısıWildfly uygulama sunucusunda kullanılır. JBoss ve Wildfly'da, AJP varsayılan olarak yalnızca bağımsız-full-ha.xml, bağımsız-ha.xml ve domain.xml'deki ha/full-ha profillerinde etkinleştirilir. Spring Boot'ta AJP desteği varsayılan olarak devre dışıdır. Şu anda, farklı gruplar bir düzineden fazla açık istismar örneği hazırladı (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

Tomcat sürümlerinde güvenlik açığı düzeltildi 9.0.31, 8.5.51 и 7.0.100 (6.x şubesinin bakımı durdurulan). Dağıtım kitlerindeki güncellemelerin kullanılabilirliğini şu sayfalardan takip edebilirsiniz: Debian, Ubuntu, RHEL, Fötr şapka, SUSE, FreeBSD. Geçici bir çözüm olarak, gerekmiyorsa Tomcat AJP Bağlayıcı hizmetini devre dışı bırakabilirsiniz (localhost'a bir dinleme soketi bağlayın veya Bağlayıcı bağlantı noktası = "8009" ile satırı yorumlayın) veya melodi Hizmet, mod_jk ve mod_proxy_ajp'ye dayalı olarak diğer sunucular ve proxy'ler ile etkileşimde bulunmak için kullanılıyorsa, "gizli" ve "adres" niteliklerini kullanan kimlik doğrulamalı erişim (mod_cluster kimlik doğrulamayı desteklemez).

Kaynak: opennet.ru

Yorum ekle