ZeroHour

CVE-2026-55178

niche

Broken Access Control in GeoLens Geospatial Catalog Leaks Private Datasets

CVSS 3.1
7.5 high
EPSS
Published
()
Modified
AI analysis

GeoLens, a self-hosted geospatial data catalog, contains a broken access control flaw (prior to version 1.2.3) where read and link endpoints authorize only the resource named in the URL but fail to re-authorize a second caller-influenced dataset reached through relationships, map layers, VRT sources, externalId lookups, or request bodies. Unauthenticated attackers can abuse public maps via GET /maps/{id} and GET /maps/{id}/style. to read private layer metadata, sampled values, or vector tiles, and the style response can leak a replayable HMAC tile URL bound to neither a user nor a map. Anonymous callers can also enumerate dataset relationships to read rows from private target tables, and use GET /collections/datasets/items with an externalId UUID to fetch metadata for any private, restricted, or unpublished dataset with no visibility check. Authenticated default-role editors can additionally mosaic another user's private raster into an owned VRT and read its pixels, or call the POST /ai/metadata endpoints with an arbitrary body-controlled dataset_id to obtain private metadata and sample values. Disclosed data includes vector geometries and attributes, raster pixels, table rows, schemas, feature counts, extents, source URLs, filenames, contacts, and sampled row values; exploitation in the wild is not known and no public PoC exists.

What to do: Upgrade GeoLens to version 1.2.3 or later, where all affected endpoints re-authorize related datasets. Audit logs for anonymous or low-privilege access to /maps/{id}, /maps/{id}/style., /collections/datasets/items (externalId lookups), dataset relationship APIs, and /ai/metadata/* endpoints; rotate HMAC tile URL signing secrets if any style. responses were served publicly. Review datasets referenced by public maps and pre-existing vrt_source_links for unintended disclosure of private layers and member metadata.

Affected
GeoLens project GeoLens (self-hosted geospatial data catalog)All versions prior to 1.2.3 (< 1.2.3)
Estimated exposure
nichelikely dozens to low hundreds of self-hosted deployments (no public install statistics available) — GeoLens is a niche self-hosted open-source geospatial catalog with no published install counts or internet-scan footprint, so only deployment-pattern-based estimation is possible.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

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.

Weakness
CWE-200, CWE-639, CWE-862
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

In the news

No ingested article mentions this CVE yet.