Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-39922

CVE-2026-39922: GeoNode SSRF Vulnerability

CVE-2026-39922 is an SSRF flaw in Geosolutionsgroup GeoNode affecting versions 4.4.5 and 5.0.2 and earlier. Authenticated attackers can probe internal networks through crafted service URLs. This article covers technical details, affected versions, impact, and mitigation strategies.

Updated:

CVE-2026-39922 Overview

CVE-2026-39922 is a Server-Side Request Forgery (SSRF) vulnerability [CWE-918] in GeoNode, an open-source geospatial content management platform maintained by GeoSolutions Group. The flaw resides in the service registration endpoint, where the Web Map Service (WMS) handler fails to validate user-supplied URLs before issuing outbound HTTP requests. Authenticated attackers can submit crafted service URLs during form validation to coerce the application into contacting arbitrary internal hosts. Affected releases include GeoNode 4.4.5 and 5.0.2, along with prior versions in those branches.

Critical Impact

Authenticated attackers can pivot from GeoNode to internal infrastructure, probing loopback interfaces, RFC1918 private ranges, link-local addresses, and cloud metadata endpoints such as 169.254.169.254.

Affected Products

  • GeoNode 4.4.5 and prior 4.x releases
  • GeoNode 5.0.2 and prior 5.x releases
  • Deployments exposing the service registration endpoint to authenticated users

Discovery Timeline

  • 2026-04-10 - CVE-2026-39922 published to NVD
  • 2026-04-16 - Last updated in NVD database

Technical Details for CVE-2026-39922

Vulnerability Analysis

GeoNode exposes a service registration workflow that accepts a remote URL pointing to an OGC-compliant endpoint such as WMS, WFS, or WCS. When a user submits the form, the backend performs server-side validation by issuing an HTTP request to confirm the service responds with expected metadata. The WMS service handler dispatches this request without filtering the destination host, enabling SSRF against any reachable network resource.

Because the request originates from the GeoNode server, attackers reach assets that are otherwise unreachable from the public internet. Targets include internal administrative panels, container orchestration APIs, databases bound to localhost, and cloud instance metadata services that issue temporary credentials. Response behavior, timing, and error messages can be leveraged to map internal infrastructure even when full response contents are not returned.

Root Cause

The handler trusts user-supplied URLs without enforcing an allowlist of permitted hosts or rejecting addresses in reserved ranges. There is no DNS resolution check to verify that hostnames do not resolve to private IPs, and no protocol restriction limiting requests to HTTP and HTTPS. The validation logic accepts the URL, resolves it, and connects to whatever target the resolver returns.

Attack Vector

An authenticated user with permission to register external services submits a crafted service URL referencing an internal target. Example targets include http://127.0.0.1:8080/admin, http://10.0.0.5:5432, or http://169.254.169.254/latest/meta-data/iam/security-credentials/. The GeoNode backend issues the outbound request and surfaces response data or differential errors back to the attacker through form validation feedback. See the GitHub Security Advisory and Vulncheck Advisory for GeoNode SSRF for additional technical context.

Detection Methods for CVE-2026-39922

Indicators of Compromise

  • Outbound HTTP requests from GeoNode application servers to RFC1918 ranges, 127.0.0.0/8, or 169.254.0.0/16
  • Application logs showing service registration attempts with URLs targeting internal hosts or cloud metadata endpoints
  • Unexpected HTTP requests from the GeoNode service account to internal management interfaces
  • Authentication events for low-privilege GeoNode users followed by service registration form submissions

Detection Strategies

  • Inspect GeoNode application logs for service registration submissions and correlate the url parameter against private IP ranges and metadata endpoints
  • Monitor egress traffic from GeoNode hosts at the network layer and alert on connections to internal subnets that fall outside normal operational baselines
  • Review web access logs for repeated POST requests to the service registration endpoint from a single user account

Monitoring Recommendations

  • Enable verbose logging on the WMS service handler to capture full URLs submitted during registration
  • Forward GeoNode application logs and host network flow data to a centralized analytics platform for correlation
  • Establish baseline egress patterns and alert on deviations such as requests to 169.254.169.254 or non-routable address space

How to Mitigate CVE-2026-39922

Immediate Actions Required

  • Upgrade GeoNode to a release that includes the SSRF fix from the GitHub Security Advisory
  • Restrict service registration permissions to trusted administrative accounts only
  • Apply egress filtering on GeoNode application servers to block requests to internal ranges and cloud metadata IPs
  • Audit existing registered services for entries pointing at internal infrastructure

Patch Information

GeoNode maintainers have published a security advisory tracked as GHSA-hw9r-6m78-w6h3. Operators running GeoNode 4.4.5, 5.0.2, or earlier should upgrade to the fixed release identified in the advisory. The patch introduces URL validation that rejects private, loopback, and link-local destinations during service registration.

Workarounds

  • Place GeoNode behind an egress proxy that enforces an allowlist of permitted external OGC service hosts
  • Bind sensitive services such as databases, orchestration APIs, and admin panels to interfaces unreachable from the GeoNode host
  • Use Instance Metadata Service Version 2 (IMDSv2) on AWS workloads to require session tokens for metadata access
  • Temporarily disable the service registration feature if patching cannot be performed immediately
bash
# Example egress firewall rules blocking SSRF targets from the GeoNode host
iptables -A OUTPUT -d 127.0.0.0/8 -j REJECT
iptables -A OUTPUT -d 10.0.0.0/8 -j REJECT
iptables -A OUTPUT -d 172.16.0.0/12 -j REJECT
iptables -A OUTPUT -d 192.168.0.0/16 -j REJECT
iptables -A OUTPUT -d 169.254.0.0/16 -j REJECT

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.