Vulnerabilitat a Apache Tomcat que permet substituir el codi JSP i obtenir fitxers d'aplicacions web

Els investigadors de l'empresa xinesa Chaitin Tech ho han descobert vulnerabilitat (CVE-2020-1938) a Apache Tomcat, una implementació oberta de les tecnologies Java Servlet, JavaServer Pages, Java Expression Language i Java WebSocket. A la vulnerabilitat se li ha assignat el nom de codi Ghostcat i un nivell de gravetat crític (9.8 CVSS). El problema permet, en la configuració predeterminada, enviant una sol·licitud al port de xarxa 8009, llegir el contingut de qualsevol fitxer del directori de l'aplicació web, inclosos els fitxers amb la configuració i els codis font de l'aplicació.

La vulnerabilitat també permet importar altres fitxers al codi de l'aplicació, cosa que permet l'execució de codi al servidor si l'aplicació permet carregar fitxers al servidor (per exemple, un atacant pot carregar un script JSP disfressat com una imatge mitjançant el formulari de càrrega d'imatges). L'atac es pot dur a terme quan és possible enviar una sol·licitud a un port de xarxa amb un controlador AJP. Segons dades preliminars, en línia trobat més d'1.2 milions d'amfitrions que accepten sol·licituds mitjançant el protocol AJP.

La vulnerabilitat existeix en el protocol AJP, i no es diu error en la implementació. A més d'acceptar connexions via HTTP (port 8080), Apache Tomcat permet per defecte l'accés a una aplicació web mitjançant el protocol AJP (Protocol Apache Jserv, port 8009), que és un anàleg binari d'HTTP optimitzat per a un rendiment més alt, que s'utilitza normalment quan es crea un clúster de servidors Tomcat o per accelerar la interacció amb Tomcat en un servidor intermediari invers o equilibrador de càrrega.

AJP proporciona una funció estàndard per accedir a fitxers al servidor, que es pot utilitzar, inclosa l'obtenció de fitxers que no estan subjectes a divulgació. Se suposa que l'AJP només és accessible per a servidors de confiança, però de fet, la configuració predeterminada de Tomcat va executar el controlador a totes les interfícies de xarxa i acceptava peticions sense autenticació. És possible accedir a qualsevol fitxer d'aplicació web, inclosos els continguts de WEB-INF, META-INF i qualsevol altre directori proporcionat mitjançant una trucada a ServletContext.getResourceAsStream(). L'AJP també us permet utilitzar qualsevol fitxer dels directoris accessibles a l'aplicació web com a script JSP.

El problema ha aparegut des que la branca Tomcat 13.x es va llançar fa 6 anys. A més del problema Tomcat en si afecta i productes que l'utilitzen, com ara Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP), així com aplicacions web autònomes que utilitzen Arrencada de primavera. Vulnerabilitat similar (CVE-2020-1745) present al servidor web ressaca, utilitzat al servidor d'aplicacions Wildfly. A JBoss i Wildfly, AJP només està habilitat per defecte als perfils standalone-full-ha.xml, standalone-ha.xml i ha/full-ha a domain.xml. A Spring Boot, el suport AJP està desactivat per defecte. Actualment, diferents grups han preparat més d'una dotzena d'exemples de treball d'explotacions (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

Vulnerabilitat arreglada a les versions de Tomcat 9.0.31, 8.5.51 и 7.0.100 (manteniment de la branca 6.x discontinuada). Podeu fer un seguiment de la disponibilitat de les actualitzacions dels kits de distribució a aquestes pàgines: Debian, Ubuntu, RHEL, Fedora, SUSE, FreeBSD. Com a solució alternativa, podeu desactivar el servei Tomcat AJP Connector (enllaçar una presa d'escolta a localhost o comentar la línia amb Connector port = "8009") si no és necessari, o bé настроить accés autenticat mitjançant els atributs "secret" i "adreça", si el servei s'utilitza per interactuar amb altres servidors i servidors intermediaris basats en mod_jk i mod_proxy_ajp (mod_cluster no admet l'autenticació).

Font: opennet.ru

Afegeix comentari