CVE-2024-34696: GeoServer's Server Status shows sensitive environmental variables and Java properties
GeoServer’s Server Status page and REST API (at /geoserver/rest/about/status
) lists all environment variables and Java properties to any GeoServer user with administrative rights as part of those modules’ status message.
These variables/properties can also contain sensitive information, such as database passwords or API keys/tokens, for example:
Data stores defined with parameterized catalog settings (
-DALLOW_ENV_PARAMETRIZATION=true
) which need a password or access key.GeoServer’s official Docker image uses environment variables to configure PostgreSQL JNDI resources, including credentials (
POSTGRES_HOST
,POSTGRES_USERNAME
,POSTGRES_PASSWORD
)
Additionally, many community-developed GeoServer container images export
other credentials from their start-up scripts as environment variables to the GeoServer (java
) process, such as:
GeoServer
admin
and master (root
) passwordsTomcat management application password
HTTPS/TLS certificate key store password
AWS S3 bucket access keys
The precise scope of the issue depends on which container image is used and how it is configured.
[!NOTE] Some container images allow passing secrets as files (eg:
POSTGRES_PASSWORD_FILE
), or randomly generating passwords on start-up. While this is promoted as best-practice[^secret-files], if its start-up scriptexport
s these as environment variables to GeoServer, they are also impacted by this issue.
References
Detect and mitigate CVE-2024-34696 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →