Hace poco se reveló una vulnerabilidad en Apache Tomcat, la cual pasó a ser conocida como GhostCat e identificada bajo el ID CVE-2020-1938, que podría llegar a permitir la ejecución de código remoto sobre un servidor vulnerable.
Ahora, pocos días después de que se hiciese pública la misma, se ha estado observando actividad en la red que parece indicar que los cibercriminales se encuentran interesados en localizar servidores vulnerables que se encuentren expuestos de cara a Internet.
La superficie de ataque
La vulnerabilidad Ghostcat, de tipo file read/include, reside en el Apache JServ Protocol (AJP) presente en Apache Tomcat entre sus versiones 6 y 9.
Versión | Versiones afectadas | Versión que corrige el fallo |
Apache Tomcat 9 | Hasta 9.0.30 | 9.0.31 |
Apache Tomcat 8 | Hasta 8.5.50 | 8.5.51 |
Apache Tomcat 7 | Hasta 7.0.99 | 7.0.100 |
Apache Tomcat 6 | Toda versión | No la hay ni habrá. Se encuentra fuera de soporte. |
Se encuentran en riesgo todos los servidores Apache Tomcat 6, 7, 8 y 9 que no cuenten con las versiones que resuelven la vulnerabilidad, siempre que también posean el conector AJP habilitado y se encuentren escuchando en el puerto 8009.
Para aquellos no puedan actualizar a la brevedad su versión de Apache Tomcat, se recomienda deshabilitar el conector AJP si no se encuentra en uso, o bien configurar el atributo requiredSecret para que se requieran credenciales de autenticación.
Update: Pre-requisitos para la ejecución de código remoto a través de GhostCat
El security researcher João Matos identificó los requisitos necesarios para que un atacante pudiera realizar ejecución de código remoto a través de la explotación de GhostCat.
Sólo para clarificar: CVE-2020-1938 NO es una vulnerabilidad de ejecución de código remoto por defecto. Es una de tipo Local File Inclusion. Asique si puedes:
- Subir archivos a través de una APP feature.
- Estos archivos son guardados dentro de la raíz de documentos
- Alcanzar el puerto AJP de forma directa.
En ese caso, sí puede ser convertido en una ejecución de código remoto.