Description
GeoLens is a self-hosted geospatial data catalog with semantic search, OGC and STAC APIs, and a map builder. Prior to 1.2.3, multiple read and link endpoints authorize only the resource named in the request URL and fail to re-authorize a second caller-influenced dataset reached through a relationship, map layer, VRT source, externalId lookup, or request body. When a public map references a private dataset, anonymous callers can use GET /maps/{id} and GET /maps/{id}/style.json to obtain the private layer's metadata, sampled values, or vector tiles. The style response can expose a replayable HMAC tile URL that is bound to neither a user nor a map. When a public source dataset has a relationship to a private target dataset, anonymous callers can use the dataset relationship APIs to enumerate the relationship and read rows from the private target's backing table. Anonymous callers can also use GET /collections/datasets/items with an externalId dataset UUID to obtain metadata for any private, restricted, or unpublished dataset because that lookup performs no visibility check. Authenticated users with the default editor role can mosaic another user's private raster into an owned VRT and read its pixels, and POST /ai/metadata/{summary,keywords,lineage,quality-statement} accepts a body-controlled dataset_id without a visibility check and returns private metadata and sample values. Pre-existing vrt_source_links also expose unauthorized member metadata and health unless each member is filtered at read time. These paths can disclose vector geometries and attributes, raster pixels, table rows, table names, column schemas, feature counts, extents, source URLs and filenames, contacts, and sampled row values. This issue is fixed in version 1.2.3.
Published: 2026-09-15
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Information Disclosure
Action: Patch Immediately
AI Analysis

Impact

GeoLens is a self-hosted geospatial data catalog with semantic search, OGC and STAC APIs, and a map builder. Prior to v1.2.3, the catalog’s read and link endpoints authorize only the resource named in the request URL and fail to re-authorize a second caller‑influenced dataset reached through a relationship, map layer, VRT source, externalId lookup, or request body. As a result, a cross‑dataset authorization bypass allows an attacker to traverse these paths. When a public map references a private dataset, anonymous callers can use GET /maps/{id} and GET /maps/{id}/style.json to obtain private layer metadata, sampled values, or vector tiles. The style response can expose a replayable HMAC tile URL that is bound to neither a user nor a map. If a public source dataset has a relationship to a private target dataset, anonymous callers can enumerate that relationship via the dataset relationship APIs and read rows from the private target’s backing table. Anonymous callers can also use GET /collections/datasets/items with an externalId dataset UUID to obtain metadata for any private, restricted, or unpublished dataset because that lookup performs no visibility check. Authenticated users with the default editor role can mosaic another user’s private raster into an owned VRT and read its pixels, and POST /ai/metadata/{summary,keywords,lineage,quality-statement} accepts a body‑controlled dataset_id without a visibility check and returns private metadata and sample values. Pre‑existing vrt_source_links also expose unauthorized member metadata and health unless each member is filtered at read time. These paths can disclose vector geometries and attributes, raster pixels, table rows, table names, column schemas, feature counts, extents, source URLs and filenames, contacts, and sampled row values.

Affected Systems

Any GeoLens deployment built from the open‑source project prior to the release of v1.2.3 is affected. This includes all versions that still use the legacy authorization logic, regardless of operating system or configuration. The vendor’s fix is delivered in release v1.2.3, so systems on older versions or that have not applied the patch remain vulnerable.

Risk and Exploitability

The CVSS score of 7.5 indicates a moderate‑high severity vulnerability that primarily jeopardizes data confidentiality. The EPSS score is very low (< 1%) and the vulnerability is not listed in CISA’s KEV catalog. Attackers can exploit the flaw by issuing standard HTTP requests to public endpoints without authentication; the absence of visibility checks allows anonymous users or users with the default editor role to read private layer data, sample values, vector tiles, raster pixels, table rows, schemas, or enumeration of relationships. The attack vector is straightforward, the barrier to entry is low, and the potential impact is significant in environments where anonymous access or public maps are enabled.

Generated by OpenCVE AI on September 20, 2026 at 16:47 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade your GeoLens deployment to version 1.2.3 or later to apply the vendor‑issued fix.
  • Ensure that any custom or legacy authorization logic in your deployment has been updated to invoke the new visibility checks for all dataset‑related endpoints, including map builders; enforce visibility validation during map generation or lookup to prevent accidental disclosure.
  • Review and adjust public map settings so that private datasets are not referenced in publicly accessible maps or styles, and limit anonymous access to map and style endpoints that do not involve private data.

Generated by OpenCVE AI on September 20, 2026 at 16:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-p23g-mvhj-jh3j GeoLens: Cross-dataset authorization bypass discloses private dataset metadata, schema, sample values, table rows, and raster/vector tile data
History

Thu, 17 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
First Time appeared Geolens-io
Geolens-io geolens
Vendors & Products Geolens-io
Geolens-io geolens

Thu, 17 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 15 Sep 2026 15:15:00 +0000

Type Values Removed Values Added
Description GeoLens is a self-hosted geospatial data catalog with semantic search, OGC and STAC APIs, and a map builder. Prior to 1.2.3, multiple read and link endpoints authorize only the resource named in the request URL and fail to re-authorize a second caller-influenced dataset reached through a relationship, map layer, VRT source, externalId lookup, or request body. When a public map references a private dataset, anonymous callers can use GET /maps/{id} and GET /maps/{id}/style.json to obtain the private layer's metadata, sampled values, or vector tiles. The style response can expose a replayable HMAC tile URL that is bound to neither a user nor a map. When a public source dataset has a relationship to a private target dataset, anonymous callers can use the dataset relationship APIs to enumerate the relationship and read rows from the private target's backing table. Anonymous callers can also use GET /collections/datasets/items with an externalId dataset UUID to obtain metadata for any private, restricted, or unpublished dataset because that lookup performs no visibility check. Authenticated users with the default editor role can mosaic another user's private raster into an owned VRT and read its pixels, and POST /ai/metadata/{summary,keywords,lineage,quality-statement} accepts a body-controlled dataset_id without a visibility check and returns private metadata and sample values. Pre-existing vrt_source_links also expose unauthorized member metadata and health unless each member is filtered at read time. These paths can disclose vector geometries and attributes, raster pixels, table rows, table names, column schemas, feature counts, extents, source URLs and filenames, contacts, and sampled row values. This issue is fixed in version 1.2.3.
Title GeoLens: Cross-dataset authorization bypass discloses private dataset metadata, schema, sample values, table rows, and raster/vector tile data
Weaknesses CWE-200
CWE-639
CWE-862
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}


Subscriptions

Geolens-io Geolens
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-17T14:44:24.994Z

Reserved: 2026-06-16T15:20:43.085Z

Link: CVE-2026-55178

cve-icon Vulnrichment

Updated: 2026-09-17T14:44:21.228Z

cve-icon NVD

Status : Deferred

Published: 2026-09-15T15:17:18.747

Modified: 2026-09-30T17:51:56.193

Link: CVE-2026-55178

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-20T17:00:13Z

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor

  • CWE-639

    Authorization Bypass Through User-Controlled Key

  • CWE-862

    Missing Authorization