CVE-2026-9757: GEO my WP <= 4.5.5 - Unauthenticated SQL Injection via 'swlatlng' / 'nelatlng' Parameters
The GEO my WP plugin for WordPress is vulnerable to SQL Injection via the 'swlatlng' and 'nelatlng' parameters in all versions up to, and including, 4.5.5 The parameters are read from $_SERVER['QUERY_STRING'] via parse_str() (bypassing WordPress's wp_magic_quotes protection, which only covers $_POST/$_GET/$_COOKIE/$_REQUEST), then each is split on ',' via explode() and the resulting fragments are interpolated directly into a SQL BETWEEN clause in gmw_get_locations_within_boundaries_sql() without is_numeric() validation, (float) casting, esc_sql(), or $wpdb->prepare(). This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. Exploitation requires the site to host the Posts Locator search-results shortcode (`[gmw form="results" form_id=N]`) on a public page and to have at least one published post with an associated gmw_location row.
HarborGuard Analysis
HarborGuard analysisSynopsis
Unauthenticated SQL injection in the GEO my WP WordPress plugin (versions up to and including 4.5.5). The bug is reachable over the network without authentication because the plugin reads the swlatlng and nelatlng parameters directly from QUERY_STRING via parse_str(), bypassing WordPress's wp_magic_quotes filtering, then interpolates the comma-split fragments straight into a SQL BETWEEN clause with no numeric validation or prepared-statement use. Successful exploitation lets an attacker append arbitrary SQL to read sensitive data from the WordPress database such as user records and session data. No fix version has been published; HarborGuard tracks the advisory and will surface a patched-image rebuild as soon as one is available upstream.
HarborGuard Coverage
Detection is available across every HarborGuard environment: the CVE is ingested from upstream feeds within minutes of publication and matched against WordPress images and plugin payloads in customer registries and CI pipelines, including custom-built images that bundle GEO my WP.
AvailableTriage is available with the published CVSS 3.1 score of 7.5 (High) weighted against each customer's compliance policy, so an internet-facing WordPress site running the Posts Locator shortcode is routed to the right inbox inside each customer org with the appropriate urgency.
AvailableNo upstream fix has shipped for GEO my WP at or below 4.5.5. HarborGuard re-checks the advisory each ingest cycle and will make a patched-image rebuild available the moment the maintainer publishes a fixed version, with auto-remediation customers receiving a rebuild, regression run, and a PR opened against affected workloads at that point.
Pending upstreamExploit Conditions
- Network reachabilityRequired
The attacker must reach the WordPress site hosting the vulnerable Posts Locator shortcode over the network (AV:N).
- AuthenticationNot required
No account or session is needed; any anonymous visitor can send the crafted query string (PR:N).
- Victim interactionNot required
Exploitation is a direct request to the vulnerable endpoint and does not depend on any user action (UI:N).
- Attack complexityDetail
Attack complexity is low: the injection is reliable as long as the site exposes the [gmw form="results"] shortcode and has at least one published post with a gmw_location row (AC:L).
Blast Radius
- Reads arbitrary rows from the WordPress database, including wp_users password hashes, email addresses, and user_meta entries.
- Extracts session tokens, password reset keys, and any application secrets stored in wp_options.
- Enables enumeration of private post content and customer or member data held in plugin tables.
- Confidentiality impact only; the injection path does not modify rows or disrupt service availability (I:N/A:N).
How HarborGuard Handles This
Available on HarborGuard: continuous monitoring of the GEO my WP advisory with automatic surfacing of a patched-image rebuild as soon as the maintainer publishes a fix. In the meantime, compensating-control guidance is available, including removing or gating the [gmw form="results"] shortcode on public pages, adding a WAF rule that rejects swlatlng or nelatlng values containing non-numeric characters or commas beyond a single pair, and isolating the WordPress workload with network policy and egress filtering so a successful injection cannot reach internal services. For customers who opt into auto-remediation, the rebuild, regression run, and PR against affected workloads are triggered automatically the moment an upstream fix lands.
Metrics
- CVSS v3.1
- 7.5
- Severity
- HIGH
- Fixed in
- —
- Affected Products
- 1
- ninjew / GEO my WP≤ 4.5.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N