Skip to main content

MapPress Maps WordPress EUVDEUVD-2026-34957

| CVE-2026-8839 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-06-06 Wordfence GHSA-4m8c-59q5-hc8f
5.3
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Enumerate sequential mapids via open GET REST endpoint
  2. Delivery
    Harvest POI addresses and coordinates unauthenticated
  3. Exploit
    Authenticate as Contributor-level WordPress user
  4. Execution
    Submit DELETE/PATCH/clone REST request with victim map ID
  5. Persist
    Plugin checks edit_posts only, skips ownership verification
  6. Impact
    Victim's map deleted or overwritten

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Two distinct exploitation conditions exist. For the unauthenticated read path: no special conditions - any HTTP client can issue GET requests to /wp-json/mapp/v1/maps/{mapid} against any WordPress site with MapPress Maps ≤2.96.6 installed and the REST API accessible (WordPress REST API is enabled by default). Map IDs must be guessed or enumerated, adding minor practical friction but no real barrier given sequential integer IDs. For the authenticated write/delete/clone path: the attacker must hold a WordPress account with at minimum Contributor-level role (edit_posts capability), which is the lowest authenticated user tier on many WordPress sites. Multi-author blogs, membership sites, or sites with open user registration are most exposed. The site must have MapPress Maps ≤2.96.6 active. No non-default configuration is required beyond the plugin being installed.

Impact

The official CVSS 5.3 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) captures only the unauthenticated write surface and misrepresents the confidentiality impact as N when the unauthenticated GET endpoint demonstrably exposes map content (POI titles, addresses, coordinates, body content) - C:L is more accurate for that path. The authenticated write path (Contributor+) is materially more severe, enabling deletion or modification of any map on the site, which represents I:H impact. SSVC assessment marks the vulnerability as Automatable:yes, making mass enumeration or scripted modification viable. EPSS at 0.08% (24th percentile) and no KEV listing indicate no confirmed widespread exploitation at time of analysis. The combination of a publicly available Wordfence advisory, automatable exploitation, and the ubiquity of Contributor-level WordPress accounts (which are frequently compromised or maliciously registered) elevates real-world risk above what the CVSS score alone suggests, particularly for multi-author WordPress sites.

Exploit ScenarioDerived

An unauthenticated attacker scripts sequential GET requests to /wp-json/mapp/v1/maps/1, /wp-json/mapp/v1/maps/2, etc., harvesting POI addresses and coordinates from all maps on the site. Separately, a malicious Contributor-level user - obtained via legitimate registration or account compromise - sends authenticated DELETE requests with enumerated map IDs to wipe maps authored by administrators or editors, with no ownership check stopping them. Both attack paths are fully automatable per SSVC, and publicly available exploit information from Wordfence lowers the bar for execution.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 16, 2026

Authorization bypass in the MapPress Maps for WordPress plugin exposes two distinct attack surfaces: an unauthenticated REST endpoint that leaks map data including POI titles, physical addresses, and coordinates for any map by ID enumeration, and an authenticated write surface where any Contributor-level user can modify, delete, clone, or trash maps they do not own. All versions through 2.96.6 are affected. No public exploit is confirmed exploited in the wild (not in CISA KEV), though Wordfence has published a public advisory and exploit information is available, and SSVC classifies the write path as automatable.

RemediationAI

No vendor-released patched version is identified in the available data - the newest source code referenced is version 2.96.6, which remains vulnerable. Site operators should check the WordPress plugin repository for a version newer than 2.96.6 and apply it immediately if available. As a compensating control pending a patch, administrators can disable REST API access to the MapPress endpoints by adding a custom permission_callback that enforces ownership, or by blocking access to /wp-json/mapp/v1/maps/ at the web server or WAF layer - note that this will break any frontend map-loading that depends on the REST API. Additionally, restricting Contributor-level user registration on multi-author sites reduces the attack surface for the write path. Monitor the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/9f402aa7-24d6-448b-a1d3-5ee7c90b39bc for patch availability updates.

Affected VersionsENISA

MapPress Maps for WordPress 0 ≤2.96.6

Affected Packages

euvd mappress_maps_for_wordpress no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in the REST API implementation registered by Mappress_Api::rest_api_init() in the MapPress Maps for WordPress WordPress plugin (CPE: cpe:2.3:a:chrisvrichardson:mappress_maps_for_wordpress). CWE-639 (Authorization Bypass Through User-Controlled Key) describes the root cause precisely: the map ID - a caller-supplied integer - acts as the sole authorization key, but no ownership check gates its use. The GET /wp-json/mapp/v1/maps/{mapid} endpoint is registered with permission_callback => __return_true, meaning WordPress imposes no access control whatsoever. The write endpoints (POST update, DELETE, PATCH mutate, POST clone, POST empty_trash) check only the generic edit_posts capability, confirming the requester can edit *some* post - but never confirming they authored the targeted map. Critically, this gap is not closed at the model layer: Mappress_Map::get(), save(), delete(), mutate(), and empty_trash() all accept any caller-supplied map ID without ownership validation, as confirmed by source code references at mappress_api.php and mappress_map.php in the plugin's SVN repository.

Know when Mappress Maps For Wordpress gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 7.6 HIGH

Contributor-level auth required for write path (PR:L); unauthenticated read exposes map data (C:L); deletion/modification of any map is I:H; trashing maps causes A:L.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

DescriptionCVE.org

The MapPress Maps for WordPress plugin for WordPress is vulnerable to Authorization Bypass Through User-Controlled Key in all versions up to, and including, 2.96.6. This is due to missing ownership verification in the REST API routes registered via Mappress_Api::rest_api_init(), where the GET /wp-json/mapp/v1/maps/{mapid} endpoint uses 'permission_callback' => '__return_true' and the write endpoints (POST update, DELETE, PATCH mutate, POST clone, POST empty_trash) only check the generic edit_posts capability without confirming that the requester owns the targeted map - a gap that is not compensated at the model layer, as Mappress_Map::get(), save(), delete(), mutate(), and empty_trash() all operate on any caller-supplied map ID without an ownership check. This makes it possible for unauthenticated attackers to read sensitive map data - including POI titles, addresses, coordinates, and body content - for any map on the site by enumerating map IDs, and for authenticated attackers with Contributor-level access and above to modify, delete, trash/restore, or clone any map regardless of its author.

Threat Intelligence Overview

EPSS Score
0.1%
Top 76% exploitable
Prevalence
Medium
popular WordPress mapping plugin, not universally deployed
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

References

Advisories & patches
ADVISORY https://nvd.nist.gov/vuln/detail/CVE-2026-8839 ADVISORY https://vuldb.com/vuln/369034 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_api.php#L253 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_api.php#L268 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_api.php#L328 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_api.php#L39 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_api.php#L50 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_api.php#L75 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_api.php#L90 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_map.php#L239 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_map.php#L379 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_map.php#L493 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.95.10/mappress_map.php#L550 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_api.php#L253 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_api.php#L268 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_api.php#L328 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_api.php#L39 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_api.php#L50 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_api.php#L75 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_api.php#L90 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_map.php#L239 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_map.php#L379 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_map.php#L493 REF https://plugins.trac.wordpress.org/browser/mappress-google-maps-for-wordpress/tags/2.96.6/mappress_map.php#L550 REF https://plugins.trac.wordpress.org/changeset?old_path=/mappress-google-maps-for-wordpress/tags/2.96.6&new_path=/mappress-google-maps-for-wordpress/tags/2.97.1 REF https://www.wordfence.com/threat-intel/vulnerabilities/id/9f402aa7-24d6-448b-a1d3-5ee7c90b39bc?source=cve

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy