Ghostcat: vulnerabilidad en Apache Tomcat que es capaz de sustituir código

Investigadores de Chaitin Tech, en China dieron a conocer información sobre una nueva vulnerabilidad bautizada como GhostCat en el popular contenedor de servlets (Java Servlet, JavaServer Pages, Java Expression Language y Java WebSocket) Apache Tomcat (ya catalogada como CVE-2020-1938).

Ghostcat tiene un nivel de gravedad crítico (9.8 CVSS). La falla permite en la configuración predeterminada enviar una solicitud a través del puerto de red 8009 para leer el contenido de cualquier archivo del directorio de la aplicación web, incluidos los archivos de configuración y los códigos fuente de la aplicación.

Todas las versiones afectadas (9.x / 8.x / 7.x / 6.x) de Apache Tomcat que se han lanzado en los últimos 13 años.

La vulnerabilidad también permite importar otros archivos en el código de la aplicación, lo que permite organizar la ejecución del código en el servidor si la aplicación permite que los archivos se carguen en el servidor.

La aplicación del sitio web permite a los usuarios cargar archivos, un atacante puede cargar primero un archivo que contenga código JSP malicioso en el servidor (el archivo cargado en sí mismo puede ser cualquier tipo de archivo, como imágenes, archivos de texto plano, etc.) y luego incluya el archivo cargado explotando la vulnerabilidad de Ghostcat, que finalmente puede resultar en la ejecución remota de código.

Además del propio Tomcat, el problema también afecta a los productos que lo utilizan, como Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP), así como a aplicaciones web autónomas que utilizan Spring Boot.

Apache Tomcat ha lanzado oficialmente las versiones 9.0.31, 8.5.51 y 7.0.100 para corregir esta vulnerabilidad. Para corregir esta vulnerabilidad correctamente, primero se debe determinar si el servicio Tomcat AJP Connector se usa en su entorno de servidor:

  • Si no se usa clúster o proxy inverso, básicamente se puede determinar que no se usa AJP.
  • De lo contrario, se debe averiguar si el clúster o el servidor inverso se está comunicando con el servicio Tomcat AJP Connect

Tambien se menciona que ya estan disponibles las actualizaciones en las diferentes distribuciones de Linux como: Debian, Ubuntu, RHEL, Fedora, SUSE.

Los descubridores de la vulnerabilidad han publicado a disposición de todos herramientas para detectar la vulnerabilidad en nuestros servidores en un repositorio en GitHub para diferentes plataformas. Y también su código fuente.

 zema1 released this 10 days ago · 6 commits to master since this release

Features:

  • 添加 servicescan 命令,支持 Tomcat AJP 协议任意文件读取漏洞(幽灵猫漏洞 https://www.chaitin.cn/zh/ghostcat)
    • 使用示例 ./xray servicescan --target 127.0.0.1:8009
    • 批量检测 ./xray servicescan --target-file example.txt
sha256.txt630 Bytes
xray_linux_386.zip11.3 MB
xray_linux_arm.zip11.1 MB

Tenable, la conocida empresa del software de ciberseguridad Nessus, dio a conocer varias pruebas de concepto en GitHub

https://github.com/laolisafe/CVE-2020-1938

https://github.com/xindongzhuaizhuai/CVE-2020-1938

https://github.com/0nise/CVE-2020-1938

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

https://github.com/nibiwodong/CNVD-2020-10487-Tomcat-ajp-POC