CVE-2026-15300: CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') in ninjew GEO my WP
The GEO my WP plugin for WordPress was vulnerable to SQL Injection via the 'distance', 'lat', and 'lng' parameters in versions up to, and including, 4.5.4. The values were read from $_SERVER['QUERY_STRING'] via parse_str() (bypassing wp_magic_quotes, which does not cover $_SERVER), then passed through bare esc_sql() before being interpolated into unquoted numeric positions in the proximity-search query (HAVING/SELECT clause distance math, BETWEEN bounding-box pre-filter) built by gmw_locations_query() in plugins/posts-locator/includes/class-gmw-wp-query.php. Because esc_sql() only escapes string delimiters and these positions are numeric, payloads such as `1 OR SLEEP(3)` survived sanitization. Fixed in 4.5.5 by adding an upstream is_numeric() guard that short-circuits the WHERE clause to `AND 1 = 0` when either coordinate is non-numeric, and by replacing the three esc_sql() calls with (float) casts.
AI Analysis
Technical Summary
CVE-2026-15300 is an SQL Injection vulnerability in the GEO my WP plugin for WordPress affecting versions up to 4.5.4. The plugin reads 'distance', 'lat', and 'lng' parameters from $_SERVER['QUERY_STRING'] using parse_str(), bypassing wp_magic_quotes. These parameters are then passed through esc_sql() but used in unquoted numeric positions in SQL queries, which esc_sql() does not properly sanitize for. This allows injection of SQL payloads such as '1 OR SLEEP(3)'. The vulnerability is fixed in version 4.5.5 by adding an upstream is_numeric() check that short-circuits the query if inputs are non-numeric and by casting inputs to float instead of using esc_sql().
Potential Impact
An attacker can exploit this vulnerability to perform SQL Injection attacks, potentially causing high impact such as denial of service (via SLEEP) or other unauthorized SQL command execution. The CVSS score of 9.1 indicates critical severity with network attack vector, low attack complexity, no privileges required, no user interaction, and high impact on integrity and availability.
Mitigation Recommendations
A fix is available in GEO my WP version 4.5.5 which adds numeric validation and casts inputs to float to prevent SQL Injection. Users should upgrade to version 4.5.5 or later to remediate this vulnerability. No other mitigation guidance is provided or necessary as the fix addresses the root cause.
CVE-2026-15300: CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') in ninjew GEO my WP
Description
The GEO my WP plugin for WordPress was vulnerable to SQL Injection via the 'distance', 'lat', and 'lng' parameters in versions up to, and including, 4.5.4. The values were read from $_SERVER['QUERY_STRING'] via parse_str() (bypassing wp_magic_quotes, which does not cover $_SERVER), then passed through bare esc_sql() before being interpolated into unquoted numeric positions in the proximity-search query (HAVING/SELECT clause distance math, BETWEEN bounding-box pre-filter) built by gmw_locations_query() in plugins/posts-locator/includes/class-gmw-wp-query.php. Because esc_sql() only escapes string delimiters and these positions are numeric, payloads such as `1 OR SLEEP(3)` survived sanitization. Fixed in 4.5.5 by adding an upstream is_numeric() guard that short-circuits the WHERE clause to `AND 1 = 0` when either coordinate is non-numeric, and by replacing the three esc_sql() calls with (float) casts.
CVSS v3.1
Score 9.1critical
Affected software
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
CVE-2026-15300 is an SQL Injection vulnerability in the GEO my WP plugin for WordPress affecting versions up to 4.5.4. The plugin reads 'distance', 'lat', and 'lng' parameters from $_SERVER['QUERY_STRING'] using parse_str(), bypassing wp_magic_quotes. These parameters are then passed through esc_sql() but used in unquoted numeric positions in SQL queries, which esc_sql() does not properly sanitize for. This allows injection of SQL payloads such as '1 OR SLEEP(3)'. The vulnerability is fixed in version 4.5.5 by adding an upstream is_numeric() check that short-circuits the query if inputs are non-numeric and by casting inputs to float instead of using esc_sql().
Potential Impact
An attacker can exploit this vulnerability to perform SQL Injection attacks, potentially causing high impact such as denial of service (via SLEEP) or other unauthorized SQL command execution. The CVSS score of 9.1 indicates critical severity with network attack vector, low attack complexity, no privileges required, no user interaction, and high impact on integrity and availability.
Mitigation Recommendations
A fix is available in GEO my WP version 4.5.5 which adds numeric validation and casts inputs to float to prevent SQL Injection. Users should upgrade to version 4.5.5 or later to remediate this vulnerability. No other mitigation guidance is provided or necessary as the fix addresses the root cause.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- Wordfence
- Date Reserved
- 2026-07-09T15:54:32.605Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a50809468715ace430636e6
Added to database: 07/10/2026, 05:18:12 UTC
Last enriched: 07/10/2026, 05:32:50 UTC
Last updated: 07/10/2026, 07:55:29 UTC
Views: 23
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.