GitHub Advisoryadvisory · PyPI

GHSA-p77j-g7h5-r2vw GeoLens's authorization and cache-scope flaws disclose private dataset data and metadata to unauthorized users (fixed in 1.2.4)

HIGH Published 2026-08-19 Modified 2026-08-19 Official page ↗
Ecosystem
PyPI
Packages
geolens
Severity
High
Weaknesses
CWE-1021, CWE-1392, CWE-200, CWE-285, CWE-400, CWE-524, CWE-532, CWE-918, CWE-93
Reviewed
2026-08-19

Affected packages

• PyPI geolens: < 1.2.4 → fixed in 1.2.4

Description

GeoLens 1.2.4 fixes a set of vulnerabilities, the most serious of which allow authenticated or anonymous users to obtain data and metadata for datasets they are not authorized to access. Impact • Private record metadata disclosure. Record contact, keyword, and distribution sub-resource endpoints did not re-authorize the backing dataset, so any authenticated user could read a private record's contact details (PII), keywords, and distributions. (Runtime-proven.) • Private tile data via shared caches. Private raster and vector tiles were served with shared-cache (`Cache-Control: public`) headers, so a shared cache (a CDN or the bundled reverse proxy) could retain private tile bytes and replay them to later unauthenticated requests, including unpublished public-dataset previews. • Private dataset title enumeration. The map visibility-check endpoint did not authorize read access to the map, allowing any editor to enumerate the titles of non-public datasets in any map by ID — including private maps owned by other users. • SSRF via DNS rebinding. URL validation for user-supplied service URLs (probes, STAC/OGC API sources, manifest downloads) resolved DNS once and then let the HTTP client re-resolve at connect time, allowing a low-TTL domain to pass validation as a public address and connect to an internal/metadata address. • Token leak + header injection in service preview. The remote-service preview path passed the authorization token to GDAL via the process environment without sanitization, leaking it through `/proc//environ` and allowing CRLF header injection. • Unauthenticated STAC search DoS. `POST /search` did not cap the size of GeoJSON `intersects` geometries (the `GET` sibling did). • API key written to access logs. The bundled reverse proxy logged the `api_key` query-string credential in cleartext. • Security posture coupled to a logging flag. API documentation exposure and the Secure flag on the OAuth session cookie were keyed off the `LOG_JSON` logging flag rather than an explicit environment setting, so a production deployment at the default could expose `/docs` and emit a non-Secure session cookie. • Missing Content-Security-Policy (defense-in-depth). The web application shipped no `script-src`/`default-src` CSP, leaving no containment for token exfiltration if an XSS issue were introduced. • Weak default install credentials. The installer kept the published default database password and could silently retain the default admin password on a headless install. Patches Upgrade to GeoLens 1.2.4. No configuration changes are required for the authorization and cache fixes. Operators on a public, TLS-terminated deployment should additionally set `ENVIRONMENT=production` to make the production security posture explicit; deployments that do not set it retain their prior behavior. Workarounds None for the authorization/cache disclosure flaws — upgrading is required. The SSRF and STAC-DoS surfaces can be partially mitigated at the network/proxy layer (egress filtering to block link-local metadata addresses; a request-size limit on `POST /search`), but the code fix is the durable remedy. References • Release: https://github.com/geolens-io/geolens/releases/tag/v1.2.4 • Pull request: https://github.com/geolens-io/geolens/pull/243 • Prior related advisory: GHSA-p23g-mvhj-jh3j

Related

Weakness · CWE (9)

  • CWE-1021 Improper Restriction of Rendered UI Layers or Frames weakness
  • CWE-1392 Use of Default Credentials weakness
  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness
  • CWE-285 Improper Authorization weakness
  • CWE-400 Uncontrolled Resource Consumption weakness
  • CWE-524 Use of Cache Containing Sensitive Information weakness
  • CWE-532 Insertion of Sensitive Information into Log File weakness
  • CWE-918 Server-Side Request Forgery weakness
  • CWE-93 Improper Neutralization of CRLF Sequences weakness

References