CVE-2026-58505: geojson-vt: uncontrolled recursion enables remote DoS

HIGH
Published November 11, 2026
CISO Take

@maplibre/geojson-vt before 6.1.1 crashes the whole Node.js process when it parses a deeply nested GeoJSON GeometryCollection, so one unauthenticated network request can take down a service (CWE-674, CVSS 7.5, availability impact only). This is a geospatial library, not an AI/ML component, so its link to AI is indirect. It matters only where it sits in data pipelines that feed ML models, for example geospatial feature preparation or map-based analytics services that accept GeoJSON from untrusted sources. There is no EPSS score, no public exploit, no Nuclei template and no CISA KEV listing, so there is no evidence of active exploitation. However, the trigger is trivial to build and needs no non-default options. Upgrade to 6.1.1, inventory services that pass externally supplied GeoJSON into the library, and add payload depth and size limits plus process supervision as a stopgap.

Sources:NVDGitHub AdvisoryATLAS

What is the risk?

Moderate-to-high for any internet-facing service that feeds untrusted GeoJSON to the library, because it needs no authentication, no user interaction and low complexity. Impact is limited to availability, with no confidentiality or integrity effect. Exploitation likelihood is unquantified: EPSS is N/A, there is no known public exploit and it is not in KEV. Risk for AI/ML systems is low, since the library is not an AI component and only matters when it is embedded in an AI data-handling path. Package risk score and dependent counts are unknown, so blast radius cannot be sized from available data.

How does the attack unfold?

Initial Access
The attacker locates a network-reachable service that accepts GeoJSON input and uses @maplibre/geojson-vt below 6.1.1.
AML.T0049
Exploitation
A single crafted payload with deeply nested GeometryCollection objects triggers unbounded recursion in featureToInternal and convertGeometryCollection.
Impact
The call stack is exhausted and the Node.js process crashes with an unhandled RangeError, causing denial of service for the service and any dependent pipeline.

How severe is it?

CVSS 3.1
7.5 / 10
EPSS
0.7%
chance of exploitation in 30 days
Higher than 53% of all CVEs
Exploitation Status
No known exploitation
Sophistication
Trivial

What is the attack surface?

AVACPRUISCIA
AVNetwork
ACLow
PRNone
UINone
SUnchanged
CNone
INone
AHigh

What should I do?

1 step
  1. 1) Upgrade @maplibre/geojson-vt to 6.1.1 or later (fix in commit cb85688 / PR #156). 2) Find the library with SBOM or dependency scanning (npm ls @maplibre/geojson-vt), including transitive use. 3) Until patched, validate GeoJSON before it reaches the library: cap request body size and maximum nesting depth of GeometryCollection, or reject nested GeometryCollections. 4) Run services under a supervisor (systemd, Kubernetes restart policies) with rate limiting and health checks to limit the outage window. 5) Detect by alerting on repeated process crashes or restarts with 'Maximum call stack size exceeded' in logs, and on unusually large or deeply nested request bodies.

How is it classified?

Which compliance frameworks are affected?

This CVE is relevant to:

NIST AI RMF
GOVERN 6.1-Policies and procedures address AI risks arising from third-party software and data

Frequently Asked Questions

What is CVE-2026-58505?

@maplibre/geojson-vt before 6.1.1 crashes the whole Node.js process when it parses a deeply nested GeoJSON GeometryCollection, so one unauthenticated network request can take down a service (CWE-674, CVSS 7.5, availability impact only). This is a geospatial library, not an AI/ML component, so its link to AI is indirect. It matters only where it sits in data pipelines that feed ML models, for example geospatial feature preparation or map-based analytics services that accept GeoJSON from untrusted sources. There is no EPSS score, no public exploit, no Nuclei template and no CISA KEV listing, so there is no evidence of active exploitation. However, the trigger is trivial to build and needs no non-default options. Upgrade to 6.1.1, inventory services that pass externally supplied GeoJSON into the library, and add payload depth and size limits plus process supervision as a stopgap.

Is CVE-2026-58505 actively exploited?

No confirmed active exploitation of CVE-2026-58505 has been reported, but organizations should still patch proactively.

How to fix CVE-2026-58505?

1) Upgrade @maplibre/geojson-vt to 6.1.1 or later (fix in commit cb85688 / PR #156). 2) Find the library with SBOM or dependency scanning (npm ls @maplibre/geojson-vt), including transitive use. 3) Until patched, validate GeoJSON before it reaches the library: cap request body size and maximum nesting depth of GeometryCollection, or reject nested GeometryCollections. 4) Run services under a supervisor (systemd, Kubernetes restart policies) with rate limiting and health checks to limit the outage window. 5) Detect by alerting on repeated process crashes or restarts with 'Maximum call stack size exceeded' in logs, and on unusually large or deeply nested request bodies.

What systems are affected by CVE-2026-58505?

This vulnerability affects the following AI/ML architecture patterns: Geospatial data processing pipelines, Server-side tile services, Data ingestion and preprocessing services, Map-based analytics APIs.

What is the CVSS score for CVE-2026-58505?

CVE-2026-58505 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 0.69%.

What is the AI security impact?

Affected AI Architectures

Geospatial data processing pipelinesServer-side tile servicesData ingestion and preprocessing servicesMap-based analytics APIs

MITRE ATLAS Techniques

AML.T0049Exploit Public-Facing Application

Compliance Controls Affected

NIST AI RMF: GOVERN 6.1

What are the technical details?

Original Advisory

geojson-vt is a JavaScript library for slicing GeoJSON data into vector tiles on the fly, primarily designed to enable rendering and interacting with large geospatial datasets on the browser side (without a server). Prior to version 6.1.1, @maplibre/geojson-vt contains an uncontrolled recursion vulnerability in its GeoJSON conversion logic. When a GeoJSONVT instance is constructed with a deeply nested GeometryCollection object, the mutually recursive functions featureToInternal and convertGeometryCollection in src/convert.ts exhaust the Node.js call stack, causing an unhandled RangeError: Maximum call stack size exceeded that terminates the process. Because the library is widely used in server-side tile services that accept GeoJSON over the network, a remote unauthenticated attacker can trigger a denial-of-service by sending a single crafted payload. No authentication is required, and no non-default library options are needed. This issue has been patched in version 6.1.1.

Exploitation Scenario

An attacker finds a public endpoint of a geospatial tile or data-preparation service that accepts GeoJSON, for example one feeding a location-based ML model. They send a single payload with thousands of nested GeometryCollection objects. The recursive conversion functions exhaust the call stack, the Node.js process dies, and any downstream inference or analytics workflow that depends on it stalls. The attacker repeats the request each time the service restarts to keep it down.

Weaknesses (CWE)

CWE-674 — Uncontrolled Recursion: The product does not properly control the amount of recursion that takes place, consuming excessive resources, such as allocated memory or the program stack.

  • [Implementation] Ensure that an end condition will be reached under all logic conditions. The end condition may include checking against the depth of recursion and exiting with an error if the recursion goes too deep. The complexity of the end condition contributes to the effectiveness of this action.
  • [Implementation] Increase the stack size.

Source: MITRE CWE corpus.

CVSS Vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Timeline

Published
November 11, 2026
Last Modified
November 13, 2026
First Seen
November 11, 2026

Related Vulnerabilities