JSP kodini almashtirish va veb-ilova fayllarini olish imkonini beruvchi Apache Tomcat-dagi zaiflik

Xitoyning Chaitin Tech kompaniyasi tadqiqotchilari kashf qilishdi zaiflik (CVE-2020-1938) Apache Tomkat, Java Servlet, JavaServer Pages, Java Expression Language va Java WebSocket texnologiyalarining ochiq ilovasi. Zaiflikka Ghostcat kod nomi va jiddiy jiddiylik darajasi (9.8 CVSS) berilgan. Muammo standart konfiguratsiyada 8009 tarmoq portiga so'rov yuborish orqali veb-ilovalar katalogidagi istalgan fayllar tarkibini, shu jumladan sozlamalar va dastur manba kodlari bo'lgan fayllarni o'qish imkonini beradi.

Zaiflik, shuningdek, dastur kodiga boshqa fayllarni import qilish imkonini beradi, agar ilova fayllarni serverga yuklashga ruxsat bersa, serverda kod bajarilishiga imkon beradi (masalan, tajovuzkor JSP skriptini rasm sifatida yashiringan holda yuklashi mumkin). rasmni yuklash shakli). Hujum AJP ishlov beruvchisi bilan tarmoq portiga so'rov yuborish mumkin bo'lganda amalga oshirilishi mumkin. Dastlabki ma'lumotlarga ko'ra, onlayn topildi AJP protokoli orqali so'rovlarni qabul qiladigan 1.2 milliondan ortiq xostlar.

Zaiflik AJP protokolida mavjud va chaqirilmagan amalga oshirishdagi xato. HTTP (port 8080) orqali ulanishlarni qabul qilishdan tashqari, Apache Tomcat sukut bo'yicha AJP protokoli orqali veb-ilovaga kirish imkonini beradi.Apache Jserv protokoli, port 8009), yuqori ishlash uchun optimallashtirilgan HTTP ikkilik analogi bo'lib, odatda Tomcat serverlari klasterini yaratishda yoki teskari proksi-server yoki yuk balansida Tomcat bilan o'zaro aloqani tezlashtirish uchun ishlatiladi.

AJP serverdagi fayllarga kirish uchun standart funksiyani taqdim etadi, undan foydalanish mumkin, shu jumladan oshkor etilmaydigan fayllarni olish. AJP faqat ishonchli serverlar uchun ochiq bo'lishi kerak edi, lekin aslida Tomcatning standart konfiguratsiyasi ishlov beruvchini barcha tarmoq interfeyslarida ishga tushirdi va autentifikatsiya qilinmasdan so'rovlarni qabul qildi. Har qanday veb-ilova fayllariga, jumladan WEB-INF, META-INF va ServletContext.getResourceAsStream() ga qo'ng'iroq orqali taqdim etilgan boshqa kataloglar tarkibiga kirish mumkin. AJP shuningdek, JSP skripti sifatida veb-ilovaga kirish mumkin bo'lgan kataloglardagi istalgan fayldan foydalanishga imkon beradi.

Muammo 13 yil oldin chiqarilgan Tomcat 6.x filialidan beri paydo bo'ldi. Tomcat muammosiga qo'shimcha ravishda ta'sir qiladi Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP) kabi undan foydalanadigan mahsulotlar, shuningdek, foydalanadigan mustaqil veb-ilovalar Bahorgi yuklash. Shu kabi zaiflik (CVE-2020-1745) hozirgi veb-serverda undertow, Wildfly dastur serverida ishlatiladi. JBoss va Wildfly'da AJP sukut bo'yicha faqat domain.xml'dagi mustaqil-full-ha.xml, mustaqil-ha.xml va ha/full-ha profillarida yoqilgan. Spring Boot-da AJP-ni qo'llab-quvvatlash sukut bo'yicha o'chirilgan. Hozirgi vaqtda turli guruhlar ekspluatatsiyaning o'ndan ortiq amaliy misollarini tayyorladilar (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

Tomcat relizlarida zaiflik tuzatildi 9.0.31, 8.5.51 ΠΈ 7.0.100 (6.x filialiga texnik xizmat ko'rsatish to'xtatilgan). Ushbu sahifalarda tarqatish to'plamlarida yangilanishlar mavjudligini kuzatishingiz mumkin: Debian, Ubuntu, RHEL, Fedora, SUSE, FreeBSD. Vaqtinchalik yechim sifatida siz Tomcat AJP Connector xizmatini o'chirib qo'yishingiz mumkin (tinglash rozetkasini localhostga ulang yoki ulagich porti = "8009" bilan chiziqni izohlang) kerak bo'lmasa yoki sozlash Agar xizmat mod_jk va mod_proxy_ajp (mod_cluster autentifikatsiyani qo'llab-quvvatlamaydi) asosidagi boshqa serverlar va proksi-serverlar bilan o'zaro ishlash uchun foydalanilsa, "maxfiy" va "manzil" atributlari yordamida autentifikatsiya qilingan kirish.

Manba: opennet.ru

a Izoh qo'shish