---
id: "CVE-2026-103485"
kind: "vulnerability"
aliases: ["CVE-2026-103485"]
title: "WordPress Leaflet Map plugin: stored DOM XSS via GeoJSON template parameter"
severity: "medium"
cvss: 5.4
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["leaflet-map", "package", "wordpress", "wordpress-plugins"]
not_affected_if: ["geojson-src-controlled-by-owner", "plugin-not-installed", "shortcode-not-used"]
published_at: "2026-10-29T10:17:00+00:00"
first_seen_at: "2026-10-29T10:24:24+00:00"
updated_at: "2026-10-29T10:25:32+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-103485", "first_seen_at": "2026-10-29T10:24:24+00:00"}]
---

# WordPress Leaflet Map plugin: stored DOM XSS via GeoJSON template parameter

The Extensions for Leaflet Map plugin for WordPress up to and including 5.4 fails to sanitize a GeoJSON feature property, so injected script can run in pages that show a configured map. An unauthenticated attacker who controls the GeoJSON source URL can make the script run in visitors' browsers.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed version of the Extensions for Leaflet Map plugin in the WordPress admin plugin list, looking for `5.4` or earlier.
- Search page content for the `[leaflet-map]` shortcode combined with `[leaflet-geojson]` and `[choropleth]`, and check whether the GeoJSON src points to a host you do not control.

## Timeline

- 2026-10-29T10:24:24+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-103485

## From the sources

The Extensions for Leaflet Map plugin for WordPress is vulnerable to Stored DOM-Based Cross-Site Scripting via the 'feature.properties[<template-token>]' parameter in all versions up to, and including, 5.4 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Exploitation requires that a site administrator has previously configured a public map using the [leaflet-map]+[leaflet-geojson]+[choropleth] shortcode combination whose GeoJSON src URL is one the attacker controls — for example, through compromise of an external data host, a subdomain takeover, or a site intentionally pointing at an attacker-hosted feed.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
