CVE

Vulnerabilidad en GeoServer (CVE-2024-36401)

Severidad:
CRÍTICA
Type:
CWE-94 Control incorrecto de generación de código (Inyección de código)
Fecha de publicación:
01/07/2024
Última modificación:
16/07/2024

Descripción

GeoServer es un servidor de código abierto que permite a los usuarios compartir y editar datos geoespaciales. Antes de las versiones 2.23.6, 2.24.4 y 2.25.2, varios parámetros de solicitud de OGC permitían la ejecución remota de código (RCE) por parte de usuarios no autenticados a través de entradas especialmente diseñadas en una instalación predeterminada de GeoServer debido a la evaluación insegura de nombres de propiedades como expresiones XPath. La API de la librería GeoTools a la que llama GeoServer evalúa los nombres de propiedades/atributos para tipos de entidades de una manera que los pasa de manera insegura a la librería commons-jxpath, que puede ejecutar código arbitrario al evaluar expresiones XPath. Esta evaluación XPath está destinada a ser utilizada únicamente por tipos de funciones complejas (es decir, almacenes de datos de esquemas de aplicación), pero también se aplica incorrectamente a tipos de funciones simples, lo que hace que esta vulnerabilidad se aplique a **TODAS** las instancias de GeoServer. No se proporciona ninguna PoC pública, pero se ha confirmado que esta vulnerabilidad es explotable a través de solicitudes WFS GetFeature, WFS GetPropertyValue, WMS GetMap, WMS GetFeatureInfo, WMS GetLegendGraphic y WPS Execute. Esta vulnerabilidad puede llevar a la ejecución de código arbitrario. Las versiones 2.23.6, 2.24.4 y 2.25.2 contienen un parche para el problema. Existe una workaround eliminando el archivo `gt-complex-xyjar` del GeoServer donde `xy` es la versión de GeoTools (por ejemplo, `gt-complex-31.1.jar` si ejecuta GeoServer 2.25.1). Esto eliminará el código vulnerable de GeoServer, pero puede interrumpir algunas funciones de GeoServer o evitar que GeoServer se implemente si se necesita el módulo gt-complex.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:geoserver:geoserver:*:*:*:*:*:*:*:* 2.23.6 (excluyendo)
cpe:2.3:a:geoserver:geoserver:*:*:*:*:*:*:*:* 2.24.0 (incluyendo) 2.24.4 (excluyendo)
cpe:2.3:a:geoserver:geoserver:*:*:*:*:*:*:*:* 2.25.0 (incluyendo) 2.25.2 (excluyendo)
cpe:2.3:a:geotools:geotools:*:*:*:*:*:*:*:* 29.6 (excluyendo)
cpe:2.3:a:geotools:geotools:*:*:*:*:*:*:*:* 30.0 (incluyendo) 30.4 (excluyendo)
cpe:2.3:a:geotools:geotools:*:*:*:*:*:*:*:* 31.0 (incluyendo) 31.2 (excluyendo)