Information disclosure in geolens-io geolens
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Information disclosure, Security bypass
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-200 and CWE-639.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| geolens-io | geolens | before 1.2.3 | 1.2.3 | Patch available | CNA |
| — | @geolens/sdk (npm) | before 1.2.3 | 1.2.3 | Patch available | GHSA-p23g-mvhj-jh3j |
| — | geolens-cli (PyPI) | before 1.2.3 | 1.2.3 | Patch available | GHSA-p23g-mvhj-jh3j |
| — | geolens (PyPI) | before 1.2.3 | 1.2.3 | Patch available | GHSA-p23g-mvhj-jh3j |
- geolens Vendorgeolens-io Affected before 1.2.3 Fixed in 1.2.3 Patch available CNA
- @geolens/sdk (npm) Vendor— Affected before 1.2.3 Fixed in 1.2.3 Patch available GHSA-p23g-mvhj-jh3j
- geolens-cli (PyPI) Vendor— Affected before 1.2.3 Fixed in 1.2.3 Patch available GHSA-p23g-mvhj-jh3j
- geolens (PyPI) Vendor— Affected before 1.2.3 Fixed in 1.2.3 Patch available GHSA-p23g-mvhj-jh3j
Remediation
- Fix · CNA geolens (geolens-io) Fixed in 1.2.3
- Fix · GHSA-p23g-mvhj-jh3j @geolens/sdk (npm) Fixed in 1.2.3 Advisory →
- Fix · GHSA-p23g-mvhj-jh3j geolens-cli (PyPI) Fixed in 1.2.3 Advisory →
- Fix · GHSA-p23g-mvhj-jh3j geolens (PyPI) Fixed in 1.2.3 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-55178
- 2026-10-03 Alias added: GHSA-p23g-mvhj-jh3j
- 2026-10-18 EPSS moved to the 50th–90th percentile
References
Other 13
- https://github.com/geolens-io/geolens/security/advisories/GHSA-p23g-mvhj-jh3j
- https://github.com/geolens-io/geolens/pull/234
- https://github.com/geolens-io/geolens/pull/235
- https://github.com/geolens-io/geolens/pull/236
- https://github.com/geolens-io/geolens/pull/237
- https://github.com/geolens-io/geolens/pull/238
- https://github.com/geolens-io/geolens/commit/01bc87da03a5ecd0322c42388f4bfced7cb2ed06
- https://github.com/geolens-io/geolens/commit/07dfb1c63ecfc065c0c47b7718ec6ebe97798b1e
- https://github.com/geolens-io/geolens/commit/2c031da8e753639ff0e36d47ca05bbb96fbe4a9e
- https://github.com/geolens-io/geolens/commit/31a103b96b9fd6ad90308b3e27a581852c4a69bd
- https://github.com/geolens-io/geolens/commit/407c068836058fdeca6bb477d39f841316b326a5
- https://github.com/geolens-io/geolens/releases/tag/v1.2.3
- https://github.com/geolens-io/geolens
Sources
- CVE-2026-55178 · CVE Program
- CVE-2026-55178 · NVD
- FIRST EPSS
- GHSA-p23g-mvhj-jh3j · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences