Summary
CVE-2026-15300 is a critical unauthenticated SQL Injection vulnerability in the GEO my WP WordPress plugin, affecting all versions up to and including 4.5.4, with a CVSS v3.1 base score of 9.1. The flaw allows any remote, unauthenticated attacker to inject arbitrary SQL into the WordPress database by manipulating proximity-search query parameters, requiring no credentials and no user interaction. A patch is available in version 4.5.5.
Technical details
- Root cause: The
distance,lat, andlngURL parameters are read directly from$_SERVER['QUERY_STRING']via PHP’sparse_str()function. This input path bypasses WordPress’swp_magic_quotesmechanism, which does not cover the$_SERVERsuperglobal. The values are subsequently passed throughesc_sql()— which only escapes string delimiter characters — before being interpolated into unquoted numeric positions in the proximity-search SQL query constructed bygmw_locations_query()inplugins/posts-locator/includes/class-gmw-wp-query.php. - Trigger conditions: The vulnerability is exploitable on any site with a public-facing page using the Posts Locator proximity-search shortcode — the primary function of this plugin. An attacker sends a crafted HTTP request to that page with a malicious value in the
distance,lat, orlngquery parameter. - Attack vector: Unauthenticated, fully network-based; no account, session, or browser interaction required.
- Impact: Because the injected values land in numeric positions (HAVING/SELECT clause distance calculations and BETWEEN bounding-box pre-filter), payloads such as
1 OR SLEEP(3)surviveesc_sql()sanitization and are executed directly by the database engine. The CVSS impact dimensions are High Integrity and High Availability, enabling an attacker to manipulate or destroy WordPress database records and trigger denial-of-service conditions against the database layer.
Affected software
- GEO my WP WordPress plugin — all versions from initial release through 4.5.4 (inclusive)
Severity
- CVSS v3.1 Base Score: 9.1 (Critical)
- Vector string:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Mitigation and recommended actions
- Immediate: Update the GEO my WP plugin to version 4.5.5 or later. Version 4.5.5 addresses the vulnerability by introducing an upstream
is_numeric()guard that short-circuits the WHERE clause toAND 1 = 0when any coordinate value is non-numeric, and by replacing the three vulnerableesc_sql()calls with explicit(float)casts. - If immediate patching is not possible: Restrict public access to pages containing the Posts Locator proximity-search shortcode, or apply a web application firewall rule to reject requests that pass non-numeric values in the
distance,lat, orlngquery parameters.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

