Hulumtuesit nga kompania kineze Chaitin Tech zbuluan () në , një implementim i hapur i teknologjive Java Servlet, JavaServer Pages, Java Expression Language dhe Java WebSocket. Vulnerabiliteti i është dhënë emri koduar Ghostcat dhe ka një nivel kritic rreziku (9.8 CVSS). Problemi lejon, në konfigurimin e paracaktuar, të lexohet përmbajtja e çdo skedari nga katalogu i aplikacionit web përmes dërgimit të një kërkese në portin 8009, duke përfshirë skedarët e cilësimeve dhe kodin burimor të aplikacionit.
Vulnerabiliteti gjithashtu ofron mundësinë e importimit të skedarëve të tjerë në kodin e aplikacionit, që mundëson ekzekutimin e kodit në server, nëse aplikacioni lejon ngarkimin e skedarëve në server (për shembull, sulmuesi mund të ngarkojë një skenar JSP nën petkën e një imazhi përmes një forme ngarkimi). Sulmi mund të kryhet nëse ka mundësi për dërgimin e një kërkese në portin e rrjetit me trajtuesin AJP. Sipas të dhënave paraprake, në rrjet më shumë se 1.2 milion hostesh që pranojnë kërkesa përmes protokollit AJP.
Vulnerabiliteti është i pranishëm në protokollin AJP, ndonëse nga një gabim në implementim. Përveç pranimit të lidhjeve përmes HTTP (porti 8080), Apache Tomcat, në mënyrë paraprake, lejon qasje në aplikacionin web përmes protokollit AJP (, porti 8009), i cili është një analog binar i optimizuar për arritjen e performancës më të lartë, përdoret zakonisht gjatë krijimit të një klasteri të serverëve Tomcat ose për të përshpejtuar ndërveprimin me Tomcat për një proxy të kundërt ose balancues ngarkese.
AJP ofron një funksion standard për qasje në skedarët në server, i cili mund të përdoret edhe për marrjen e skedarëve që nuk duhen shpërndarë. Supozohet se qasja në AJP është e hapur vetëm për serverat e besuar, por në praktikë, në konfigurimin e paracaktuar, Tomcat kishte aktivizuar trajtuesin në të gjitha ndërfaqet e rrjetit dhe kërkesat pranoheshin pa autentifikim. Qasja është e mundur në çdo skedar të aplikacionit web, përfshirë përmbajtjen e WEB-INF, META-INF dhe çdo katalog tjetër që jepet përmes thirrjes ServletContext.getResourceAsStream(). AJP gjithashtu lejon përdorimin e çdo skedari në katalogët e disponueshëm për aplikacionin web si një skenar JSP.
Problemi fillon me versionin e lëshuar 13 vjet më parë, Tomcat 6.x. Përveç Tomcat vetë, problemi si dhe produkte që e përdorin atë, si Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP), si dhe aplikacione web të pavarura që përdorin . Një vulnerabilitet i ngjashëm (CVE-2020-1745) në serverin web , i përdorur në serverin e aplikacioneve Wildfly. Në JBoss dhe Wildfly, protokolli AJP është aktivuar nga default vetëm në profilet standalone-full-ha.xml, standalone-ha.xml dhe ha/full-ha në domain.xml. Në Spring Boot mbështetje AJP është e çaktivizuar nga default. Aktualisht, grupe të ndryshme kanë përgatitur më shumë se një duzina shembuj të punës të eksploiteve (
,
,
,
,
,
,
,
,
,
,
).
Vulnerabiliteti është eliminuar në lëshimet e Tomcat , dhe (mbështetje për versionin 6.x ). Disa faqe mund të ndiqni për të parë përditësimet në distribuimet: , , , , , . Si një masë zbutëse, mund të çaktivizoni shërbimin Tomcat AJP Connector (të lidhni soketin e dëgjuesit me localhost ose të komentonit rreshtin me Connector port = "8009"), nëse nuk është e nevojshme, ose qasje të autentikuar me anë të atributeve "secret" dhe "address", nëse shërbimi përdoret për t'u lidhur me servera të tjerë dhe proxy mbi mod_jk dhe mod_proxy_ajp (mod_cluster nuk mbështet autentikimin).
Burimi: opennet.ru
