Seleccionar página

Rompiendo el Molde: Deteniendo el Código de un Hacker ep.23 – Vulnerabilidad de Ejecución Remota de Código en GeoServer JXPath

GeoServer es un servidor de datos geoespaciales de código abierto utilizado para compartir, procesar y editar datos GIS. Proporciona una plataforma flexible para el desarrollo de servicios y aplicaciones geoespaciales. Recientemente, se descubrió una vulnerabilidad grave en GeoServer JXPath, que permite a los atacantes tomar el control total del servidor afectado, obteniendo acceso y robando datos sensibles almacenados en él.

Vulnerabilidad

La vulnerabilidad de Ejecución Remota de Código (RCE) en GeoServer JXPath, identificada como CVE-2024-36401, permite a los atacantes ejecutar código arbitrario en el servidor mediante la creación de expresiones XPath maliciosas. Estas expresiones, sin el filtrado adecuado, se pasan al analizador interno de JXPath de GeoServer, el cual puede invocar métodos de Java compatibles con JXPath, como crear archivos, leer archivos o ejecutar comandos del sistema. Una vez que se obtiene el acceso inicial, los atacantes pueden intentar moverse lateralmente dentro del sistema para escalar privilegios o acceder a más recursos del sistema.

GeoServer depende de GeoTools para gestionar y operar varios formatos de datos geoespaciales. La API de la biblioteca GeoTools procesa propiedades o nombres de tipos de características y los pasa de manera insegura a la biblioteca commons-jxpath para la evaluación de expresiones XPath, lo que permite a los atacantes ejecutar código arbitrario ingresando expresiones XPath maliciosas. Además, debido a que JXPath se aplica inapropiadamente a tipos de características simples que no requieren un análisis complejo, el alcance de la vulnerabilidad se amplía aún más.

Versión Afectada

– 2.25.0 <= GeoServer < 2.25.2 

– 2.24.0 <= GeoServer < 2.24.4 

– GeoServer < 2.23.6 

Solución

Solución oficial: Para abordar esta vulnerabilidad crítica, se recomienda a los usuarios actualizar a las versiones 2.23.6, 2.24.4 y 2.25.2, que corrigen este problema. Visite: [https://geoserver.org].

Solución alternativa: Eliminar el archivo `gt-complex-x.y.jar` de GeoServer, donde `x.y` es la versión de GeoTools. Esto eliminará el código vulnerable de GeoServer, pero podría deshabilitar algunas funcionalidades o impedir que GeoServer se despliegue si el módulo gt-complex es necesario.

Implementación de la Solución

Actualice la base de datos de firmas de su WAF a la versión 1.2.15 para asegurarse de que el Hillstone Web Application Firewall esté equipado para detectar y proporcionar protección contra esta vulnerabilidad.

Figura 1. Hillstone WAF detecta y protege a los usuarios de esta vulnerabilidad.