CVE-2026-55178 GeoLens: Cross-dataset authorization bypass discloses private dataset metadata, schema, sample values, table rows, and raster/vector tile data

High 7.5 Published Updated

Attackers can bypass authorization checks to read private dataset metadata, schemas, and tile data in GeoLens.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-55178?

CVE-2026-55178 is a high-severity missing authorization vulnerability in geolens-io geolens, published on 15 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official 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-862, CWE-639, CWE-200

Which versions are affected by CVE-2026-55178?

8 open source packages ship an affected version, including geolens, geolens-cli and @geolens/sdk.

PackageAffectedFixed in
geolens PyPIAll versions1.2.3
geolens PyPIAll versions1.2.3
geolens PyPIAll versions1.2.3
geolens-cli PyPIAll versions1.2.3
geolens-cli PyPIAll versions1.2.3
geolens-cli PyPIAll versions1.2.3
2 more packages
@geolens/sdk npmAll versions1.2.3
@geolens/sdk npmAll versions1.2.3

How do I fix CVE-2026-55178?

Upgrade geolens to 1.2.3 or later.

Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.

Is CVE-2026-55178 being exploited?

There is no known exploitation of CVE-2026-55178 in the wild and no public exploit code.

Sources

Also known as GHSA-p23g-mvhj-jh3j, PYSEC-2026-3662, PYSEC-2026-3663.

Is CVE-2026-55178 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free