Forskere fra det kinesiske firma Chaitin Tech har identificeret () i , en open source-implementering af Java Servlet-teknologier, JavaServer Pages, Java Expression Language og Java WebSocket. Sårbarheden har fået kodeordet Ghostcat og en kritisk faregrad (9.8 CVSS). Problemet muliggør, at indholdet af alle filer fra web-applikationens mappe kan læses via netværksport 8009 ved standardkonfigurationen, herunder konfigurationsfiler og kildekoden til applikationen.
Sårbarheden giver også mulighed for at importere andre filer til applikationens kode, hvilket muliggør udførelse af kode på serveren, hvis applikationen tillader upload af filer til serveren (for eksempel kan en angriber uploade et JSP-script under dække af et billede via en uploadformular). Angrebet kan udføres, hvis der er mulighed for at sende en anmodning til netværksporten med AJP-behandleren. Ifølge foreløbige data er der over 1,2 millioner værter, der modtager anmodninger via AJP-protokollen.
Sårbarheden findes i AJP-protokollen, og af en fejl i implementeringen. Udover at acceptere forbindelser via HTTP (port 8080) tillader Apache Tomcat som standard også adgang til web-applikationen via AJP-protokollen (, port 8009), som er en optimeret binær tilsvarende til HTTP designet til at opnå højere ydeevne, der typisk anvendes ved oprettelse af et Tomcat-serverkluster eller for at fremskynde interaktionen med Tomcat på en omvendt proxy eller belastningsbalancer.
AJP tilbyder en standardfunktion til adgang til filer på serveren, som også kan bruges til at hente filer, der ikke må offentliggøres. Det antages, at adgangen til AJP kun er åben for betroede servere, men i praksis blev AJP-handleren startet på alle netværksinterfaces, og anmodninger blev accepteret uden autentifikation, ifølge standardkonfigurationen for Tomcat. Adgang til enhver fil i web-applikationen er mulig, herunder indholdet af WEB-INF, META-INF og enhver anden mappe, der kan returneres via ServletContext.getResourceAsStream(). AJP tillader også at bruge enhver fil i de tilgængelige mapper til web-applikationen som et JSP-script.
Problemet blev først opdaget i den version af Tomcat 6.x, der blev frigivet for 13 år siden. Udover selve Tomcat er problemet og og de produkter, der bruger det, såsom Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP), samt selvstændige webapplikationer, der bruger . En tilsvarende sårbarhed (CVE-2020-1745) i webserveren , der anvendes i applikationsserveren Wildfly. I JBoss og Wildfly er AJP-protokollen som standard kun aktiveret i standalone-full-ha.xml, standalone-ha.xml og ha/full-ha profiler i domain.xml. I Spring Boot er AJP-support som standard deaktiveret. I øjeblikket har forskellige grupper forberedt over et dusin fungerende eksempler på exploits (
,
,
,
,
,
,
,
,
,
,
).
Sårbarheden er blevet rettet i Tomcat-versioner , og (vedligeholdelse af 6.x-grenen ). Opdateringer i distributionerne kan følges på disse sider: , , , , , . Som en midlertidig beskyttelsesforanstaltning kan Tomcat AJP Connector-tjenesten deaktiveres (binde lyttersocket til localhost eller kommentere linjen med Connector port = "8009"), hvis den ikke er nødvendig, eller autentificeret adgang ved hjælp af attributterne "secret" og "address", hvis tjenesten bruges til interaktion med andre servere og proxyer baseret på mod_jk og mod_proxy_ajp (mod_cluster understøtter ikke autentificering).
Kilde: opennet.ru
