Published : August 6, 2026

CVE-2026-28144: WP Maps – Google Maps,OpenStreetMap,Mapbox,Store Locator,Listing,Directory & Filters <= 4.9.6 Authenticated (Subscriber+) Information Exposure PoC, Patch Analysis & Rule

Severity Medium (CVSS 4.3)
CWE 200
Vulnerable Version 4.9.6
Patched Version 4.9.7
Disclosed July 30, 2026

Analysis Overview

Atomic Edge analysis of CVE-2026-28144:

This vulnerability affects the WP Maps – Google Maps, OpenStreetMap, Mapbox, Store Locator, Listing, Directory & Filters plugin for WordPress, specifically in versions up to and including 4.9.6. The plugin’s AJAX handler lacks proper authorization checks, allowing any authenticated user with subscriber-level access or above to invoke sensitive administrative operations. This results in an Information Exposure vulnerability with a CVSS score of 4.3.

Root Cause: The root cause lies in the `wpgmp_ajax_call()` function, located in the plugin’s main file at `wp-google-map-plugin/wp-google-map-plugin.php` in the diff (around line 605). The function verifies a nonce using `check_ajax_referer( ‘fc-call-nonce’, ‘nonce’ )`, which only checks that the request originates from an authenticated session, but it does not verify that the user has the necessary privileges. After the nonce check, the code directly calls `$this->$operation( $value )` based on the user-supplied `operation` POST parameter. This creates an insecure direct object reference where a lower-privileged user can call sensitive internal methods such as `clean_database`, `upload_sampledata`, `save`, `map_fields`, and `cancel_import`, which are intended only for administrators.

Exploitation: An authenticated attacker with a subscriber account can exploit this by sending a POST request to the WordPress AJAX handler at `/wp-admin/admin-ajax.php`. The request must include the `action` parameter set to `wpgmp_ajax_call` (the hook for the vulnerable function), a valid nonce, and the `operation` parameter set to one of the sensitive methods, such as `save` or `map_fields`. The attacker must also obtain a valid `fc-call-nonce` nonce, which is typically localized and available on pages accessible to subscribers. By sending a crafted POST request to this endpoint, they can trigger the execution of the sensitive function and potentially extract configuration data or manipulate plugin settings.

Patch Analysis: The patch introduces an authorization check at the beginning of the `wpgmp_ajax_call()` function, after the nonce verification. It now enforces that the current user has the `manage_options` capability, which is a WordPress capability reserved for administrators. If this check fails, the function returns a 403 error. Additionally, the patch adds an allowlist of `$allowed_operations` and sanitizes the `operation` parameter using `sanitize_key()`. This prevents arbitrary method calls and ensures only the intended, safe operations can be executed, and only by privileged users.

Impact: Successful exploitation allows an authenticated subscriber to invoke privileged methods within the plugin. Depending on the specific method called, the attacker could potentially extract sensitive plugin configuration data, including API keys or map data, or alter plugin settings. The most direct impact is the exposure of sensitive information, which aligns with CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor). This information could be leveraged for further attacks against the site or its users.

Differential between vulnerable and patched code

Below is a differential between the unpatched vulnerable code and the patched update, for reference.

Code Diff
--- a/wp-google-map-plugin/wp-google-map-plugin.php
+++ b/wp-google-map-plugin/wp-google-map-plugin.php
@@ -7,7 +7,7 @@
  * Author URI: https://weplugins.com/
  * License: GPL v2 or later
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
- * Version: 4.9.6
+ * Version: 4.9.7
  * Text Domain: wp-google-map-plugin
  * Domain Path: /lang
 */
@@ -605,12 +605,43 @@
 		function wpgmp_ajax_call() {

 			check_ajax_referer( 'fc-call-nonce', 'nonce' );
-			$operation = sanitize_text_field( wp_unslash( $_POST['operation'] ) );
-			$value     = wp_unslash( $_POST );
-			if ( isset( $operation ) ) {
-				$this->$operation( $value );
+
+			// Only administrators should be able to perform these operations.
+			if ( ! current_user_can( 'manage_options' ) ) {
+				wp_send_json_error(
+					array(
+						'message' => esc_html__( 'Unauthorized request.', 'wp-google-map-plugin' ),
+					),
+					403
+				);
 			}
-			exit;
+
+			$operation = isset( $_POST['operation'] )
+				? sanitize_key( wp_unslash( $_POST['operation'] ) )
+				: '';
+
+			$value = wp_unslash( $_POST );
+
+			$allowed_operations = array(
+				'clean_database',
+				'upload_sampledata',
+				'save',
+				'map_fields',
+				'cancel_import',
+			);
+
+			if ( ! in_array( $operation, $allowed_operations, true ) ) {
+				wp_send_json_error(
+					array(
+						'message' => esc_html__( 'Invalid operation.', 'wp-google-map-plugin' ),
+					),
+					400
+				);
+			}
+
+			$this->{$operation}( $value );
+
+			wp_die();
 		}

 		/**
@@ -1365,7 +1396,7 @@

 			if ( is_admin() )
 			$this->wpgmp_define( 'WPGMP_SLUG', 'wpgmp_view_overview' );
-			$this->wpgmp_define( 'WPGMP_VERSION', '4.9.6' );
+			$this->wpgmp_define( 'WPGMP_VERSION', '4.9.7' );
 			$this->wpgmp_define( 'WPGMP_FOLDER', basename( dirname( __FILE__ ) ) );
 			$this->wpgmp_define( 'WPGMP_DIR', plugin_dir_path( __FILE__ ) );
 			$this->wpgmp_define( 'WPGMP_ICONS_DIR', WPGMP_DIR . '/assets/images/icons/' );

Frequently Asked Questions

Atomic Edge WAF security layer inspecting website traffic.

How Atomic Edge Works

Simple Setup. Powerful Security.

Atomic Edge acts as a security layer between your website & the internet. Our AI inspection and analysis engine auto blocks threats before traditional firewall services can inspect, research and build archaic regex filters.

Get Started

Trusted by Developers & Organizations

Trusted by Developers
Black & McDonald logo representing Enterprise tier security and support for Atomic Edge WAF.Covenant House Toronto logo featuring a dove and text for Atomic Edge Enterprise planAlzheimer Society Canada logo representing trusted organizations and security partners.University of Toronto logo representing trusted organizations using Atomic Edge WAFSpecsavvers logo, trusted developers and organizations using Atomic Edge securityHarvard Medical School logo representing trusted organizations using Atomic Edge WAF.