# CVE-2026-8839: MapPress Maps for WordPress <= 2.96.6 - Unauthenticated Insecure Direct Object Reference via REST API Endpoints - Exploited (CISA KEV): no - Published: 2026-06-06 - CVSS: 5.3 MEDIUM (v3.1) - EPSS: 1.0% (63th percentile) - CWE: CWE-639 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. ## Edge WAF coverage (claimed by vendors, not measured) | Vendor | Status | First rule | Days after publication | |---|---|---|---| | Cloudflare | No public claim | — | — | | AWS | No public claim | — | — | | Microsoft Azure | No public claim | — | — | | Google Cloud | No public claim | — | — | | Fastly | Before feed history | — | — | | F5 | Rule published | 2026-09-16 | 102 | | Akamai | No public source | — | — | | OWASP CRS | No public claim | — | — | ### F5 - 2026-09-16 · new · rule 200013198 > Added: signature 200013198 "WordPress MapPress Maps Broken Access Control" (Authentication/Authorization Attacks, risk Medium), systems: WordPress. References: CVE-2026-8839. Source: https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog ## Our test (measured) - OWASP Core Rule Set 4.25.0, paranoia level 1, anomaly threshold 5, default CRS settings: passed (0 of 1 requests blocked), template CVE-2026-8839, 2026-11-02 - OWASP Core Rule Set 4.25.0, paranoia level 2, anomaly threshold 5, default CRS settings: passed (0 of 1 requests blocked), template CVE-2026-8839, 2026-11-02 "No public claim" means no vendor statement names this CVE; "Before feed history" means the CVE is older than the vendor feed. In both cases generic rules may still block it. HTML: https://cve.vigilbase.com/cve/CVE-2026-8839 · JSON: https://cve.vigilbase.com/api/v1/cves/CVE-2026-8839